最適化と学習アルゴリズム

27
最最最最最最最最最最最最 最最最最最 最最最最 最最最最最最 最最最最最最 最最最最最最最最

description

最適化と学習アルゴリズム. 勾配降下法 直線探索 劣勾配降下法 ニュートン法 確率的勾配降下法. 学習における 計算効率の問題. 既に説明した回帰、識別(分類)の解法で得た閉じた式は逆行列計算が必要。例えば、線形回帰の場合の正規方程式の解である重みベクトルは  w =(X T X) -1 X T y 学習データが高次元になると (X T X) の次元も大きくなり、逆行列の計算はコストが高い(次元数の3乗) 要は損失 (=Loss) を最小化したい 正規方程式の場合は2乗誤差だった。 逆行列計算を避けて最適化する方法が実用上重要。. 記法:損失 (Loss). - PowerPoint PPT Presentation

Transcript of 最適化と学習アルゴリズム

Page 1: 最適化と学習アルゴリズム

最適化と学習アルゴリズム

勾配降下法直線探索

劣勾配降下法ニュートン法

確率的勾配降下法

Page 2: 最適化と学習アルゴリズム

学習における計算効率の問題

既に説明した回帰、識別(分類)の解法で得た閉じた式は逆行列計算が必要。例えば、線形回帰の場合の正規方程式の解である重みベクトルは  w=(XTX)-1XTy

学習データが高次元になると (XTX) の次元も大きくなり、逆行列の計算はコストが高い(次元数の3乗)

要は損失 (=Loss) を最小化したい正規方程式の場合は2乗誤差だった。

逆行列計算を避けて最適化する方法が実用上重要。

Page 3: 最適化と学習アルゴリズム

記法:損失 (Loss)

zz

ym

L

ym

ym

L

ylossm

L

my

D

m

iii

m

iii

m

iii

m

iii

ii

i

,0max

,11

,1

,1

2

,on 1

