您的位置:首页 > 其它

关于SVM中SMO算法第一个向量选择的问题

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

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

其中g(xi)=∑Nj=1αjyjK(xi,xj)+b,其实就是g(xi)=w⋅xi+b

看到这三个公式真是一头雾水啊,跟我看的KKT条件不一样,因为至少应该涉及到 ξ 啊。该书中给的KKT条件中有αiyig(xi)=0且yig(xi)≥1。但是上述第三个式子竟然出现yig(xi)≤1。一开始真是百思不得其解啊。后来经过仔细研究才发现,得利用该书110页提到的一个公式

C−αi−μi=0(4) 该式子是非常重要的(μi是松弛变量ξi对应的拉格朗日乘子)。现在来重新分析上述公式(1)-(3)是怎么得到的。

如果αi=0,那么由公式(4)可得μi=C,由KKT条件μiξi=0可知,ξi=0。又由KKT条件可知αi[yig(xi)−(1−ξi)]=0 且 yig(xi)≥1−ξi,因为ξi=0,所以就变成αi[yig(xi)−1]=0,又因为αi=0,所以yig(xi)≥1,因此就得到了公式(1)。

同理可得第二个公式。因为0<αi<C,所以由公式(4)可知μi≥0,因此同样得到ξi=0,又因为αi≥0,若要使KKT条件成立,只能yig(xi)−(1−ξi)=0,因此yig(xi)=(1−ξi),进而根据ξi=0,有yig(xi)=1,这样就得到了公式(2)。

关于公式(3),因为αi=C,由公式(4)可知μi=0,由KKT条件μiξi=0可知,ξi≥0。因为0<αi<C,所有约束条件只能等于0,即yig(xi)−(1−ξi)=0,也即yig(xi)=(1−ξi)。因为ξi≥0,所以yig(xi)=(1−ξi)≤1,得到公式(3)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  svm 统计学 李航 SMO-KKT