李航《统计学习方法》SMO算法推导中的思考

1. p.128

李航《统计学习方法》SMO算法推导中的思考_第1张图片
图中,从上式到下式的推导不是很明了,困惑在于上式中右边含有 α1,α2 α 1 , α 2 这样岂不是和左边的 α2 α 2 相消?若能相消,上述求偏导的过程中岂不是忽略了 v1,v2 v 1 , v 2 α1,α2 α 1 , α 2 的函数?答案并非如此,左边的 α α 与右边的 α2 α 2 相当不同。

2. 定理7.6的证明

即求最优化问题:

minα1,α2W(α1,α2)=12K11α21+12K22α22+y1y2K21α1α2(α1+α2)+y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2s.t.α1y1+α2y2=i=3Nyiαi=ς(1)0αiC,i=1,2(2) min α 1 , α 2 W ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 2 2 α 2 2 + y 1 y 2 K 21 α 1 α 2 − ( α 1 + α 2 ) + y 1 α 1 ∑ i = 3 N y i α i K i 1 + y 2 α 2 ∑ i = 3 N y i α i K i 2 s . t . α 1 y 1 + α 2 y 2 = − ∑ i = 3 N y i α i = ς ( 1 ) 0 ≤ α i ≤ C , i = 1 , 2 ( 2 )

沿着约束方向未经剪辑的解为:
αnew,unc2=αold2+y2(E1E2)η α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) η

其中,
η=K11+K222K21=Φ(x1)Φ(x2)2Ei=g(xi)yi,i=1,2g(x)=i=1NαiyiK(xi,x)+b η = K 11 + K 22 − 2 K 21 = ‖ Φ ( x 1 ) − Φ ( x 2 ) ‖ 2 E i = g ( x i ) − y i , i = 1 , 2 g ( x ) = ∑ i = 1 N α i y i K ( x i , x ) + b

Ei E i 为函数 g(xi) g ( x i ) 对输入 xi x i 的预测值与真实输出 yi y i 之间的差.

证明:

引入记号变量 vi=j=3NαjyjK(xi,xj)=g(xi)j=12αjyjK(xi,xj)b,i=1,2 v i = ∑ j = 3 N α j y j K ( x i , x j ) = g ( x i ) − ∑ j = 1 2 α j y j K ( x i , x j ) − b , i = 1 , 2
再由 α1y1+α2y2=ς α 1 y 1 + α 2 y 2 = ς y2i=1 y i 2 = 1 可将目标函数 W(α1,α2) W ( α 1 , α 2 ) 表示成只含 α2 α 2 的函数:

W(α2)=12K11(ςα2y2)2+12K22α22+y2K21(ςα2y2)α2(ςα2y2)y1α2+v1(ςα2y2)+y2v2α2 W ( α 2 ) = 1 2 K 11 ( ς − α 2 y 2 ) 2 + 1 2 K 22 α 2 2 + y 2 K 21 ( ς − α 2 y 2 ) α 2 − ( ς − α 2 y 2 ) y 1 − α 2 + v 1 ( ς − α 2 y 2 ) + y 2 v 2 α 2

α2 α 2 求偏导可得:
Wα2=K11α2+K22α22K21α2K11ςy2+K21ςy2+y1y21v1y2+v2y2 ∂ W ∂ α 2 = K 11 α 2 + K 22 α 2 − 2 K 21 α 2 − K 11 ς y 2 + K 21 ς y 2 + y 1 y 2 − 1 − v 1 y 2 + v 2 y 2

令其等于0,即可求出上述问题的最优解,得到:
(K11+K222K21)α2=y2(y2y1+ςK11ςK21+v1v2)(21) ( K 11 + K 22 − 2 K 21 ) α 2 = y 2 ( y 2 − y 1 + ς K 11 − ς K 21 + v 1 − v 2 ) ( 2 − 1 )

这里,不同与书上,我先求 v1v2 v 1 − v 2 ,
vi v i 的定义可知 v1v2 v 1 − v 2 为:
v1v2=g(x1)j=12yjαjK1jbg(x2)j=12yjαjK2jb=g(x1)g(x2)+y1α1K21y1α1K11+y2α2K22y2α2K21α1y1+α2y2=ς,y21=1α1=(ςy2α2)y1,=g(x1)g(x2)+(ςy2α2)K21(ςy2α2)K11y2α2K21+y2α2K22=g(x1)g(x2)+ςK21ςK11+y2α2(K11+K222K21) v 1 − v 2 = ⟮ g ( x 1 ) − ∑ j = 1 2 y j α j K 1 j − b ⟯ − ⟮ g ( x 2 ) − ∑ j = 1 2 y j α j K 2 j − b ⟯ = g ( x 1 ) − g ( x 2 ) + y 1 α 1 K 21 − y 1 α 1 K 11 + y 2 α 2 K 22 − y 2 α 2 K 21 ∵ α 1 y 1 + α 2 y 2 = ς , y 1 2 = 1 ∴ α 1 = ( ς − y 2 α 2 ) y 1 , 代 入 得 , = g ( x 1 ) − g ( x 2 ) + ( ς − y 2 α 2 ) K 21 − ( ς − y 2 α 2 ) K 11 − y 2 α 2 K 21 + y 2 α 2 K 22 = g ( x 1 ) − g ( x 2 ) + ς K 21 − ς K 11 + y 2 α 2 ( K 11 + K 22 − 2 K 21 )

值得注意的是, v1v2 v 1 − v 2 中的 α1,α2 α 1 , α 2 是没有更新前的 α α ,即 αold α o l d
v1v2=g(x1)g(x2)+ςK21ςK11+y2αold2(K11+K222K21) ∴ v 1 − v 2 = g ( x 1 ) − g ( x 2 ) + ς K 21 − ς K 11 + y 2 α 2 o l d ( K 11 + K 22 − 2 K 21 )
将上式代入到式(2-1)中即可求得
αnew,unc2=αold2+y2(E1E2)η α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) η

你可能感兴趣的:(MachineLearning)