1) or 1(

,

1

1

2

1

2

2

1

   ここで                   

   ヒンジ損失の場合

   乗損失の場合

例:

 

個あるとするただしデータは に対する分類の正解:

次元ベクトルとするは重みベクトル:入力データ:

xww

xwxww

xww

x

wx

Page 4: 最適化と学習アルゴリズム

記法:勾配 (Gradient) とヘッセ行列( Hessian)

     

     

     

のヘッセ行列における

   

の勾配における

 ノルム:

次元ベクトルとするは

kDD

kkDD

kDD

kk

kDD

k

wwDDwwwwD

wwwwDwwk

k

wwnww

k

k

pD

pp

p

ppD

p

p

ww

L

ww

L

ww

L

ww

L

L

L

w

L

w

LL

L

wwwwp

D

ww

ww

w

ww

www

ww

ww

w

2

,

2

,1

2

1

2

T

1

1

1

1

11

1111

11

H

,....,

Page 5: 最適化と学習アルゴリズム

勾配降下法右図で分るよう

にL(w)が凸の場合は、勾配▽ L(w) の逆方向に進むとW*=argmin L(W)に向かって進む。図は1次元だが

実際は多次元なので、勾配の方向が大切なことに注意

L( w )min L(w)

W*   w▽L(W*)=0  

勾配=▽ L(W)

Page 6: 最適化と学習アルゴリズム

定式化• 勾配降下法 (Gradient Descent) の定式化す

となる

けば閉じた解が求まり損失を微分して0と置

:2乗損失だと

:重みベクトルの更新式

となる。方向に進むので下の式を求めるには勾配の逆

最適な重みベクトル

ル更新された重みベクト回目の繰り返し結果の

のときの損失:重みベクトル:重みベクトル

kkkk

kkkk

kkkk

k

L

LL

LL

L

k

L

www

wwvw

wwvw

ww

w

www

v

v

w

1

2

2

12

2

1

*

minarg**

minarg

minarg:

:

2 乗損失でないとこう簡単な式ではない

Page 7: 最適化と学習アルゴリズム

最急降下法アルゴリズム• L (w)を最小化するような w を求めるために、 w

の現在の値 w(k) から勾配▽ L(w) の逆方向に進むアルゴリズム

)())(,(

2)(,)(

11:4

)size step()(:3

)(:2

:1

);(minarg;0;

)()()1(

2

2

)()()1(

)(

)1()(

*)(

*)0(

nnk

nkkk

nn

kkkkk

k

kk

k

y

yL

stepkkstep

Lstep

Lstep

step

Lk

xxwww

xww

www

w

ww

ww

www

乗損失なら    つまり

へ  として 

は進む幅    

を計算 

)に十分近くて収束したがは          (具体的に

に十分近いなら終了が 

 初期値

Page 8: 最適化と学習アルゴリズム

最急降下法の収束の評価前提条件

凸 & ▽ 2L(w) positiveLipschitz 条件:

テイラー展開により近似

1

0

2

2

12

2

2

2

1

2

2

2

22

2

22

2

1

11

kkkk

kkkk

k

kkk

kkkk

kkkkk

LLL

LLL

L

LLLLL

LL

www

www

w

wwwww

wwww

により

と次のテイラー近似するをとし、

GL

GLL

k

kkkk

2

2

11

w

wwww

Page 9: 最適化と学習アルゴリズム

直観的説明

min L(w)

W (k+1)   w (k)

  

GL

GLLL

GLipshitz

GLL

k

kkkkkkk

kkkk

2

2

1

2

1

2

1

2

11

w

wwwwwww

wwww

がある条件より以下のような

凸かつ▽ 2L(w)≥0なので、 minL に

近づくにつれてこの差は小さくなる

適当な G で上から抑えられ

Page 10: 最適化と学習アルゴリズム

最急降下法の収束の評価:つづき

以下に収束回の更新で誤差

として:以下にするのはオーダ誤差を

  より   条件

とおくを選び、というここで

ないし等しいとするとに十分近い(が +

2

22

2*

2

2

*

*2

2

*1*1

12

2

Lipschitz

,

)

1

GBO

k

BGOO

k

BGG

kG

BLL

GL

kG

BBB

LLL

LLL

k

k

k

kkk

kk

kkkk

ww

w

w

www

wwww

www

Page 11: 最適化と学習アルゴリズム

捕捉

という雰囲気

とおくを選び、というこのあたりを想定して

 

くらいにはなるだろう      

と無意味!をやたらと大きくする

kG

BB

GBGLL

BB

GLL

k

kk

k

kk

k

2

**

2

*

2

*

2

**

wwww

www

wwww

Page 12: 最適化と学習アルゴリズム

step size α を決める:直線探索α(k) が小さすぎると収束が遅々として進ま

ず、    大きすぎると最悪の場合最適値を

飛び  越す最適な α(k) を求める問題:直線探索

厳密に解くのは困難

0 subject to

(min

k

kkk LLk

                  単位ベクトル                  の

方向)つまり降下方向は wddw

Page 13: 最適化と学習アルゴリズム

直線探索の代案

k の減少関数にする i.e. しかし、あまりにもヒューリスティックもう少し客観的な基準として

Armijo 基準と Wolfe 基準がある

kk 1

Page 14: 最適化と学習アルゴリズム

Armijo 基準と Wolfe 基準

α

L(W+α▽L(W))-L(W)

α L(W)▽

ξα▽L(W) :  0<ξ<1 予め決まった値 

ξ=0

この不等式を満たすように α を選ぶ: Armijo 基準

L(W+αd)-L(W) ≤ ξα▽L(W)TdWolfe 基準:

α が小さくなりすぎないため。 α =0 だと明らかに成立しない (!

▽L(W)Td<0)

1

TT

ddWdW LL

最適値

行き過ぎ

α=0

Page 15: 最適化と学習アルゴリズム

直線探索の代案 :2 分割法

k 回目の繰り返しにおいて以下のアルゴリズムで α(k) を減少させるStep1 t=1, αt

(k)=α(k)

Step2 if 停止基準 (Armijo 基準等)が満たされる

     then return   αt(k)

else αt(k)=α(k)/2

Step3 k k+1

Step4 Step 2 へ

Page 16: 最適化と学習アルゴリズム

微分可能でない場合:劣勾配 (sub-gradient) の利用

gwvwvvgw TLLL

L

0|

tsubgradien:convext:

 

の凸関数

w v

...|gw L

Page 17: 最適化と学習アルゴリズム

10

0,1

11

1

01

1,1

01

1

1

wwL

wL

wwL

wwL

losshinge

wwL

wL

wwL

wwwL

lossL

 

 

Page 18: 最適化と学習アルゴリズム

劣勾配降下法Sub-Gradient Descent

   へ  として 

 

  を計算        

)に十分近くて収束したがは          (具体的に

に十分近いなら終了が 

 初期値

 

11:4

minarg:3

0|

:gradient-sub 2 step

:1

);(minarg;0;

,

1

)1()(

*)(

*)0(

stepkkstep

Lstep

LL

L

step

Lk

kk

L

k

kk

k

gwvw

gwvwvvg

w

ww

ww

www

wgv

Page 19: 最適化と学習アルゴリズム

最急降下法がうまくいかない場合

• ジグザグに動きながら最適解に近づくので収束する速度が遅い(効率が良くない)

• 勾配以外の情報も使ってみるニュートン法

Page 20: 最適化と学習アルゴリズム

ニュートン法

最小化したいのは損失 L(w)ただし、直接には最適化できない場合を考えている

今 w の現在値 w(k) が与えられていて、 d を加えることによってより最適値に近い w(k+1) を得たい。

ここで w(k) が定数で d を変数と思って L(w(k+1)) = L(w(k) + d)

 の左辺を直接最適化する代わりに右辺を最小にする d を求める。

この結果を d(k) とし、よりよい L を L(w(k) + d(k)) として、繰り返すことによって真の最適値に近づこうとする

ここで L(w(k) + d) を2次のテーラー近似する場合がニュートン法

Page 21: 最適化と学習アルゴリズム

kkk

kkkk

LL

LLLL

wwd

dwddwwdw

d

1

TT

Hminarg

H2

1

右辺

2 次のテーラー展開

右辺を d の関数と見て最小化しニュートン方向 d(t) を求める

ニュートン法のアルゴリズム

よいは直線探索で決めても

へ  として 

は      

を計算     ニュートン方向

に十分近いなら終了が 

  初期値   

k

kkkkkk

kkk

k

stepkkstep

LLstep

LLstep

step

Lkstep

11:4

size stepH:3

H:2

:1

);(minarg;;0:0

1)()1(

1

*)(

*0

wwww

wwd

ww

www

Page 22: 最適化と学習アルゴリズム

ニュートン法の直感的な解釈

この辺りは▽の変化すなわちヘッセ行列 HL(W)が小さいので大きく進む方が効率がよい HL(W)-1 :大

この辺りは▽の変化すなわちヘッセ行列 HL(W)が大きいので大きく進むと不味い方向に行ってしまう。 HL(W)-1 :小

Page 23: 最適化と学習アルゴリズム

ニュートン法の問題点ニュートン法は勾配降下法より多くの場合で性

能がよいが、ヘッセ行列の逆行列を繰り返しの度に計算しなければならない

N×N の行列の逆行列の計算には O(N3) のコストがかかる。 N が大きくなると実用的でなくなる

ヘッセ行列の逆行列を近似する行列を行列のかけ算だけによる更新式を使って O(N2) で計算する方法もある。BFGS公式のヘッセ逆行列版( cf. 共立出版「最適化

法」 p.122)

Page 24: 最適化と学習アルゴリズム

確率的勾配降下法Stochastic Gradient Descent(SGD)

ここまで述べてきた方法は全データを一挙に学習に用いるバッチ処理

1 データないし少数のデータ毎に重みベクトル w 学習する方法:オンライン学習に近い最終結果としては、 1 ないし少数データ毎の学習で得られた

w の平均メモリに全データを展開しなくてよい可能性もある省メモリしかし、全データを何回も繰り返し使うなら省メモリにならない -

1 つのデータは 1 回しか見ないストリームマイニング的

2種類の SGD Sample Approximation(SA):1 データ毎の学習

Page 25: 最適化と学習アルゴリズム

SGD(SA)  と  バッチ学習

x1, y1

x2, y2

x3, y3

:

xi, yi

:

xm, ym

m

ii

mmmm

mm

iiii

ii

m

yloss

yloss

yloss

yloss

yloss

1

11

1

11

1

3322

23

2211

12

1100

01

0

1

,on

,on

,on

,on

,on

ww

xw

ww

xw

ww

xw

ww

xw

ww

xw

ww

w

      

      

    

    

    

すして上の処理を繰り返をさらに 1

,on 1

,on

,on

,on

,on

,on

1

1

33

22

11

k

ylossm

yloss

yloss

yloss

yloss

yloss

m

iii

kkkk

mmk

iik

k

k

k

k

xwww

xw

xw

xw

xw

xw

w

このデータ生成が確率的

Page 26: 最適化と学習アルゴリズム

Sample Average Approximation(SAA)  SA inside SAA

全データからランダムに m個のデータをサンプルして m個のデータからなるデータ集合を作る。

このようにして異なるデータ集合を k個作る。

データ集合 (i) に SGD(SA) を適用して学習し、重みベクトル w(i) を計算

最終結果

m

i

im 1

1ww

Page 27: 最適化と学習アルゴリズム

例: SGD によるサポートベクターマシン

k

BB

yy

ni

n

ym

ym

sum

sumsum

iiiT

i

m

ii

Ti

m

ii

Ti

B

ww

www

wwww

xwwxw

w

wxwxwWW

結果:}

          

からランダムに生成 を        {回繰り返す以下を

全データ数初期値:

は以下のようになるに注意すると

then if

then 1 if

..1

k

:,

SVD

21

1min1

1min

22

0

2

2112