关于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)。
α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)。
相关文章推荐
- [算法思考]关于2-sat判定求解中“同一组内必须选择”问题的思考
- 关于DNS转发时地址选择算法的问题
- 关于“语句”和“算法”的选择问题
- 关于利用STL中的sort算法对向量等容器进行排序的问题
- 贪心算法设计 关于区间选择问题
- 选择问题的线性期望时间算法
- 关于C# winform treeview 的两个问题(点击空白处的时间响应和复选框选择问题)
- 关于GridView中选择当前行的问题。
- 关于TableMappings.Add第一个参数的问题
- 关于CheckBoxList中的元素,编程设置多重选择的问题。
- 关于自动白平衡的算法问题
- 关于傻子坐飞机问题的答案 (算法的改进)
- 几个常见的关于日期的问题 选择自 baobao8505 的 Blog
- 关于《射雕英雄传》的数学算法问题 JAVA实现
- 关于算法的时间复杂度问题的思考
- 关于游戏开发中的A*/A-star的寻路算法的问题
- 关于傻子坐飞机问题的答案 (算法的改进)
- 关于dao得一些使用问题,以备忘....也用来纪念自己解决得第一个内存泄漏问题
- [梦里原创]关于猫和老鼠的问题(程序算法)
- 分析邹健大哥的算法,终于问题解决了!!!(关于统计两日期间工作日)