第6章 正則化 : テキスト回帰
えりっくさーとる
入門機械学習
1
6章の構成
•  6.1 列の非線形関係 : 直線の先にあるもの
–  6.1.1 多項式回帰の紹介
•  6.2 過学習を防ぐ方法
–  6.2.1 正則化を用いて過学習を防ぐ
•  6.3 テキスト回帰
–  6.3.1 救いの手、ロジスティック回帰
2
本輪講の構成(『入門機械学習』はほぼガン無視)
•  [1] 線形回帰とその拡張
•  [2] 過学習と正則化
•  [3] 正則化つき回帰をしてみる
•  [4] まとめ
3
[1]線形回帰とその拡張
1.  単純な線形回帰を考える
–  単回帰分析と重回帰分析
–  線形回帰モデルの紹介
2.  さらに一般化してみる
–  線形基底関数モデルの紹介
–  基底関数
3.  重みの決め方
–  最小二乗法
4
単純な線形回帰を考える
[1] 線形回帰とその拡張
駅
家1
家2
家3
1.5km	
6万円/月
3万円/月
8万円/月
駅からの距離で
家賃が求められるのでは?
5
単純な線形回帰を考える
[1] 線形回帰とその拡張
駅からの距離[m] 家賃[万円/月]
1000 35
1500 25
500 45
求めたい家賃をy, 駅からの距離をxとすると
と近似できそう(単回帰分析)
ˆyl = ax + b
表にしてみた
駅からの距離[m]
家賃[万円/月]
6
単純な線形回帰を考える
[1] 線形回帰とその拡張
駅
家1
家2
家3
1.5km	
6万円/月
築8年, 面積50m2
駅からの距離と面積と築年数で
家賃が求められるのでは?
3万円/月
築10年, 面積40m2
8万円/月
築4年, 面積50m2
7
単純な線形回帰を考える
[1] 線形回帰とその拡張
駅からの距離[m] 築年数[年] 面積[m2] 家賃[万円/月]
1000 6	
 50 35
1500 3	
 40 25
500 8	
 50 45
