Lec10
過学習と正則化
高次元モデル
▶
計測技術の発展と高次元データ(例)マイクロアレイによる遺伝子活動計測
x ij :
患者i
の遺伝子j
の活動量/ y i :
薬剤代謝酵素量▶
高次元線形モデルy = w 0 + w 1 x 1 + . . . + w 10000 x 10000
非線形モデル
▶
非線形現象のモデリング▶
多項式回帰モデルy = w 1 x + w 2 x 2 + +w 3 x 3 + · · · + w 50 x 50
過学習(重要)
▶
パラメータ数が多いと過学習が起こるパラメータ数=1 パラメータ数=2
過学習(重要)
▶
パラメータ数が多いと過学習が起こるパラメータ数=10 パラメータ数=20
パラメータ数=40 パラメータ数=50
最小二乗法(復習)
▶
訓練データX
n × d
=
x 11 x 12 · · · x 1d
x 21 x 22 · · · x 2d
.. . .. . . . . .. . x n1 x n2 · · · x nd
∈ R n × d , y
n × 1
=
y 1
y 2
.. . y n
∈ R n .
▶
正規方程式X ⊤ X w ˆ = X ⊤ y ⇒ w ˆ = (X ⊤ X ) − 1 X ⊤ y
▶
最小二乗解が存在する条件X ⊤ X
の逆行列が存在する事例数
n
と次元数d
の関係▶ n > d
のとき(一般に)解ける
▶ n = d
のとき誤差が
0(完全に過学習)
▶ n < d
のとき(一般に)解けない
n = d
のとき事例数
n
と次元数d
が等しい場合▶
(例題)以下のX
とy
に対して最小二乗法を解くと,E= 0
とな ることを示せX
2 × 2
= [ 1 2
3 3 ]
, y
2 × 1
= [ 4
9 ]
▶
二乗誤差:E= (y − Xw) ⊤ (y − Xw)
w = X − 1 y
とすればy − Xw = 0
となるのでE = 0
n < d
のとき事例数
n
よりも次元数d
が大きい場合▶
(例題)以下のX
とy
に対して最小二乗法を解け1 X × 2
= [
1 2 ] , y
1 × 1
= [ 5 ]
▶
正規方程式の逆行列(X ⊤ X ) − 1 =
([ 1 2
] [ 1 2 ]) − 1
=
([ 1 2 2 4
]) − 1
▶ n < d
の場合,X⊤ X
の逆行列が存在せず最小二乗解が得られないここまでのまとめ
▶
高次元モデルや非線形モデルではパラメータ数が多くなる▶
パラメータ数が多いと過学習が起こる▶
最小二乗法が解けるか⇔ X ⊤ X
の逆行列が存在するか▶
そもそもn < d
の場合には(一般的に)最小二乗解が存在しない演習問題1
▶
以下のようなn = 3
のデータが与えられている.X =
1 2 4
, y =
2 4 3
▶
この訓練データに対して,以下のような定数モデル,線形モデル(定数項あり),2次多項式モデル(定数項あり)を学習せよ
y i = w 0 + ε i ,
y i = w 0 + w 1 x i + ε i , y i = w 0 + w 1 x i + w 2 x 2 i ε i
▶
3つのモデルを横軸をx,縦軸を y
とするグラフにプロットせよ▶
2次回帰モデルではすべての事例において誤差が0
となることを 確認せよ演習問題1のヒント
▶
定数モデルでは以下のようなX
0を用いて最小二乗解を求めればよいX
0=
1 1 1
⇒ w ˆ
0= (X
0⊤X
0)
−1X
⊤0y
▶
線形モデルでは以下のようなX
1を用いて最小二乗解を求めればよいX
1=
1 1 1 2 1 4
⇒ [ w ˆ
0ˆ w
1]
= (X
1⊤X
1)
−1X
1⊤y
▶
二次モデルでは以下のようなX
2を用いて最小二乗解を求めればよいX
2=
1 1 1
21 2 2
21 4 4
2
⇒
w ˆ
0ˆ w
1ˆ w
2
= (X
2⊤X
2)
−1X
2⊤y
演習問題1の解答
過学習を防ぐには
▶
特徴選択(Feature Selection
)ˆ
w = arg min
w (y − Xw) ⊤ (y − X w) s.t. ∥ w ∥ 0 = k
ただし,
∥ w ∥ 0
はベクトルw
の非零の要素数を表す▶
正則化(Regularization)ˆ
w = arg min
w (y − Xw) ⊤ (y − X w) s.t. w ∈ Ω ⊂ R d
ただし,
Ω ⊂ R d
はd
次元空間R d
のある部分領域を表す特徴選択
▶
特徴数がd
のデータを考える(例:d = 10000
)y i = w 1 x i1 + . . . + w 10000 x i10000 + ε i
▶ k < d
個の特徴を選択(例:k= 4)
y i = w 6 x i6 + w 58 x i58 + w 3192 x i3192 + w 7325 x i7325 + ε i
▶
最適な特徴選択(Best subset selection)特徴選択の組み合わせ数=
( d k )
=
( 10000 4
)
= 4.16 × 10 14
逐次特徴選択
Step 1 Step 2 Step 3
逐次特徴選択アルゴリズム(実装1)
Input:
訓練データ(X, y),
特徴数k 1: t ← 1, J ← ∅
2: for t = 1, . . . , k do
3:
以下の基準で追加する特徴を選択するj t ← arg min
j ∈{ 1,...,d }\J (y − X t+1,j w ˆ t+1,j ) ⊤ (y − X t+1,j w ˆ t+1,j )
ただし,X t+1,j := [
X t x j
] , ˆ
w t+1,j := (
X t+1,j ⊤ X t+1,j
) − 1
X t+1,j ⊤ y 4:
選択された特徴の集合J
を更新する:J ← J ∪ { j t } 5: t ← t + 1
6: end for
Output:
選択された特徴の集合J
逐次特徴選択アルゴリズム(実装2)
Input:
訓練データ(X, y),
特徴数k 1: t ← 1, P 1 ← y, J ← ∅
2: for t = 1, . . . , k do
3:
以下の基準で追加する特徴を選択するj t ← arg max
j ∈{ 1,...,d }\J
(y ⊤ P t x j ) 2 x ⊤ j P t x j
4:
選択された特徴の集合J
を更新する:J ← J ∪ { j t } 5:
射影行列を更新するP t+1 ← P t − P t x ⊤ j x j P t x ⊤ j P t x j
6: t ← t + 1
7: end for
計算量
▶
ベクトルの内積u ⊤ v (u, v ∈ R n )
FLOP
数:2n− 1,
計算量オーダ:O (n)
▶
行列とベクトルの積M v (M ∈ R m × n , v ∈ R n )
FLOP
数:2mn− m,
計算量オーダ:O (mn)
▶
行列の積M N (M ∈ R m × k , N ∈ R k × n )
FLOP
数:2mnk − mn,
計算量オーダ:O (mnk)
逐次特徴選択の計算コスト
逐次特徴選択は計算コストが大きい
▶
実装1O (n 3 + dn 2 + d 2 n)
▶
実装2O (2n 2 + dn + d 2 )
大規模データに対する機械学習アルゴリズムでは実装の工夫が不可欠
演習問題2
▶
行列A ∈ R m × k , B ∈ R k × n ,
ベクトルv ∈ R n
の積ABx
を計算す るには2
通りの方法1. (AB)v 2. A(Bv)
がある.それぞれの計算方法の
FLOP
数,計算量オーダを求め,どちらが効率的であるかを議論せよ.
演習問題2の解答
過学習を防ぐには(再掲)
▶
特徴選択(Feature Selection
)ˆ
w = arg min
w (y − Xw) ⊤ (y − X w) s.t. ∥ w ∥ 0 = k
ただし,
∥ w ∥ 0
はベクトルw
の非零の要素数を表す▶
正則化(Regularization)ˆ
w = arg min
w (y − Xw) ⊤ (y − X w) s.t. w ∈ Ω ⊂ R d
ただし,
Ω ⊂ R d
はd
次元空間R d
のある部分領域を表す過学習されたモデルの係数
▶ 10
次多項式モデルのフィッティングの例最小二乗推定値
w
1+8.110 w
2− 0.850 w
3− 52.16 w
4−4.110 w
5+87.75 w
6+41.13 w
7− 49.97 w
8− 79.87 w
9+6.340 w
10+43.99
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0
x
y
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0
−1.0 −0.5 0.0 0.5 1.0
−1.0−0.50.00.51.0 True
Data Estimated
リッジ回帰分析(制約表現)
ˆ
w Ridge = arg min
w ∈R
d∑ n
i=1
(y i − w ⊤ x i ) 2 subject to
∑ d
j=1
w j 2 ≤ s
リッジ回帰分析(罰則表現)
hatw Ridge = arg min
w ∈R
d∑ n
i=1
(y i − w ⊤ x i ) 2 + λ
∑ d
j=1
w j 2
λ > 0
は正則化パラメータ対応関係
w∈R
min
d∑
n i=1(y
i− w
⊤x
i)
2+ λ
∑
d j=1w
2jmin
w∈Rd
∑
n i=1(y
i− w
⊤x
i)
2subject to
∑
d j=1w
2j≤ s
リッジ回帰分析(復習)
▶
リッジ回帰分析:係数の二乗和を罰則とする最小二乗回帰分析w λ = arg min
w ∈R
d∑ n i=1
(y i − w ⊤ x i ) 2 + λ
∑ d j=1
w j 2
ただし,λ >
0
は正則化パラメータとよばれるハイパーパラメータリッジ回帰分析の行列・ベクトル表現(復習)
▶
訓練データX
n × d
=
x 11 x 12 · · · x 1d x 21 x 22 · · · x 2d .. . .. . . . . .. . x n1 x n2 · · · x nd
∈ R n × d , y
n × 1
=
y 1 y 2 .. . y n
∈ R n .
▶
罰則付き誤差E= (y − X w) ⊤ (y − Xw) + λw ⊤ w
= w ⊤ (X ⊤ X )w − 2(X ⊤ y) ⊤ w + y ⊤ y + λw ⊤ w
= w ⊤ (X ⊤ X + λI)w − 2(X ⊤ y) ⊤ w + y ⊤ y
▶
正規方程式(もどき)w ∗ λ = (X ⊤ X − 1 + λI) − 1 X ⊤ y
平均二乗誤差のバイアス・分散分解
▶
不偏推定:期待値が真値である推定E [ ˆ w] = w
▶
不偏でない推定E [ ˆ w] ̸ = w
▶
平均二乗誤差E [(w − w) ˆ 2 ] = (w − E [ ˆ w]) 2
| {z }
バイアス2
+ E [( ˆ w − E [ ˆ w]) 2 ]
| {z }
分散
E [(w − w) ˆ
2]= E [((w − E [ ˆ w]) − ( ˆ w − E [ ˆ w]))
2]
= (w − E [ ˆ w])
2+ 2(w − E [ ˆ w]) E [ ˆ w − E [ ˆ w]] + E [( ˆ w − E [ ˆ w])
2]
最小二乗法とリッジ回帰分析のバイアス・分散
▶
最小二乗推定量の平均二乗誤差MSE[ ˆ w] = σ 2
∑ d j=1
1 ρ j
| {z }
分散
ただし,
ρ j , j = 1, . . . , d
はX ⊤ X
の固有値( ≥ 0)
▶
リッジ回帰推定量の平均二乗誤差MSE[ ˆ w R ] = σ 2
∑ d j=1
ρ j (ρ j + λ) 2
| {z }
分散
+ λ 2 w ⊤ (X ⊤ X + λI) − 2 w
| {z }
バイアスの
2
乗一般化二次正則化
▶
正定値行列:G∈ R d × d
G
が正定値行列⇔ z ⊤ Gz ≥ 0 ∀ z ∈ R d
▶
罰則付き誤差E:= (y − X w) ⊤ (y − X w) + λw ⊤ Gw
= w ⊤ (X ⊤ X + λG)w − 2(X ⊤ y)w + y ⊤ y
▶
最小解∂E
∂w = 0 ⇔ (X ⊤ X + λG)w = X ⊤ y
⇔ w λ ∗ = (X ⊤ X + λG) − 1 y
演習問題3(その1)
▶
高齢者の骨密度は過去の体重の推移に依存しており,70才の高齢 者の骨密度を以下のような4
特徴の線形モデルy = w 1 x 1 + w 2 x 2 + w 3 x 3 + w 4 x 4
を使ってモデル化しよう.ここで,
4
つの特徴がx 1 30
歳のときの体重x 2 40
歳のときの体重x 3 50
歳のときの体重x 4 60
歳のときの体重 と定義されているとする.演習問題3(その2)
▶
年齢が近い場合は骨密度への影響も似ていると想定されるので,以下の正則化項を導入する:
R(w) := λ 1
∑ 4 j=1
w 2 j + λ 2
∑ 3 j=1
(w j − w j+1 ) 2 .
ただし,第
1
項は通常の二次正則化項を,第2
項は隣り合う係数 が似た値を持つことを反映したものである.▶
正則化項R(w)
を行列・ベクトル表現を用いてR(w) = w ⊤ Gw
と表すためには,Gをどのような行列とすればよいか答えよ.た だし,Gは正定値行列として,対称行列であることに留意せよ.
演習問題3の解答
発展問題
▶
逐次選択法のステップt
における入力行列をX t
,最小二乗解をw ˆ t = (X t ⊤ X t ) − 1 X t ⊤ y
とする.また,このときの二乗誤差の和をS t := (y − X t w ˆ t ) ⊤ (y − X t w ˆ t )
とする.また,射影行列をP t := I − X t (X t ⊤ X t ) − 1 X t ⊤
と定義する.新たに加える特徴を
x j ∈ R n
とすると,ステップt + 1
の二乗誤差の和がS t+1 = S t − (y ⊤ P t x j ) 2 x ⊤ j P t x j
と表されることを示せ.
発展問題のヒント(その1)
▶
射影行列P t := I − X t (X t ⊤ X t ) − 1 X t
は以下の性質を持つ.▶
P t
は冪等性(Idemopotent)を持つP t 2 = P t
▶
P t
を用いると,二乗誤差の和は以下のように表されるS t := (y − X t w ˆ t ) ⊤ (y − X t w ˆ t ) = y ⊤ P t y
発展問題のヒント(その2)
▶
対称行列A ∈ R d × d
,ベクトルa ∈ R d
,スカラーa ∈ R
において[ A a a
⊤a
]
−1=
[ A
−10 0
⊤0
]
+ 1
a − a
⊤A
−1a
[ A
−1a
− 1
] [ A
−1a
− 1 ]
⊤▶
上の公式を用いると,行列(X t+1 ⊤ X t+1 ) − 1
は(X
t+1⊤X
t+1)
−1= ([ X
t⊤x
⊤j] [ X
tx
j])
−1=
[ (X
t⊤X
t)
−10
0
⊤0
]
+ 1
x
⊤jx
j− x
⊤jX
t(X
t⊤X
t)
−1X
tx
j[ (X
t⊤X
t)
−1X
t⊤x
j− 1
] [ (X
⊤tX
t)
−1X
⊤tx
j− 1
]
⊤発展問題の解答