经过前面几篇文章的介绍,我们知道了支持向量机背后的原理。同时,为了求解SVM中的目标函数,我们还在前面两篇文章中陆续介绍了拉格朗日乘数法和对偶性问题。接下来,在这篇文章中将开始正式介绍SVM的求解过程。
1 构造广义拉格朗日函数L(w,b,α)
由 前文可知SVM最终的优化目标为:
w,bmin21∣∣w∣∣2s.t.y(i)(wTx(i)+b)≥1,i=1,2,...m(1)
由此我们可以得到广义的拉格朗日函 数为:
L(w,b,α)=21∣∣w∣∣2−i=1∑mαi[y(i)(wTx(i)+b)−1](2)
且同时记:
gi(w)=−y(i)(wTx(i)+b)+1≤0(3)
由对偶性:
d∗=α,αi≥0maxw,bminL(w,b,α)=w,bminα,αi≥0maxL(w,b,α)=p∗(4)
可知,对偶问题d∗与原始问题p∗同解需满足KKT条件:
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧αi≥0;gi(w,b)≤0;αigi(w,b)=0(5)
于是,对于任意训练样本(x(i),y(i)),总有αi=0或者αigi(w,b)=0。若αi=0,由下面式子(6)中w的解析式可知,超平面为0x+b=0,这就意味着αi=0所对应的样本点与决策面无关;若αi>0,由式子(3)(5)可知则必有y(i)(wTx(i)+b)=1,也就是说该样本点是一个支持向量。这显示出一个重要性质:超平面仅仅与支持向量有关。
2 关于参数w,b,求L的极小值W(α)
这一步同拉格朗日乘数法求极值一样,分别对w,b求偏导,并令其为0:
∂w∂Lw∂b∂L=w−i=1∑mαiy(i)x(i)=0;=i=1∑mαiy(i)x(i)=i=1∑mαiy(i)=0(6)
在此,我们便得到了权重w的解析表达式,而它对于理解SVM中核函数的利用有着重要作用。接着将(6)代入(2)可得:
W(α)=w,bminL(w,b,α)=i=1∑mαi−21i,j=1∑my(i)y(j)αiαj(x(i))Tx(j)(7)
详细步骤:
L=21wTw−i=1∑mαi[y(i)(wTx(i)+b)−1]=21wTw−i=1∑mαiy(i)wTx(i)−i=1∑mαiy(i)b+i=1∑mαi=21wTw−wTi=1∑mαiy(i)x(i)−bi=1∑mαiy(i)+i=1∑mαi(8)
将(6)代入(8)得
W(α)=21wTw−wTw+i=1∑mαi=i=1∑mαi−21wTw=i=1∑mαi−21i,j=1∑mαiαjy(i)y(j)(x(i))Tx(j)(9)
其中:
wTw=i=1∑mαiy(i)x(i)⋅j=1∑mαjy(j)x(j)=i,j=1∑mαiαjy(i)y(j)(x(i))Tx(j)=i=1∑mj=1∑mαiαjy(i)y(j)(x(i))Tx(j)(10)
3 求W(α)的极大值
由式子(7)我们可以得出如下优化问题:
αmaxs.t.W(α)=i=1∑mαi−21i,j=1∑my(i)y(j)αiαj(x(i))Tx(j)αi≥0,i=1,...,mi=1∑mαiy(i)=0(11)
之所以式子(6)中的最后一个也会成为约束条件,是因为W(α)就是通过(6)求解出来的,是W(α)存在的前提。
现在我们的优化问题变成了如上的形式。对于这个问题,我们有更高效的优化算法,即序列最小优化(SMO)算法。我们通过这个优化算法能得到α,然后再将α代入式子(6)我们就可以求解出w,b,进而求得我们最初的目的:找到超平面,即”决策平面”。
4 求解参数b
在求解出α之后,代入(6)即可求解得到w;而b的求解公式为:
b=−21(i:y(i)=−1maxwTx(i)+i:y(i)=+1minwTx(i))(12)
这个公式怎么来的呢?由式子(5)可知,正负样本支持向量所在的直线为y(i)(wTx(i)+b)=1,即:
对于正样本支持向量来说有:
wTx(+)+b=1(13)
对于负样本支持向量来说有:
wTx(−)+b=−1(14)
因此由(13)(14)可得:
b=−21(wTx(+)+wTx(−))(15)
不过这看起来似乎和(12)还有一点点差距,原因在哪儿呢?在前面的文章我们说到可以用∣wTx+b∣(函数间隔)来衡量样本点到超平面的远近程度,由于大家的截距b都是一样,所以我们同样可以用∣wTx∣来作为标准。因此对于正样本来说,离超平面最近的支持向量就应该是min(wTx)(因为此时wTx>0,所以选择最小的);而对于负样本来说,离超平面最近的支持向量就应该是max(wTx)(因为此时wTx<0,所以选择最大的)。由此,我们便能得到截距b的计算公式。
例如:

如图,红色为正样本(y=+1),紫色为负样本(y=−1),直线为x1+x2−b=0,则有:
i:y(i)=−1maxwTx(i)=max(1∗2+1∗3,1∗1+1∗2)=5i:y(i)=+1minwTx(i)=min(1∗5+1∗4,1∗6+1∗3)=9b=−21(5+9)=−7
5 总结
在这篇文章中,笔者首先介绍了在求解SVM模型中如何构造广义的拉格朗日函数以及其对应的对偶问题;接着我们通过求解对偶问题中L(w,b,α)的极小值得到了w的计算解析式(6),需要提醒的是w的表达式也是理解SVM核函数的关键;最后我们同样还得到了截距b的计算解析式。同时,这也是关于SVM内容的最后一篇文章,当然还是有很多地方没有介绍到例如α,w的求解过程等。其原因在于对于最后部分的求解内容笔者自己确实也没弄明白,所以就不再此处献丑了。感兴趣的朋友可以自己检索相关资料进行学习。本次内容就到此结束,感谢阅读!
若有任何疑问与见解,请发邮件至[email protected]并附上文章链接,青山不改,绿水长流,月来客栈见!
引用
[1]《统计机器学习(第二版)》李航,公众号回复“统计学习方法”即可获得电子版与讲义
[2] Andrew Ng. CS229. Note3 http://cs229.stanford.edu/notes/cs229-notes3.pdf
[3] Deriving the optimal value for the intercept term in SVM https://stats.stackexchange.com/questions/91269/deriving-the-optimal-value-for-the-intercept-term-in-svm
推荐阅读
[1]原来这就是支持向量机
[2]从另一个角度理解支持向量机
[3]SVM之sklearn建模与线性不可分
[4]SVM之软间隔最大化