Loading [MathJax]/jax/output/HTML-CSS/jax.js

2017年8月28日月曜日

MIT OCW, Machine Learning 09日目 カーネル化SVM

Rohit Singh, Tommi Jaakkola, and Ali Mohammad. 6.867 Machine Learning. Fall 2006. Massachusetts Institute of Technology: MIT OpenCourseWare, https://ocw.mit.edu. License: Creative Commons BY-NC-SA.

Lecture 8

Support Vector Machine Revisited

SVMをdual form(exampleが内積でのみ現れる形)に変換する. すべてのexampleをϕd次元のfeature spaceに写し,{ϕ(xt,yt)}nt=1が線形分離可能であるようにし,feature spaceにおいてmarginを最大化するパラメータを考える.この問題は
minimize θ2/2 subject to yt(θTϕ(xt)+θ0)1,t=1,...,n   (1)
という最適化問題に一致する. もちろんslack variableも導入できるが,これは後に回す. このような最適化問題(凸,線形制約)は,Lagrange multipliersによってdual formに変形できる. αt0を導入し,α={α1,...,αn}によって
J(θ,θ0;α)=θ2/2nt=1αt[yt(θTϕ(xt)+θ0)1]
αによって最大化することを考えるのである.J(θ,θ0)=maxα0J(θ,θ0,α)の最小化が(1)に一致することを示す.
θ,θ0を少なくとも1つの束縛条件が満たされていないように設定する.yi(θTϕ(xi)+θ0)<1であるとすると任意のαi>0αi[yi(θTϕ(xi)+θ0)1]>0.αi=とすればJ(θ,θ0)=.だから,Lagrange multiplier αは制約条件を満たさせる働きがあるとわかる.
Slater conditionsという条件を満たしているとき,ある変数で最大化し,他の変数で最小化するというLagrange multipliersの最適化問題の最大化最小化の順序を交換できる.つまり
minθ,θ0maxα0J(θ,θ0;α)=maxα0minθ,θ0J(θ,θ0,α)
である. 左辺をprimal formといい,右辺をdual formという. dual formについて,まずminθ,θ0Jを解く.微分して
ddθ0J=nt=1αtyt=0ddθJ=θnt=1αtytϕ(xt)=0
またしても,最適なθ{ϕ(xt)}tの張る空間の元となった.これらをもとの式に代入して,
J(α)=minθ,θ0J(θ,θ0,α)={tαt(1/2)ijαiαjyiyj[ϕ(xi)Tϕ(xj)], if tαtyt=0otherwise
よって,dual formの解は
maximize tαt(1/2)ijαiαjyiyj[ϕ(xi)Tϕ(xj)]subject to αt0,tαtyt=0
の解である. これがSVMのdual formとかkernel formといい,quadratic optimization problemであり,Gram matrix K=(ki,j)=(ϕ(xi)Tϕ(xj))によって,特徴づけられる.
maximum margin hyperplaneはsupport vectorと呼ばれる少数のexampleによって決まることをすでに見たが,これはϕによって写像されたexampleたちにも同様で,ほとんどのˆαt0になり,^αt>0なるとき,xtϕ(xt)をまたsupport vectorという.
ˆαtが決まると,SVをsupport vectorの集合として,
ˆy(x)=ˆθTϕ(x)+^θ0=t^αtyt[ϕ(xt)Tϕ(x)]+^θ0=tSV^αtyt[ϕ(xt)Tϕ(x)]+^θ0
によって新しいexample xの推測ˆy(x)が計算できる.
^θ0ˆαを求めた後で,
iSV. yi(ˆθTϕ(xi)+^θ0)=yitSV^αt[ϕ(xt)Tϕ(xi)]+yi^θ0=1
を解くことで得られる.
この解のgeometric marginは1/ˆθ0で得られる.つまり
^γgeom=(ni=1nj=1^αi^αjyiyjK(i,j))12

geometric marginを最大にするようなkernelが最適なkernelと言えるが,定数倍によってgeometric marginもその分定数倍になるので,kernelの比較には正規化が必要である.

Kernel Optimization

kernelのあるパラメータを変えて,問題により適したkernelをつくることができる. パラメータの最適化には,cross-validationやgeneralization errorに関連した基準(marginなど)が用いられる.

0 件のコメント:

コメントを投稿