Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
6. 最適化と学習アルゴリズム
勾配降下法
直線探索
劣勾配降下法
ニュートン法
確率的勾配降下法
クラシックな機械学習の入門
学習における計算効率の問題
 既に説明した回帰、識別(分類)の解法で得た閉じ
た式は逆行列計算が必要。例えば、線形回帰の場
合の正規方程式の解である重みベクトルは
w=(XTX)-1XTy
 学習データが高次元になると(XTX)の次元も大き...
記法:損失(Loss)
    
   
   
   zz
y
m
L
y
m
y
m
L
yloss
m
L
my
D
m
i
ii
m
i
ii
m
i
ii
m
i
ii
ii
i
,0max
,1
...
記法:
勾配(Gradient)とヘッセ行列(Hessian)
   
 
 
   
 
 
 
 
 
 
 
 
 
   
 
   
 
  
...
勾配降下法
右図で分るように
L(w)が凸の場合
は、勾配▽L(w)の
逆方向に進むと
W*=argmin L(W)
に向かって進む。
図は1次元だが
実際は多次元な
ので、勾配の方
向が大切なこと
に注意
L(w)
min L(w)
W*...
定式化
• 勾配降下法(Gradient Descent)の定式化する
 
 
 
       
   
         
  
       
  と...
最急降下法アルゴリズム
• L(w)を最小化するようなwを求めるために、wの現在
の値w(k)から勾配▽L(w)の逆方向に進むアルゴリズム
   
 
)())(,(
2)(,)(
11:4
)sizestep()(:3
)(:2
...
最急降下法の収束の評価
前提条件
凸 & ▽2L(w) positive
Lipschitz条件:
テイラー展開により近似
       
   
 
 
   
     
 ...
直観的説明
min L(w)
W(k+1) w(k)
 
   
     
 
   
   
         
 
  GL
GLLL
GLipshitz
GLL
k...
最急降下法の収束の評価:つづき
   
    
   
   
   
   
    
   
 
 
 
 
   
 
以下に収束回の更...
捕捉
 
 
     
 
 
     
 
という雰囲気
とおくを選び、というこのあたりを想定して
 
くらいにはなるだろう    
と無意味!をやたらと大きくする
kG
B
B
GBGLL
B...
step size αを決める:直線探索
α(k)が小さすぎると収束が遅々として進まず、
大きすぎると最悪の場合最適値を飛び
越す
最適なα(k) を求める問題:直線探索
厳密に解くのは困難
 
   
   
 ...
直線探索の代案
kの減少関数にする i.e.
 しかし、あまりにもヒューリスティック
もう少し客観的な基準として
Armijo基準とWolfe基準がある
 
kk
1
Armijo基準とWolfe基準
α
L(W+α▽L(W))-L(W)
α▽L(W)
ξα▽L(W): 0<ξ<1 予め決まった値
ξ=0
この不等式を満たすようにαを選ぶ:
Armijo基準
L(W+αd)-L(W) ≤ ξα▽L(W)TdW...
直線探索の代案:2分割法
k回目の繰り返しにおいて以下のアルゴリズ
ムでα(k)を減少させる
Step1 t=1, αt
(k)=α(k)
Step2 if 停止基準(Armijo基準等)が満たされる
then return αt
(k)
e...
微分可能でない場合:
劣勾配(sub-gradient)の利用
        gwvwvvgw
T
LLL
L
 0|
tsubgradien:convext:
 
の凸関数
w v
   ...|g...
例
 
 
   
 
   
 
   
  10
0,1
11
1
01
1,1
01
1
1









wwL
wL
wwL
wwL
l...
劣勾配降下法
Sub-Gradient Descent
 
      
 
 
   
  
へ   として 
 
 を計算     
)に十分近くて収束したがは     (具体的に
に十分近いなら...
最急降下法がうまくいかない場合
• ジグザグに動きながら最適解に近づくので収束する
速度が遅い(効率が良くない)
• 勾配以外の情報も使ってみるニュートン法
ニュートン法
 最小化したいのは損失 L(w)
ただし、直接には最適化できない場合を考えている
 今wの現在値w(k)が与えられていて、dを加えることに
よってより最適値に近いw(k+1)を得たい。
 ここでw(k)が定数でdを変数と思...
 
   
   
   
 
   
   
 kkk
kkkk
LL
LLLL
wwd
dwddwwdw
d


1
TT
Hminarg
H
2
1
右辺
2次のテ...
ニュートン法の直感的な解釈
この辺りは▽の変化すなわ
ちヘッセ行列 HL(W)が小さ
いので大きく進む方が効率
がよい
 HL(W)-1:大
この辺りは▽の変化すな
わちヘッセ行列 HL(W)が
大きいので大きく進むと不
味い方向に行ってしま...
ニュートン法の問題点
ニュートン法は勾配降下法より多くの場合で性
能がよいが、ヘッセ行列の逆行列を繰り返しの
度に計算しなければならない
N×Nの行列の逆行列の計算にはO(N3)のコスト
がかかる。Nが大きくなると実用的でなくなる
ヘッセ...
確率的勾配降下法
Stochastic Gradient Descent(SGD)
 ここまで述べてきた方法は全データを一挙に学習に
用いるバッチ処理
 1データないし少数のデータ毎に重みベクトルw学習
する方法:オンライン学習に近い
最...
SGD(SA) と バッチ学習
x1, y1
x2, y2
x3, y3
:
xi, yi
:
xm, ym
 
  
 
  
 
  
 
  
 
  





...
Sample Average Approximation(SAA)
SA inside SAA
全データからランダムにm個のデータをサン
プルしてm個のデータからなるデータ集合を
作る。
このようにして異なるデータ集合をk個作る。
データ...
例:SGDによるサポートベクターマシン
     
 
 
 
k
BB
yy
ni
n
y
m
y
m
sum
sumsum
iii
T
i
m
i
i
T
i
m
i
i
T
i
B
ww
www
wwww
xw...
Upcoming SlideShare
Loading in …5
×

クラシックな機械学習の入門 6. 最適化と学習アルゴリズム

4,851 views

Published on

学習データから分類器を学習するアルゴリズムの理論的基礎である最適化のアルゴリズムについて説明する。

Published in: Engineering
  • Be the first to comment

クラシックな機械学習の入門 6. 最適化と学習アルゴリズム

  1. 1. 6. 最適化と学習アルゴリズム 勾配降下法 直線探索 劣勾配降下法 ニュートン法 確率的勾配降下法 クラシックな機械学習の入門
  2. 2. 学習における計算効率の問題  既に説明した回帰、識別(分類)の解法で得た閉じ た式は逆行列計算が必要。例えば、線形回帰の場 合の正規方程式の解である重みベクトルは w=(XTX)-1XTy  学習データが高次元になると(XTX)の次元も大きく なり、逆行列の計算はコストが高い(次元数の3乗)  要は損失(=Loss)を最小化したい 正規方程式の場合は2乗誤差だった。 逆行列計算を避けて最適化する方法が実用 上重要。
  3. 3. 記法:損失(Loss)                 zz y m L y m y m L yloss m L my D m i ii m i ii m i ii m i ii ii i ,0max ,1 1 , 1 , 1 2 ,on 1 1)or1( , 1 1 2 1 2 2 1              ここで             ヒンジ損失の場合   乗損失の場合   例:   個あるとするただしデータは に対する分類の正解: 次元ベクトルとするは重みベクトル:入力データ: xww xwxww xww x wx
  4. 4. 記法: 勾配(Gradient)とヘッセ行列(Hessian)                                                                                                     のヘッセ行列における    の勾配における ノルム:  次元ベクトルとするは 1 1 k DD kk DD k DD kk k DD k wwDDwwwwD wwwwDww k k wwnww k k p D pp p pp D p p ww L ww L ww L ww L L L w L w L L L wwwwp D ww ww w ww ww w ww ww w 2 , 2 ,1 2 1 2 T 1 1 1 1 11 1111 11 H ,....,    
  5. 5. 勾配降下法 右図で分るように L(w)が凸の場合 は、勾配▽L(w)の 逆方向に進むと W*=argmin L(W) に向かって進む。 図は1次元だが 実際は多次元な ので、勾配の方 向が大切なこと に注意 L(w) min L(w) W* w ▽L(W*)=0 勾配 =▽L(W)
  6. 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乗損失でないとこう簡単な式 ではない
  7. 7. 最急降下法アルゴリズム • L(w)を最小化するようなwを求めるために、wの現在 の値w(k)から勾配▽L(w)の逆方向に進むアルゴリズム       )())(,( 2)(,)( 11:4 )sizestep()(:3 )(:2 :1 );(minarg;0; )()()1( 2 2 )()()1( )( )1()( *)( *)0( nn k n kkk nn kkkkk k kk k y yL stepkkstep Lstep Lstep step Lk xxwww xww www w ww ww www             乗損失なら  つまり へ として  は進む幅    を計算  )に十分近くて収束したがは     (具体的に に十分近いなら終了が   初期値
  8. 8. 最急降下法の収束の評価 前提条件 凸 & ▽2L(w) positive Lipschitz条件: テイラー展開により近似                                                                              1 0 2 2 12 2 2 2 1 2 2 2 22 2 2 2 2 1 11        kkkk kkkk k kk k kkkk kkkkk LLL LLL L LLLLL LL www www w wwwww wwww      + + + により と次のテイラー近似するをとし、                 GL GLL k kkkk    2 2 11 w wwww
  9. 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で上か ら抑えられる
  10. 10. 最急降下法の収束の評価:つづき                                                 以下に収束回の更新で誤差 として:以下にするのはオーダ誤差を  より条件   とおくを選び、というここで ないし等しいとするとに十分近い(が +                             2 22 2* 2 2 * *2 2 *1*1 12 2 Lipschitz , ) 1 GB O k BG OO k BG G kG B LL GL kG B BB LLL LLL k k k kkk kk kkkk ww w w www wwww www
  11. 11. 捕捉                       という雰囲気 とおくを選び、というこのあたりを想定して   くらいにはなるだろう     と無意味!をやたらと大きくする kG B B GBGLL BB GLL k kk k kk k       2 ** 2 * 2 * 2 ** wwww www wwww
  12. 12. step size αを決める:直線探索 α(k)が小さすぎると収束が遅々として進まず、 大きすぎると最悪の場合最適値を飛び 越す 最適なα(k) を求める問題:直線探索 厳密に解くのは困難               0subject to (min   k kkk LLk          単位ベクトル             の 方向)つまり降下方向は wddw
  13. 13. 直線探索の代案 kの減少関数にする i.e.  しかし、あまりにもヒューリスティック もう少し客観的な基準として Armijo基準とWolfe基準がある   kk 1
  14. 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
  15. 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へ
  16. 16. 微分可能でない場合: 劣勾配(sub-gradient)の利用         gwvwvvgw T LLL L  0| tsubgradien:convext:   の凸関数 w v    ...|gw L
  17. 17. 例                       10 0,1 11 1 01 1,1 01 1 1          wwL wL wwL wwL losshinge wwL wL wwL wwwL lossL    
  18. 18. 劣勾配降下法 Sub-Gradient Descent                     へ   として     を計算      )に十分近くて収束したがは     (具体的に に十分近いなら終了が   初期値   11:4 minarg:3 0| :gradient-sub2step :1 );(minarg;0; , 1 )1()( *)( *)0( stepkkstep Lstep LL L step Lk kk L k kk k         gwvw gwvwvvg w ww ww www wgv 
  19. 19. 最急降下法がうまくいかない場合 • ジグザグに動きながら最適解に近づくので収束する 速度が遅い(効率が良くない) • 勾配以外の情報も使ってみるニュートン法
  20. 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次のテーラー近似する場合が ニュートン法
  21. 21.                          kkk kkkk LL LLLL wwd dwddwwdw d   1 TT Hminarg H 2 1 右辺 2次のテーラー展開 右辺をdの関数と見て最小化しニュートン方向d(t)を求める ニュートン法のアルゴリズム                           よいは直線探索で決めても へ として  は     を計算  ニュートン方向  に十分近いなら終了が   初期値   k kkkkkk kkk k stepkkstep LLstep LLstep step Lkstep   11:4 sizestepH:3 H:2 :1 );(minarg;;0:0 1)()1( 1 *)( *0       wwww wwd ww www
  22. 22. ニュートン法の直感的な解釈 この辺りは▽の変化すなわ ちヘッセ行列 HL(W)が小さ いので大きく進む方が効率 がよい  HL(W)-1:大 この辺りは▽の変化すな わちヘッセ行列 HL(W)が 大きいので大きく進むと不 味い方向に行ってしまう。  HL(W)-1 :小
  23. 23. ニュートン法の問題点 ニュートン法は勾配降下法より多くの場合で性 能がよいが、ヘッセ行列の逆行列を繰り返しの 度に計算しなければならない N×Nの行列の逆行列の計算にはO(N3)のコスト がかかる。Nが大きくなると実用的でなくなる ヘッセ行列の逆行列を近似する行列を行列のか け算だけによる更新式を使ってO(N2)で計算する 方法もある。 BFGS公式のヘッセ逆行列版(cf. 共立出版「最適化 法」p.122)
  24. 24. 確率的勾配降下法 Stochastic Gradient Descent(SGD)  ここまで述べてきた方法は全データを一挙に学習に 用いるバッチ処理  1データないし少数のデータ毎に重みベクトルw学習 する方法:オンライン学習に近い 最終結果としては、1ないし少数データ毎の学習で得られ たwの平均 メモリに全データを展開しなくてよい可能性もある省メ モリしかし、全データを何回も繰り返し使うなら省メモリ にならない- 1つのデータは1回しか見ないストリームマイニング的  2種類のSGD Sample Approximation(SA):1データ毎の学習
  25. 25. SGD(SA) と バッチ学習 x1, y1 x2, y2 x3, y3 : xi, yi : xm, ym                                             m i i mmm m mm iii i ii m yloss yloss yloss yloss yloss 1 1 1 1 1 1 1 332 2 23 221 1 12 110 0 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 yloss m yloss yloss yloss yloss yloss m i ii kkkk mm k ii k k k k k xwww xw xw xw xw xw w    このデータ生成が確率的
  26. 26. Sample Average Approximation(SAA) SA inside SAA 全データからランダムにm個のデータをサン プルしてm個のデータからなるデータ集合を 作る。 このようにして異なるデータ集合をk個作る。 データ集合(i)にSGD(SA)を適用して学習し、重 みベクトルw(i)を計算 最終結果    m i i m 1 1 ww
  27. 27. 例:SGDによるサポートベクターマシン             k BB yy ni n y m y m sum sumsum iii T i m i i T i m i i T i B ww www wwww xwwxw w wxwxw WW                 結果: }        からランダムに生成 を    { 回繰り返す以下を 全データ数初期値: は以下のようになるに注意すると thenif then1if ..1 k :, SVD 2 1 1 min1 1 min 22 0 2 2 112  

×