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

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

αi=0yig(xi)1(1)
0<αi<Cyig(xi)=1(2)
αi=Cyig(xi)1(3)

其中 g(xi)=Nj=1αjyjK(xi,xj)+b ,其实就是 g(xi)=wxi+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)可知 μi0 ,因此同样得到 ξi=0 ,又因为 αi0 ,若要使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 可知, ξi0 。因为 0<αi<C ,所有约束条件只能等于0,即 yig(xi)(1ξi)=0 ,也即 yig(xi)=(1ξi) 。因为 ξi0 ,所以 yig(xi)=(1ξi)1 ,得到公式(3)。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值