求めたい家賃をy,
駅からの距離をx1, 築年数をx2, 面積をx3とおくと
と近似できそう(重回帰分析)
ˆyml = ax1 + bx2 +cx3 + d
表にしてみた
8
単純な線形回帰を考える
[1] 線形回帰とその拡張
ˆy = w0 + w1x1 + w 2 x2 +!+ wD xD
ˆyl = ax + b
ˆyml = ax1 + bx2 +cx3 + d
!
"
#
上記の2式をにらめっこすると、次のように一般化できる:
x0=1とすれば ˆy = xjwj
j=0
D
∑ となる。
9
単純な線形回帰を考える
[1] 線形回帰とその拡張
ˆy = xjwj
j=0
D
∑
先程求めた式で表せるものを線形回帰モデルと呼ぶ。
実際の値には誤差εが乗っていて、これはN(0, σ2)に従う
y = xjwj
j=0
D
∑ +ε
y : 独立変数, 被説明変数,目的変数
wj : 重み
xj : 従属変数, 説明変数
等分散正規分布
10
単純な線形回帰を考える
[1] 線形回帰とその拡張
……入力xに対して線形ってどうなの?
先程求めた式で表せるものを線形回帰モデルと呼ぶ。
ここでyについてわかることは、
・入力xに対して線形
・重みwに対して線形
・「入力xと重みwの積」の和を計算している
ˆy = xjwj
j=0
D
∑
y : 独立変数, 被説明変数,目的変数
wj : 重み
xj : 従属変数, 説明変数
11
単純な線形回帰を考える
[1] 線形回帰とその拡張
これは回帰できるの?
こういうのは?
これらを扱うには
もっと一般化する必要がある… 12
さらに一般化してみる
[1] 線形回帰とその拡張
Φ(x)=x2としてyとΦ(x)をプロットしてみると…
先程は扱えなかったこのような分布、
13
さらに一般化してみる
[1] 線形回帰とその拡張
14	
yはΦ(x)に対して線形になる。多項式も扱える!
さらに一般化してみる
[1] 線形回帰とその拡張
ˆy = φj (x)wj
j=0
D
∑
以下の式で表せるものを線形基底関数モデルと呼ぶ。
なお、Φ0(x)=1とする。
y : 独立変数, 被説明変数,目的変数
wj : 重み
xj : 従属変数, 説明変数
Φ : 基底関数, リンク関数(RD→R1)
注意! R1→R1ではない
ここでyについてわかることは、
・入力xに対して非線形
・重みwに対して線形
・「入力xをΦにかけた値と重みwの積」の和
15
さらに一般化してみる
[1] 線形回帰とその拡張
ˆy = φj (x)wj
j=0
D
∑
基底関数には以下の関数がよく使われる(人間が選ぶ)
Φの形 名前 用途
xj 多項式 多項式フィッティング
exp{-(x-μ)2/2s2} ガウス基底関数 非線形SVM
σ((x-μj)/2) ロジット関数
ニューラルネット
ロジスティック回帰
16
ˆy = φj (x)wj
j=0
D
∑
重みの決め方
[1] 線形回帰とその拡張
どうやって決めるのか?
最小二乗法による推定
最尤法による推定
今回はこちらだけ
17
重みの決め方
[1] 線形回帰とその拡張
最小二乗法による推定...の前に
ˆyi = φj (xi )wj
j=0
D
∑ =
φ0 (xi )
!
φD (xi )
"
#
$
$
$
$
%
&
'
'
'
'
T
w
i個目の観測データをxi、目的変数をyiとし、
w=(w0, w1, ..., wD)Tとすると
yiの予測値は以下のように表せる
18
重みの決め方
[1] 線形回帰とその拡張
最小二乗法による推定...の前に
ˆy = ΦT
w
n個の独立な観測データ(x1, ..., xn)があったとき、
ˆy =
ˆy1
!
ˆyn
!
"
#
#
#
#
$
%
&
&
&
&
,Φ =
φ0 (x1) " φ0 (xn )
! # !
φD (x1) " φD (xn )
!
"
#
#
#
#
$
%
&
&
&
&
yの予測値ベクトルは以下のように表せる
とおくと
x1 xn
19
重みの決め方
[1] 線形回帰とその拡張
最小二乗法による推定
実測値と予測値の二乗誤差を最小化する
ˆyi
yi
二乗誤差Ewを
以下のように定義:
ED (w) = (yi − ˆyi )2
i=1
n
∑
20
重みの決め方
[1] 線形回帰とその拡張
最小二乗法による推定
ED (w) = (yi − ˆyi )2
i=1
n
∑ これは多次元空間で下に凸
つまり「EDを最小化するw*」はこの2次関数の極値とわかる
極値は「EDを微分した結果が0になるw」なので、
∂
∂w
ED (w) = 0 を解くと、w*=(ΦΦT)-1ΦTyとわかる
「擬似逆行列」と呼ばれる。
多重共線性が無いと仮定すると
列が線形独立なのでこう計算できる
21
[2]過学習と正則化
1.  過学習とは
–  多項式回帰の例
–  線形基底関数モデルにおける「複雑さ」とは
2.  正則化
–  いろいろな正則化項
–  λの推定と交差検定
22
過学習とは
[2] 過学習と正則化
サンプル数が少ない状況(n=30)で、
多項式回帰の次数を上げていくと...
テストデータに
適合しなくなってきてる
訓練データに
とても適合している
このような状況を過学習という
ちなみにサンプル数が多くなると
テストデータのRMSEが上がらずに横ばいだった23
過学習とは
[2] 過学習と正則化
複雑すぎるモデルを用いると、
訓練データセットのクセ(ノイズ)を拾いすぎてしまい、
真のモデルの形から遠ざかってしまう
線形基底関数モデルにおける複雑さの定義は
以下に示すものがある(値が大きいほど複雑)
L2ノルム w
2
L1ノルム w
w0	
w1	
w0	
w1	
24
正則化
[2] 過学習と正則化
ED (w) = (yi − ˆyi )2
i=1
n
∑最小二乗法においては を最小にした。
これにモデルの複雑度を示す正則化項Ewを加え、
ED (w)+ λEW (w) を最小にするw*を求めることにする。
w0	
w1	
L2正則化を用いた回帰
(リッジ回帰)の最適点
ちなみに、L2正則化項のときは
w*
= (λI +ΦΦT
)−1
ΦT
y
と解析的に解ける。
25
正則化
ED (w)+ λEW (w)
[2] 過学習と正則化
パラメータλをどう決める?
交差検定を使ってみる
[1]
[2]
[3]
データ
[1]学習
[2]学習
[3]評価
[1]評価
[2]学習
[3]学習
[1]学習
[2]評価
[3]学習
λを変えながらそれぞれ試す
26
[3]正則化つき回帰をしてみる
1.  テキスト回帰
–  紹介文の単語集合からランキングを予測する
–  この失敗から学べること
2.  ロジスティック回帰
–  ロジスティック回帰でできること
–  ロジスティック回帰は何モデル?
–  さっきの例に適用してみた
27
テキスト回帰
[3] 正則化つき回帰をしてみる
紹介文に出てくる単語の出現回数から、
売上順位が推定できないか?
ˆy = xjwj
j=0
D
∑
これを線形回帰モデルに当てはめると
y : 売上順位
wj : 重み
xj : 単語jの出現回数
単語は無数にあるので非常に次元が高くなる
正則化項つきでないと簡単に過学習してしまう
28
テキスト回帰
[3] 正則化つき回帰をしてみる
やってみたが...
λが大きくなるほど
RMSEが下がっている...
29	
ランキングは出現単語と関係がない
モデルがおかしい
テキスト回帰
[3] 正則化つき回帰をしてみる
この様にうまくいかないこともあるので、
適切なモデルを選ぶことが大切
参考 : AIC(赤池情報量規準)
統計モデルの良さを評価するためのとてもとても有名な指標。
この値が最小のものを選ぶと良いモデルが選択できる。
ちなみにAICのあとにBICとかMDLだとかいろんな規準が
提案されているので、統計屋さんはこれらを使い分ける。
30
テキスト回帰
[3] 正則化つき回帰をしてみる
売上順位の予想をあきらめたくない
「売上順位の予測」ではなく、
「上位50以内に入るかどうか」という分類問題に切り替え
ロジスティック回帰に帰着させてみる
31
ロジスティック回帰
[3] 正則化つき回帰をしてみる
ロジスティック回帰でできること	
ロジスティック回帰を使うと、数値の説明変数から
目的変数としてYES/NO(2値分類)の確率が出せる
説明変数x1(数値)
⋮	
ロジスティック回帰 目的変数y(確率)
説明変数x2(数値)
説明変数xn(数値)
32
ロジスティック回帰
[3] 正則化つき回帰をしてみる
ロジスティック回帰は何モデル?	
誤差が正規分布に従わないので実は線形モデルではない!
ˆy = f (w0 + w1x1 +!wD xD ) = f xT
w( )
一般化線形モデルというものに属し、以下で表せる:
ロジスティック回帰は関数fがシグモイド関数なので
ˆy =
1
1+ exp(−xT
w)
と表される
33
ロジスティック回帰
[3] 正則化つき回帰をしてみる
さっきの例に適用してみた(正則化つきで)
どうやら55%の確率で当たる程度にはなったらしい
34
[4]本章のまとめ
•  [1] 線形回帰とその拡張
–  線形回帰モデルを拡張したものが線形基底関数モデル
–  最小二乗法で重みの推定ができる
•  [2] 過学習と正則化
–  線形基底モデルの複雑さは重みベクトルのノルム
–  正則化項には色々な種類がある
•  [3] 正則化つき回帰をしてみる
–  適切な問題設定をしよう
35
•  シンプル・イズ・ベター
– 過学習を防ぐため、正則化項をつけて
パラメータwを推定しよう
– 欲しい情報に合わせて問題設定を見直そう
36	
[4]本に書いてあるまとめ

正則化つき線形モデル(「入門機械学習第6章」より)