smo第一变量选择方法

李航编写的《统计学习方法》一书中第128页时,涉及到SMO算法中第一个变量的选择,然后作者指出选择不满足KKT条件的变量作为第一个变量,然后突然给出了如下三个KKT条件: 

αi=0yig(xi)1(1)αi=0⇔yig(xi)≥1(1)
0<αi<Cyig(xi)=1(2)0<αi<C⇔yig(xi)=1(2)
αi=Cyig(xi)1(3)αi=C⇔yig(xi)≤1(3)

其中 g(xi)=Nj=1αjyjK(xi,xj)+bg(xi)=∑j=1NαjyjK(xi,xj)+b ,其实就是 g(xi)=wxi+bg(xi)=w⋅xi+b  
看到这三个公式真是一头雾水啊,跟我看的KKT条件不一样,因为至少应该涉及到  ξξ  啊。该书中给的KKT条件中有 αiyig(xi)=0αiyig(xi)=0 yig(xi)1yig(xi)≥1 。但是上述第三个式子竟然出现 yig(xi)1yig(xi)≤1 。一开始真是百思不得其解啊。后来经过仔细研究才发现,得利用该书110页提到的一个公式 
Cαiμi=0(4)C−αi−μi=0(4)
该式子是非常重要的( μiμi 是松弛变量 ξiξi 对应的拉格朗日乘子)。现在来重新分析上述公式(1)-(3)是怎么得到的。 
如果 αi=0αi=0 ,那么由公式(4)可得 μi=Cμi=C ,由KKT条件 μiξi=0μiξi=0 可知, ξi=0ξi=0 。又由KKT条件可知 αi[yig(xi)(1ξi)]=0αi[yig(xi)−(1−ξi)]=0  且  yig(xi)1ξiyig(xi)≥1−ξi ,因为 ξi=0ξi=0 ,所以就变成 αi[yig(xi)1]=0αi[yig(xi)−1]=0 ,又因为 αi=0αi=0 ,所以 yig(xi)1yig(xi)≥1 ,因此就得到了公式(1)。 
同理可得第二个公式。因为 0<αi<C0<αi<C ,所以由公式(4)可知 μi0μi≥0 ,因此同样得到 ξi=0ξi=0 ,又因为 αi0αi≥0 ,若要使KKT条件成立,只能 yig(xi)(1ξi)=0yig(xi)−(1−ξi)=0 ,因此 yig(xi)=(1ξi)yig(xi)=(1−ξi) ,进而根据 ξi=0ξi=0 ,有 yig(xi)=1yig(xi)=1 ,这样就得到了公式(2)。 
关于公式(3),因为 αi=Cαi=C ,由公式(4)可知 μi=0μi=0 ,由KKT条件 μiξi=0μiξi=0 可知, ξi0ξi≥0 。因为 0<αi<C0<αi<C ,所有约束条件只能等于0,即 yig(xi)(1ξi)=0yig(xi)−(1−ξi)=0 ,也即 yig(xi)=(1ξi)yig(xi)=(1−ξi) 。因为 ξi0ξi≥0 ,所以 yig(xi)=(1ξi)1

yig(xi)=(1−ξi)≤1,得到公式(3)

原创:https://blog.csdn.net/wjj5881005/article/details/52371279

猜你喜欢

转载自blog.csdn.net/qq_32763149/article/details/81056470
smo