• 検索結果がありません。

過学習と正則化

N/A
N/A
Protected

Academic year: 2021

シェア "過学習と正則化"

Copied!
39
0
0

読み込み中.... (全文を見る)

全文

(1)

Lec10

過学習と正則化

(2)

高次元モデル

計測技術の発展と高次元データ

(例)マイクロアレイによる遺伝子活動計測

x ij :

患者

i

の遺伝子

j

の活動量

/ y i :

薬剤代謝酵素量

高次元線形モデル

y = w 0 + w 1 x 1 + . . . + w 10000 x 10000

(3)

非線形モデル

非線形現象のモデリング

多項式回帰モデル

y = w 1 x + w 2 x 2 + +w 3 x 3 + · · · + w 50 x 50

(4)

過学習(重要)

パラメータ数が多いと過学習が起こる

パラメータ数=1 パラメータ数=2

(5)

過学習(重要)

パラメータ数が多いと過学習が起こる

パラメータ数=10 パラメータ数=20

パラメータ数=40 パラメータ数=50

(6)

最小二乗法(復習)

訓練データ

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

の逆行列が存在する

(7)

事例数

n

と次元数

d

の関係

n > d

のとき

(一般に)解ける

n = d

のとき

誤差が

0(完全に過学習)

n < d

のとき

(一般に)解けない

(8)

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

(9)

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

の逆行列が存在せず最小二乗解が得られない

(10)

ここまでのまとめ

高次元モデルや非線形モデルではパラメータ数が多くなる

パラメータ数が多いと過学習が起こる

最小二乗法が解けるか

X X

の逆行列が存在するか

そもそも

n < d

の場合には(一般的に)最小二乗解が存在しない

(11)

演習問題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

となることを 確認せよ

(12)

演習問題1のヒント

定数モデルでは以下のような

X

0を用いて最小二乗解を求めればよい

X

0

=

 1 1 1

w ˆ

0

= (X

0

X

0

)

−1

X

0

y

線形モデルでは以下のような

X

1を用いて最小二乗解を求めればよい

X

1

=

 1 1 1 2 1 4

[ w ˆ

0

ˆ w

1

]

= (X

1

X

1

)

1

X

1

y

二次モデルでは以下のような

X

2を用いて最小二乗解を求めればよい

X

2

=

 1 1 1

2

1 2 2

2

1 4 4

2

w ˆ

0

ˆ w

1

ˆ w

2

 = (X

2

X

2

)

−1

X

2

y

(13)

演習問題1の解答

(14)

過学習を防ぐには

特徴選択(

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

のある部分領域を表す

(15)

特徴選択

特徴数が

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

(16)

逐次特徴選択

Step 1 Step 2 Step 3

(17)

逐次特徴選択アルゴリズム(実装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

(18)

逐次特徴選択アルゴリズム(実装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

(19)

計算量

ベクトルの内積

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)

(20)

逐次特徴選択の計算コスト

逐次特徴選択は計算コストが大きい

実装1

O (n 3 + dn 2 + d 2 n)

実装2

O (2n 2 + dn + d 2 )

大規模データに対する機械学習アルゴリズムでは実装の工夫が不可欠

(21)

演習問題2

行列

A R m × k , B R k × n ,

ベクトル

v R n

の積

ABx

を計算す るには

2

通りの方法

1. (AB)v 2. A(Bv)

がある.それぞれの計算方法の

FLOP

数,計算量オーダを求め,

どちらが効率的であるかを議論せよ.

(22)

演習問題2の解答

(23)

過学習を防ぐには(再掲)

特徴選択(

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

のある部分領域を表す

(24)

過学習されたモデルの係数

▶ 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

(25)

リッジ回帰分析(制約表現)

ˆ

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

(26)

リッジ回帰分析(罰則表現)

hatw Ridge = arg min

w ∈R

d

n

i=1

(y i w x i ) 2 + λ

d

j=1

w j 2

λ > 0

は正則化パラメータ

(27)

対応関係

w∈R

min

d

n i=1

(y

i

w

x

i

)

2

+ λ

d j=1

w

2j

min

w∈Rd

n i=1

(y

i

w

x

i

)

2

subject to

d j=1

w

2j

s

(28)

リッジ回帰分析(復習)

リッジ回帰分析:係数の二乗和を罰則とする最小二乗回帰分析

w λ = arg min

w ∈R

d

n i=1

(y i w x i ) 2 + λ

d j=1

w j 2

ただし,λ >

0

は正則化パラメータとよばれるハイパーパラメータ

(29)

リッジ回帰分析の行列・ベクトル表現(復習)

訓練データ

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

(30)

平均二乗誤差のバイアス・分散分解

不偏推定:期待値が真値である推定

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

]

(31)

最小二乗法とリッジ回帰分析のバイアス・分散

最小二乗推定量の平均二乗誤差

MSE[ ˆ w] = σ 2

d j=1

1 ρ j

| {z }

分散

ただし,

ρ j , j = 1, . . . , d

X X

の固有値

( 0)

リッジ回帰推定量の平均二乗誤差

MSE[ ˆ w R ] = σ 2

d j=1

ρ jj + λ) 2

| {z }

分散

+ λ 2 w (X X + λI) 2 w

| {z }

バイアスの

2

(32)

一般化二次正則化

正定値行列: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

(33)

演習問題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

歳のときの体重 と定義されているとする.

(34)

演習問題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は正定値行列として,対称行列であることに留意せよ.

(35)

演習問題3の解答

(36)

発展問題

逐次選択法のステップ

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

と表されることを示せ.

(37)

発展問題のヒント(その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

(38)

発展問題のヒント(その2)

対称行列

A R d × d

,ベクトル

a R d

,スカラー

a R

において

[ A a a

a

]

−1

=

[ A

1

0 0

0

]

+ 1

a a

A

1

a

[ A

1

a

1

] [ A

1

a

1 ]

上の公式を用いると,行列

(X t+1 X t+1 ) 1

(X

t+1

X

t+1

)

1

= ([ X

t

x

j

] [ X

t

x

j

])

−1

=

[ (X

t

X

t

)

1

0

0

0

]

+ 1

x

j

x

j

x

j

X

t

(X

t

X

t

)

1

X

t

x

j

[ (X

t

X

t

)

1

X

t

x

j

1

] [ (X

t

X

t

)

1

X

t

x

j

1

]

(39)

発展問題の解答

参照

関連したドキュメント

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

チューリング機械の原論文 [14]

事業セグメントごとの資本コスト(WACC)を算定するためには、BS を作成後、まず株

⑥ニューマチックケーソン 職種 設計計画 設計計算 設計図 数量計算 照査 報告書作成 合計.. 設計計画 設計計算 設計図 数量計算

 当図書室は、専門図書館として数学、応用数学、計算機科学、理論物理学の分野の文

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船

賠償請求が認められている︒ 強姦罪の改正をめぐる状況について顕著な変化はない︒

越欠損金額を合併法人の所得の金額の計算上︑損金の額に算入