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.

今さら聞けないカーネル法とサポートベクターマシン

100,981 views

Published on

Published in: Education
  • Be the first to comment

今さら聞けないカーネル法とサポートベクターマシン

  1. 1. 今さら聞けないカーネル法と サポートベクターマシン @kakenman
  2. 2. 自己紹介 @kakenman 趣味 最近の動向 組み込みプログラミング 成り行き上某M社という外資 Python のコンサルに就職することに サーバ管理 なったので,せっかくだから VM遊び(特にKVM) これまでの知識を何かに役立 金属溶接 てたい気分 金属加工 電子工作 ←他のも要望あればやります今回はこれ 機械学習 よ!TIG溶接は任せろ! 自然言語処理 未来ガジェット製作 牧瀬紅莉栖
  3. 3. カーネル法とSVM• ガチ勢的には使い古された手法• 一方で名前だけ知ってるって人も多い• 「あ,あーSVMねー(よく分かってないけど)」• 「あ,あーカーネルトリックねー(全然分からな いけど)」• 今日はそんな感じの方向け
  4. 4. 本日のはなし• 第一部:カーネル法• 第二部:サポートベクターマシン準備期間の関係で第一部で力尽きた感あり・・・ 導出の手順は色々ありますが 今回はこちらの本を参考に→カーネル多変量解析 非線形データ解析の新しい展開著者:赤穂昭太郎良書なのでどんどん買いましょう
  5. 5. 第一部 カーネル法• 線形回帰 • カーネル回帰• 特徴ベクトルの射影 • カーネルトリック• 正則化 • ガウスカーネル• リプレゼンター定理 • 多項式カーネル
  6. 6. 第二部 サポートベクターマシン• 識別問題• 回帰問題への帰着• 損失関数• サポートベクターマシン• サポートベクター
  7. 7. 線形回帰 6 sample • 例えば右図のようなサンプル(x,y) 4 の集合が与えられたとき,未知の 2 xに対してyを予測したい 0 y • y=f(x)となるfを推定する -2 • -4 最も簡単なのはいわゆる一次近似 -6 -3 -2 -1 0 1 2 3 x y (i) ≈ w0 + w1 x(i) (9) N, w1 ) = {y (i) − w0 + w1 x (i) 2 } (10) i
  8. 8.  (1) (1)  BD(Pstate , Pstate )  (1)  (2) 一次の線形回帰の解 (8)   BD(Pstate , Pstate ) .    .   .  (i) (1) (N ) (i) 近似式: y state0 Pstate ) w0 + w1 x BD(P ≈ w , + y 1 x (i) w ≈ (i) (9) (9) N N 二乗誤差: yi ≈{y (i)+= 1 x{y(i) −x(i)0 +2w1 x(i) }2 R(w , w ) = R(w0 , w1 ) w w i+ w w } w0 − (9) (10) (10) 0 1 0 1 i i R(w0 , w1 ) = {yi −ˆ(wˆ1 ) =w1 xi )}R(w0 , w1 ) (w0 , w + argmin (10) 2 (11)ti−1 ) 二乗誤差を最小にするwを求める 0 (w0 , wi1 ) = argmin R(w0 , ,w 1)) ˆ ˆ (w w 0 1 (11) (w0 ,w1 ) (12) (w0 , w1 ) = argmin R(w0 , w1 ) ˆ ˆ (11) (12) (w0 ,w1 ) (12)
  9. 9. ∂R =0 ∂wk一次の線形回帰の解:解法 wk =wk ˆ N ∂R = −2{y (i) − w0 + w1 x(i) } Rはw0,w1に対して凸関数なので微分 ∂w0 i = してゼロでおk N i (i) 2 x(i) y (i) x x(i) w1 i i = i i x(i) 1 w0 i y (i)
  10. 10. 一次の線形回帰:結果 6 sample f(x) 4 2 0y -2 -4 -6 -3 -2 -1 0 1 2 3 x
  11. 11. 二次の線形回帰 6 sample f(x) 4• 2 xに対しては非線形だがwに対して線 形なのでこれも線形回帰 0 y -2• この形の線形回帰は常に二乗誤差が -4 wの凸関数なので簡単に解ける -6 -3 -2 -1 0 1 2 3 x 2 y (i) ≈ w0 + w1 x(i) + w2 x(i) ( y (i) ≈ w0 + w1 x(i) (1 N R(w0 , w1 ) = {y (i) − w0 + w1 x(i) }2 (1
  12. 12. (w0 , w1 ) = argmin R(w0 , w1 ) ˆ ˆ (w0 , w1 ) (i) ≈argmin(i) ˆ ˆ y = (w0+ w1 x R(w0 , w(10) w0 ,w1 ) 1) 特徴ベクトルの射影 N (w0 ,w1 ) R(w0 , w1 ) = {y (i) − 0 + w1 x w (i) } 2 (11) i (i) 2 (i) x (i) ) T (i) ≈ w 線形回帰の一般式: (w0 ,yˆ1 ) = argmin R(w(i) 1 ) ˆ w ) = φ(x , w (12) φ(x (w ,w ) x 0 0 1  (i) 21  x2次1変数の場合: φ(x(i) ) =  x(i)  (13) y ≈ w φ(x ) (i) T 1 (i) y (i) ≈ wT φ(x(i) ) (14)特徴ベクトルの射影 x (i) → φ(x ) (i) (15) (16)
  13. 13. w N (w0 , w1 ) = T ˆ ˆ argmin R(w0 , w1 ) (12) ˆ= w T argmin R(w) + λw (w0 ,w1 ) (15) wˆw = argmin R(w0 , w1 ) = R(w) + λw w w (15) {y − w0 + w1 x (i) (i) }2 (11) 演習:線形回帰の最適解 w (w0 , w1 )iˆ argmin R(w , w1 ) ˆ ˆ = w = argmin 0 {y (i) − wT(16) (i) )}2 φ(x (13)w0 , w1 ) = argmin R(w0 , w1 )ˆ ˆ (16)w (w0 ,w1 ) i (w0 ,w1 )  (w0w1=(1) ˆ , ˆ ) argmin R(w0 , w1 T ) (12) T  以下で表される解を求めよ φ(1) ˆ (1) (w φ2 ) · · · w (1) φ1  0 ,w1= argminφM R(w) (14) ) (1) (1) T   (1) (2) · (2) (2) w (2)  φ1 φφ 2 · ·  φ1 φM φ2 · · · φM  )T   (2)Φ = (2) .  =  (2)   . ··  . ˆ(i) . . . . . 2T    φ1 ˆ φ2 argmin  M. w = − w T.φ(x(i) )} w (13) w= .  · φ {y argmin R(w) .+ λw . . .  (15)   = . . (N )w . T.  (N w . (N φ ) · · · φ(N )   . . . )  . . φ . iφ1  2 . MN )T (N ) (N ) (N ) w0 , w1 ) = argmin R(w0 , w1 ) (ˆ ˆ (16) φ1 φ2 · · · (i) M φ φ = φ(x(i) ) (w0 ,w1 ) (17)  (1)  ˆ = argmin  (1) w   T  R(w) (1)  (14) (1) (1)(1) y φ yw φ1 φ2 · · · φM  y (2)    (2)  (2) (2) T  φ (2) (2)    φ y   1 φ2 · · · φM  ˆ Φ =  .  =  = y =  .  w = argmin .R(w) + .λw T w y  (17)   .(18) . (15) .   .  . . .   .  . .  . . . . . .  . w (N ) y (N ) (N ) T y φ1 (N ) (N ) φ2 (N ) · · · φM φ  ( 0 , w1 ) =  (i) 2  0 , w1 2  w ˆ ˆ argmin R(w ) (16) (i) 2 (wx ,w ) x(i)
  14. 14.  .   . . . . (N ) T (N ) (N ) (N )φ φ1 φ2 ··· φM 演習:線形回帰の最適解 (i) φ = φ(x ) (i) ( Φ Φw = Φ y T T (  (1)  y実用上は丸め誤差などを小さくするため逆行列  y (2)   を明示的に求めずに解く(ハマりました) y= .  (  .  . (N ) y
  15. 15. 3次元こそ至高(公式見解) 1 2 6 6 sample sample f(x) f(x) 4 4 2 2 0 0y y -2 -2 -4 -4 -6 -6 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 x x 3 6 4 sample f(x) 高次元に射影すると表現 力が向上してハッピー 2 0y -2 …ともーじゃん? -4 -6 -3 -2 -1 0 1 2 3 x
  16. 16. なんかヤバイ 5 8 6 6 sample sample f(x) f(x) 4 4 2 2 0 0y y -2 -2 -4 -4 -6 -6 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 x x 6 11 sample 6 14 sample f(x) f(x) 4 4 2 2 0 0y y -2 -2 -4 -4 -6 -6 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 x x
  17. 17. Overfitting(過学習) 6 sample f(x) 4• 一般に学習データに対して推定する 2 パラメータが多すぎる時に起こる 0 y• -2 右の例は15サンプルで15パラメータ -4• 全データ誤差0でフィッティングす -6 -3 -2 -1 0 1 2 3 るけど・・・・ x• こういうのを汎化性能が低いと言う
  18. 18. y (i) ≈ w0 + w1 x (i) (10) y ≈ w0 + w1 x (i) (i) (10) 正則化 } NR(w0 , w1 ) = {yN(i) − 0 1 w +w x (i) 2 (11) R(w0 , w1 )i = {y − w0 + w1 x (i) (i) } (11) 2 Overfitしないようにパラメータに制約を加える i (w0 , w1 ) = argmin R(w0 , w1 ) ˆ ˆ (12) (w0 , w1(w= argmin R(w0 , w1 ) ˆ ˆ ) 0 ,w1 ) (12) (w0 ,w1 ) ˆ w = argmin {y (i) − wT φ(x(i) )}2 ˆ w= w argmin i {y − w φ(x )} (i) T (i) 2 w iˆw = argmin {y (i) − w φ(x )} + λw w T (i) 2 T ˆ w w = argmin i (i) {y T − w φ(x )} + λw w (i) 2 T w i ˆ w = argmin R(w) (13) ˆ w w = argmin R(w) (13) w ˆ w = argmin R(w) + λw w (14) T ˆ w= w argmin R(w) + λw T w (14)
  19. 19. w R(w0 , w1 ) = {y (w0 ,w0 )+ w1 x R(w0(11) (i) −ˆ w1 = T ˆ argmin } , w1 ) (i) 2 (12) ˆ= i w T argmin R(w) + λw (w0 ,w1 ) (15) wˆw = argmin R(w) + λw w w 演習 (15) w (ˆˆ, w ) ˆ argmin R(w w w w = argmin 0 {y,(i) 1 ) wT(16) (i) )}2 (w00 ,wˆ1) = argmin R(w ,0 1 ) − w ˆ1 φ(x(12) (13)ˆ ˆ 2次正則化付き線形回帰の最適解w0 , w1 ) = argmin R(w0 , w1 ) i (w(16) 0 w (w0 ,w11 ) ,w ) (w0 ,w1 )  T  (1) (1) T (1)  (1) T  ˆ (1) T  w = argmin φ  (2) w {y − w φ(x )} φ1   (1) (i) φˆ = argminφM w2 ··· (i) R(w) 2 (14) (1) (2)  ) φ1 以下で表される解を求めよ φ φ ·· 2 · φM  φ1 i (2) (2) φ2 w · · · φM  T  (2) = (2) .  =  (2)  . Φ  · φ .    )   φ1 φ2 . ·  M. ˆ  . · . w = argmin.R(w) . λwT w . . .  + . (i) . 2 .  (15) = . (i)  T . (N ) T. . {y φ− φ(N w · )} +(N ) T w . (N )w φ(x · · φ λw ˆ   w = argmin   . . .1  2 ) . . φ w . . M (N ) w0 , w1 ) (ˆ ˆ = argmin R(w0 , w1 ) (16) iN )T (N ) φ1 (N ) φ2 ··· φ φ = φ(x(i) ) (i) M (w0 ,w1 ) (17)  (1)  ˆ argmin  w =  (1)  (1) (1) T R(w) (1) (13) (1)  y φwy φ1 φ2 · · · φM  y (2)    (2)  (2) (2) T   φ (2) (2)    φ y   1 φ2 · · · φM  y =  .  w = Φ =  . .  + λwT w y  R(w) =  . = (17)  ˆ argmin . .   (18) . . (14) .    . . w  . .   . . . . . . .  . y (N ) φ y (N ) (N ) T (N ) φ1 (N ) φ2 (N ) · · · φM (w0 , w1 ) = argmin R(w0 , w1 ) ˆ ˆ  (15) 2   2 (w0 ,wx) 1 (i) 2 (i) x(i)
  20. 20. φ (i) 演習 (i) ) = φ(x 2次正則化付き線形回帰の最適解 Φ Φw = Φ y T T (Φ Φ + λI)w = Φ y T T  (1)  yλを大きくしてゆくとwは0に近づく  y (2)    y= .   .  .
  21. 21. 正則化の効果 λ=0 λ=0.0001 6 6 sample sample f(x) f(x) 4 4 2 2 0 0y y -2 -2 -4 -4 -6 -6 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 x x λ=0.05 λ=1.0 6 6 sample sample f(x) f(x) 4 4 2 2 0 0y y -2 -2 -4 -4 -6 -6 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 x x
  22. 22. φ(i) = φ(x ) (i) (16) Φ Φw = Φ y T T (17) リプレゼンター定理 (Φ Φ + λI)w = Φ y T T (18)二次正則化付き誤差最小化問題において,損失関数が w T φ(i) の関数で表されるとき,その解 w は ˆ線形包 span{φ , · · · , φ } に存在する. (1) ,φ (2) (N )  (1)  y •  y (2)  カーネル法を理解するのに最も重要な定理   y= .  (19) •  .  ていうかこれが分かってればおk . (N ) y • 証明は案外簡単  2 (i)
  23. 23. i ˆ w = argmin {y (i) φ(x ≈)} 0 + w1 x −w y T (i) (i) w + λw 2 T w(i) リプレゼンター定理:証明 w i N ˆ w = argmin , w ) =w φ{y) + − w + w x( R(w0 1L(y , (i) (i) λw w T (i) T w 0 1 i i ˆ w = argmin R(w)Φで張られる空間に存在する= (14) w (w0 , w1 ) = argmin R(w0 , w1 ˆ ˆ全てのΦに直交する成分を持たない 0 ,w1 ) (w ˆ w = argmin R(w) + λw w T (15) wこう書けば,ξが0であ ˆ w= αi φ + ξ (i) (w0 , w1 ) = argmin R(w0 , w1 ) ˆ ˆることはほぼ自明 (16) (w0 ,w1 ) iξは第二項を増大させる一方で第一項に無影響  T  (1)  φ(1) ˆ φ argmin ·{y φM w φ(x w =1 (1) φ2 ·· (i) (1) T − (
  24. 24. (w0 , w1 ) = argmin R(w0 , w1 ) ˆ ˆ ( リプレゼンター定理 (w ,w ) 0 1 ˆ w= αi φ (i) +ξ ( i実は,特徴ベクトルΦの次元に関わらず,そ 2 ˆ w = argmin {y − w φ(x )} (i) T (i)の自由度はサンプル数Nしかない w i最適化問題を解く時,wについて解いてもいˆw = argmin (i) T (i) 2 {y − w φ(x )} + λw w Tいし,αについて解いてもいい w i
  25. 25. (w0 , w(w) ,w1 )argminR(w00,,w11 ) ˆ ˆ1 = ˆ ˆ (w0 , w1 )0 = argmin R(w w ) (12) (12) (w0 ,w1 ) (w0 ,w1 ) ˆ w= αi φ(i) +(i) , (j) T (i) (13) (j) T ˆ α= argmin L(y ξ αj φ φ )+λ αj φ φ(xφ α ˆ w= i カーネル関数 i j i α φ(i) + ξ αiiφ(i) + ξ (13) (13) j (i) i ˆ w = argmin w {y − wT φ(x(i) )}2 (14) y i ˆ w = argmin ˆ w (i) − wT φ(x(i) )}2 {y(i) − wT φ(x(i))}T {y (i) 2 (i) k(x ,iiT w x (j) ) = φ(xT ) φ(x (j) ) (15)ˆw = argmin {y(i) − w φ(x )} + λw w(i) 2 w i ˆˆ w = argmin w = argmin {y (i) − wT φ(x(i) )}22+ λwTT w (i) − wT φ(x(i) )} T λw w + (i) ˆ ˆ w w= w w = argmin argminwT φ(i) ) + λwT w φ ) + λw w L(y (i) , i L(y , w (i) T w w i i ˆ w = argmin R(w) (14) (j) T (i) T (i) (j) TT ˆ ˆ = argmin α = argmin (i) ˆ αjjφ (j) φ )+λ φ )+λ φ(i) α α α L(y (i),, L(y w w = argmin R(w) α φ αj φ (j) αj φ (16) ααi φ(i) i i j jj ii i T w j ˆ w = argmin R(w) + λw w (15) w ˆ ˆ = argmin α α = argmin L(y (i) ,, L(y (i) αjjk(x(i) ,,x(j) ))+λαTT Kα α k(x x ))+λα Kα (i) (j) ˆ ˆ0 ˆ iw = argmin R(w)(16) λw w (wα, w1 ) = argmin R(w0 , w1 ) α i (w ,w ) jj + T (17) 0 1 w  T  (i) (1) (i) T  φ(1) k(x(i) , φ1 ) = φ(x · ·)· φ(x (j) ) (1) ) (14) (j) (1) (i) T (j) k(x , x(j) ) = φ(x ) φ(x x φ2 φM (14)
  26. 26. (w0 ,w1 ) 0 1 0 1 jw0 , w1 ) = argmin R(w0w0 , w1) = argmin R(w0 , w1 )ˆ ˆ ( ,ˆw1 ) ˆ i (12) j αi (12) ˆ (w0= 1 ) αi φ w ,w (i) + (ξˆ0 , w1 ) = argmin 1 ) 0 , w1 ) w ˆ (13) (w0 ,w R(w (12) カーネル関数による書き換え, x ˆ α = argmin ˆ α = w L(y , α φ +ξ i αj k(x (13) (w0 ,w1 ) (i) (i) (i) (j) )) ˆ w = argmin {y (i) − w φ(x )} T ˆ w=2 (i) i i(i) i αi φ (13) +ξ j (13) 二次正則化 w i i が w T φ(i) ˆ {y ≈ 2 線形包 w = argmin y (i)(i) −TwT φ(x(i) )}(i) , x(j) ) spa (i)ˆ = argmin {y(i) − w φ(xαj)}2 (i) k(x ˆ = argmin w{y φ(x T φ(x(i) )}2 + λwT w (14) −w ) (i) T (i) 二次 w y ≈ w w w i i j がw w i ˆw =argmin {y (i) −− wT φ(x(i) )}λwTλwT w = w ˆ argmin {y w φ(x )} + + w (i) 2 (15) 線形 T (i) 2 ˆ w = argmin L(y (i) , wT φ(i) ) +iλwT w w (i) T w i w i (i) (j) k(x , x (j) ) = φ(x ) φ(x ) ˆ w = argmin R(w) ˆ w ˆ w argmin = ˆ α w = argmin ={y {y (14) argmin (i) (i) −− (16)(j)x(j) )}2TKαT Kα λw (i) (i) (i) , w T φ(i) ) + k(x L(y αiα k(x x , )}2 +λα+λα , i αw wj j ii i ˆ w = argmin R(w) + λw w(1)  T (15) (17) · · (j) k(x(1), x(N ))  k(x(i) , x(j)x(1) )exp(−β x(2)argmin ) (2) (14)  , x(2) ) (1) (1) k(x , ) = k(x (i) · 2 ˆ w = −x w R(w)  k(x(2) , x ) k(x(2) , x ) · · · k(x , x(N ) )   ˆ ˆ K= (w0 , w1 ) = argmin R(w0 , .w1 ) (16). w . φ(x) = {a  . exp(−b(x − z)2 )|z .∈. R} . . . . . (15)  .  (w0 ,w1 ) k(x(N ) , x(1) ) k(x(N ) , x(2) ) · · · ) k(x(N ) , x(N )T  T  ˆ = argmin R(w) +2λw w w(1)  (1) φ exp(−βφx(i) −x · φ1 (1) (1) 2 ·· (j) 2 )= φM (i) a exp(−b(x −z) )a T wT exp(−b(x (i) (j) (i) (j) (i
  27. 27. i j jˆα = argmin (i) L(y , (i) αj k(x , x (j) ))+λα Kα T α カーネル回帰 i j y (i) ≈ (i) αj k(x , x (j) ) (14) j (i) T• k(x , x ) = φ(x ) φ(x ) (i) (j) もはや学習も回帰も全てαとカーネル関数kで (15) (j) 行われる ˆ w = argmin L(y , w φ ) + λw w (i) T (i) T• w パラメータ数=サンプル数 i ˆ w = argmin R(w) (16)• Φの次元数をいくら増やしても動く w ˆ w = argmin R(w) + λwT w (17) w
  28. 28. (j) T (j) Tˆα = argmin L(y ,(i) αj φ φ )+λ (i) αj φ α カーネルトリック i j j (14) (i) T (i) k(x , x (j) ) = φ(x ) φ(x (j) ) (15) •w特徴ベクトルΦを用いてカーネル関数kを定義 ˆ = argmin w L(y , w φ ) + λw w (i) T (i) T i したが,もはやΦは出てこない • ˆ w = argmin R(w) 特徴ベクトルΦとはなんだったのか? w (16) • 特徴ベクトルΦなんてなかった. ˆ w = argmin R(w) + λw w T (17) • カーネル関数の値だけ定義すればいい w
  29. 29. i無限次元のカーネルトリック ˆ w = argmin {y − (i) αi k(x , x (i) (j) )} +λα Kα 2 T w (シュタゲのサブタイトルっぽい) i j (i) k(x , x (j) ) = exp(−β x (i) −x (j) ) (14)   k(xガウスカーネル (2) ) (1) , x(1) ) k(x(1) , x ··· k(x(1) , x(N ) )  k(x(2) , x(1) ) k(x(2) , x(2) ) ··· (N )  k(x , x )  (2)•  最もよく使われるカーネル . K=  . . . . . .. . . . .  • k(x , x ) k(x , x ) · · · k(x , (N ) 実は無限次元の特徴ベクトルΦを用いていること x (1) (N ) (2) (N ) (N ) ) と等価 (j) T (j) T ˆ α = argmin L(y , (i) αj φ φ )+λ (i) αj φ• α Φが無限次元だろうがなんだろうがパラメータ数 i j j i =サンプル数だから高々有限(正しい使い方) Kα ˆ α = argmin (i) L(y , αj k(x , x ))+λα (i) (j) T α i j
  30. 30. w i i w i が w T φ(i) の関数で ˆ w = argmin {y (i) − wT φ(x(i) )}2 + λwT w 線形包 span{φ(1) , φ w i ガウスカーネルk(x ˆ ˆ w = argmin w = argmin {y − {y − w α α k(x (i) (i) i i (i) )} +λα T (j) 2 (i), x (j) 2 ,x )} +λα T w i j i j Tˆw = argmin {y −(i) αi k(x , x(j) )}2 +λα Kα (i) yカーネル関数 i w k(x(i) , x(j) ) j (i) = exp(−β (i) x(i) − x(j) ) (j) (14 k(x , x (j) ) = exp(−β x ) −x 2 (14  (i) (1) (j) 2 k(x , x ) = exp(−β k(x − , x(1) )) k(x(1) , x(2) ) · · · k(x(1 (i) (j) x x (14) 2特徴ベクトル φ(x) =(2) exp(−b(x − z) (2) ∈ R}  k(x {ax(1) ) k(x(2) , x)|z) · · · k(x(2 (15  , φ(x) = {a exp(−b(x − z) )|z ∈ R} K= 2 (15) . . .. φ(x (  (i) . (j) 2. . . . −z)2 )a exp(−β x −x (i) ) =2 a exp(−b(x 2 (i)exp(−β x −x(i) (j) 2 ) = a exp(−b(x ) k(x(N ) , x(2) ) · · · k(x(N (N ) k(x , x (1) −z) )a exp(−b(x(j) −z) )dz  (16 y (i   (1) (1) , x(1) ) (i) k(x(1) , x(2) ) (i) · · ( k(x , x )ˆ = argmin ) L(y ,k(x α, x (j)) φ ·)+λ k(x (1) (1) k(xk(xx (2) α  (2) , (2) (1)· · · (1) (N ) TK=  •  k(x , x ) k(xk(xx ,) · ·) k(x , x ) ) · · · 関数=連続な特徴ベクトル,とみなせる. (2) (1) . K = .  α, (2) x i · k(xj (2) φ (2)  j (N ) (2) , x  k(x j α( x j . . .. ..  .  .  . . . . .. ..  .. • 内積は和ではなく積分 ˆ . k(x(N ) , x(1)α = argmin(2) )xL(y (i) k(x(N ) ,)xx(2) ) x(j) ))+λαT K ) k(xk(x(N ) , (1) ) , (N ) ,x · · · k(x(Nj k(x) ) , · · · k(x( α , (N (i) α i j
  31. 31. argmin {y − w φ(x )} + λw w w iˆw = argmingmin (i) いいから実際に解いてみる L(y , w α φ φ )+λ i α φ αφ {y (i)(j) T j − j αi k(x(i) , x(j) )}2 +λαT Kα (i) (j) T (i) j iα i j j i φ(gmin k(xL(y x, ) = k(x , x x − x αj exp(−β ))+λα Kα ) (14) (i) (i) (j) (i) T (j) , (i) (j)α i j  6  y ) k(x , x ) · · · k(x , x (i) (j) (1) (1) (1) (2) k(x , x ) (1) (N ) sample y (i) ≈ (2)αj k(x , x ) (2) (2)  k(x , x(1) ) k(x , x (14) · · · ) k(x(2) , x(N ) )  4  K= j . . .. 2 .   . . . . . . .  T 0 k(x(i) , x(j)(N ) φ(x(i) ) φ(x(j) ) ) (2) ) = (1) (15) y k(x , x ) k(x , x ) · · · (N -2 k(x(N ) , x(N ) )= argmin L(y (i) , wT φ(i) ) + λwT w -4 (j) T (j) Tˆα = argmin w i L(y , (i) αj φ -6 φ )+λ(i) αj φ αi φ(i) α -3 -2 -1 0 1 2 3 w = argmin R(w) j ˆ i (16) j i x wˆ w = argmin L(y (i) ,α =ˆargmin R(w) + λwT wαj k(x(17)x(j) ))+λαT Kα (i) , α w i j
  32. 32. カーネル回帰の結果 λ=0 λ=0.0000001 6 6 sample sample f(x) f(x) 4 4 2 2 0 0y y -2 -2 -4 -4 -6 -6 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 x x λ=0.0001 λ=1.0 6 6 sample sample f(x) f(x) 4 4 2 2 0 0y y -2 -2 -4 -4 -6 -6 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 x x
  33. 33. ˆ w= ˆ w= αi φ(i) + αi φ(i) + ξξ (13) (13) 二次正則化 ii が w T φ(i)演習:カーネル回帰の解 ˆ = argmin {y − w φ(x )} w = argmin ˆ {y − w φ(x )} (i) (i) T T (i) 2 (i) 2 線形包 spa w w i 二次正則化付 w i が w T φ(i) の ˆ w = argmin {y (i) − wTT (i) )}2 2 λwT w φ(x (i) + ˆ argmin i {y (i) − w φ(x )} + λw w = 以下で表される解を求めよ T w w 線形包 span{ w iˆα = argmin {y −(i) αi k(x , x )} +λα Kα (i) (j) 2 T αˆw = argmin i {y (i) − j αi k(x(i) , x(j) )}2 +λαT Kα w i j k(x , x ) = exp(−β x(i) − x(j) 2 ) (i) (j) (14)   φ(x) = {a exp(−b(x − z), x ∈ R} · · k(x , x ) k(x , x ) k(x )|z ) · (1) (1) (1) 2 (2) (1) (N ) (15)  k(x(2) , x(1) ) k(x(2) , x(2) ) · · · k(x(2) , x(N ) )   K =  (i) . (j) 2 . . .−z)2 )a exp(−b(x(j) 2 )dexp(−β x −x  . . . ) = a exp(−b(x . . (i) . . .  −z)  k(x(N ) , x(1) ) k(x(N ) , x(2) ) · · · k(x(N ) , x(N ) ) k(x(1) , x(1) ) k(x(1) , x(2) ) · · · k(x(1) , x(N ) )  (2) (1) (2) (2) T (2) (N ) T
  34. 34. φ(x ) =  x(i)  (i) (25 1b(x (j) 演習:カーネル回帰の解 −z) )dz 2  これもαに関する凸関数なのでy (i) ≈ w φ(x ) T (i) (26) ) )  微分して0でおk → φ(x(i) ) (i) (27 ) x   (K + λI)α = y (28N) ) (29T (i) αi φ i (30
  35. 35. 多項式カーネル (i) T (i) k(x , x (j) ) = (x (j) x + c) p (29) (30) (31)• 離散特徴で非常によく使われる (32)• 連続特徴でも使えて,多項式特徴ベクトルを 使っていることに相当 (33) (34)
  36. 36. 多項式カーネル例えばxが2次元で,p=2の二次多項式カーネル T k(x(i) , x(j) ) = (x(i) x(j) + c)p (29)を使ったとき k(x, y) = (x1 y1 + x2 y2 + c) 2 = x1 y1 + x2 y2 + c + 2x1 x2 y1 y2 + 2cx2 y2 + 2cx1 y1 2 2 2 2 2 = (x1 , x2 , x1 x2 , x1 , x2 , c)(y1 , y2 , y1 y2 , y1 , y2 , c) 2 2 2 2 T (30)2次以下の全ての多項式の項を連結した特徴ベクトルを用いていることになる (31) (32)さらに,計算量は大幅に小さい. (33)
  37. 37. (i) T (i) k(x , x (j) ) = (x x(j) + c)p (29)= (x1 y1 多項式カーネルでXOR + x y + c) 2 2 2= x2 y1 + 1 2 x2 y2 + c2 2 2 + 2x1 x2 y1 y2 + 2cx2 y2 + 2cx1 y1= 2 2 2 2 知的 (x1 , x2 , x1 x2 , x1 , x2 , c)(y1 , y2 , y1 y2 , y1 , y2 , c)T x= isTundere yes (30) isIntellectual (31) (32) no no (33) yes ツンデレ (34) 足し算では測れない魅力 識別平面が存在しない
  38. 38. (i) T (i) k(x , x (j) ) = (x x(j) + c)p (29) 知的ツンデレこそ至高(x, y) = (x1 y1 + x2 y2 + c)2 = x2 y1 + x2 y2 + c2 + 2x1 x2 y1 y2 + 2cx2 y2 + 2cx1 y1 2 2 1 2 = (x2 , x2 , x1 x2 , x1 , x2 , c)(y1 , y2 , y1 y2 , y1 , y2 , c)T 1 2 2 2 isTundere 知的 x= (30) isIntellectual  isTundere  yes x= isIntellectual  (31) isTundere · isIntellectual (32) (33) no no (34) yes ツンデレ (35) 知的 and ツンデレ
  39. 39. カーネル法まとめ• リプレゼンター定理により,二次正則化付き誤差 最小化の解wは特徴ベクトルの線形和で表される• てことはそもそもその線形和の重みαを学習すれば よくね?• 特徴ベクトル無限次元にしても高々推定するパラ メータは線形和の重みαだけだから大丈夫じゃね?• 特徴ベクトルは後付けでおk
  40. 40. 第二部 サポートベクターマシン• 識別問題• 回帰問題への帰着• 損失関数• サポートベクターマシン• サポートベクター
  41. 41. だいぶ疲れたよね• 僕も疲れました• ほんとはSVMも実装してドヤ顔したかったけ ど一晩ではカーネル回帰とこのスライドが限 界だった• 別にそんなに難しくないです• でも奥は深いです(予防線
  42. 42. 識別問題 x2• 要は⃝とXを識別する問題• 多クラス識別もあるけど今 回は二クラス識別だけ• 識別超平面(ちょうどクラ スの境目になるところ)を 求めるタスクとも言える x1
  43. 43. 回帰問題としての定式化 y (i) ≈w x T (i) (30 • 識別問題は回帰問題の一種として定式化でき ˆ る w = argmin {y (i) − w x } + λw w T (i) 2 T w i • ⃝を+1, Xを-1として目的変数とする (i) T (i) (j) ) = (x (j) + c) p (31 • k(x , x あとは単純に回帰 x y (i) ≈w x T (i) y (i) ∈ {−1, +1} (30) (32 y (i) ≈w x T (i) (30)argmin {y (i) − w x (i) + T (i) w T } (i) 2 λw 2 T ˆ w = argmin {y − w x } + λwT w w ik(x, y) w = i(x1 y1 + x2 y2 + c) 2 = T 1 y1 x 2 2 + 2 2 x2 y2 + c + 2x1 x2 y1 y2 + 2cx2 y 2
  44. 44. 回帰問題としての二値識別x2 x2 x1 x1 カーネルを使えば平面でない面での識別もできる
  45. 45. 回帰問題としての二値識別 1 -1 0 1 0x2 x2-1 x1 x1 カーネルを使えば平面でない面での識別もできる
  46. 46. 識別平面付近以外の影響x2 x2 x1 x1
  47. 47. 識別平面付近以外の影響 1 1 0 0x2 x2-1 -1 x1 x1
  48. 48. = x2 y1 + x2 y2 + c2 + 2x1 x2 y1 y2 + 2cx2 y2 + 2cx1 y1 1 2 2 2= (x2 , x2 , x1 x2 , x1 , x2 , c)(y1 , y2 , y1 y2 , y1 , y2 , c)T 1 2 2 2 x= isTundere isIntellectual 損失関数 (33)   二乗誤差だと,「十分識別されている」サンプルに isTunderex= isIntellectual  (34) 対しても大きなペナルティがかかってしまう isTundere · isIntellectual rsq (f (x), y) = (y − f (x))2 = (1 − yf (x))2 (35) (36) (37)
  49. 49.   isTunderex= isIntellectual  (34) サポートベクターマシン isTundere · isIntellectual二乗誤差の代わりにヒンジ関数を損失として用いる rsq (f (x), y) = (y − f (x)) 2 = (1 − yf (x)) 2のがサポートベクターマシンrhinge (f (x), y) = max{0, 1 − yf (x)} (35) (36) (37)
  50. 50. ヒンジ関数の効果x2 x2 x1 x1
  51. 51. ヒンジ関数の効果 1 1 0 0x2 x2-1 -1 x1 x1f(x)<-1, 1<f(x)のサンプルはあってもなくても同じ
  52. 52. 以上.• という感じなんだけど一応もうちょい書く
  53. 53. i ˆ w = argmin y) {y(y − f w φ(x )} rsq (f (x), = − (x)) (i) T2 (i) 2 y( w サポートベクター i = (1 − yf (x))2 x= rhinge (f (x), y) =− w T φ(x(i) )}2 + λw T w argmin {y (i) max{0, 1 − yf (x)} 要はあってもなくても同じじゃないサンプル w i f (x) = αi k(x, x(i) ) (35) 実際にカーネル法で計算してみると i non-zero (x φ (i) (j) T ) (i) (j) Targmin i = L(y , α (i) αj φ∈ SV )+λ (36) αj φ (i) αi φ α i 0 j (otherwise) j i となっており (j) (37)argmin (i) L(y , αj k(x , x (i) ))+λα Kα T α (38) (SV=サポートベクター) i j y (i) ≈ (i) αj k(x , x (j) ) (14) j SVだけ足せばOK (i) (j) (i) T (j)
  54. 54.   isTundere isTunderex =  x =isIntellectual isIntellectual  (33) (34) isTundere · isIntellectual  最適解の求め方 isTundere x =  (f (x), y) = (y − f (x))2  rsq isIntellectual (34) • isTundere= isIntellectual 詳細は省くけどポイントはヒンジ関数 · (1 − yf (x))2 • (f (x), y) = (y − f (x))rhinge r (f通常,場合分けが必要な関数の最適化は難しい sq (x), y) = max{0, 1 − yf (x)} 2 f (x) = αi k(x, x(i) ) = (1 − yf (x))2 (35)制約条件付き最適化問題として解く irhinge (f (x), y) = max{0, 1 − yf (x)} non-zero (x ∈ SV ) (i) αi = (36) 0 (otherwise) (35) ξi ≥ 0, ξi ≥ 1 − y (i) f (x(i) ) (37) (36) ˆ ˆ ξ, α = argmin ξi + λαT Kα (38) Lagrange multiplierで解ける ξ,α (37) i
  55. 55. サポートベクターマシンまとめ • 二値識別問題は+1と-1への回帰問題として考 えることができる • 二乗誤差ではどうでもいいところに引っ張ら れて識別平面がうまくできない • そこでヒンジ関数を損失関数として採用した のがサポートベクターマシン • サポートベクター以外のカーネル関数重みαが 0になるので計算量も小さくて済む

×