有了前4篇笔记中的对偶问题,拉格朗日函数,核方法的知识,就可以学习支持向量机的算法了。
首先要做一个改变写法的声明。
y
现在取
对于一个线性可分的问题,用 y=wTx+b 作为分隔面,将两类样本分开。
定义函数间隔 li=yi(wTxi+b) , i 表示学习样本的序号。
定义函数间距
函数间隔和函数间距是不确定的,因为让
w
和
此时问题是 maxw,bl , s.t. yi(wTxi+b)≥l ,且 ||w||=1 。用语言表示即:让离分隔面最近的样本到分隔面的间距最大。注意:还记得之前的logistic回归中,所有样本点对决定分隔面的位置都做贡献。而在支持向量机中,决定分隔面的位置的点仅仅是离分隔面距离最近的点。
该问题不是凸优化问题,需要做处理。因为
||w||=1
,原问题变成:
maxw,bl||w||
,
s.t. yi(wTxi+b)≥l
可以用过调整
w
和
要解该问题,构造拉格朗日函数
找该问题的对偶问题,令 ∂L∂w=0 和 ∂L∂b=0 得 wn=∑i=1maiyixin , ∑i=1maiyi=0
将上面两个式子带入
L(w,b,a)
,得到对偶问题
maxa∑i=1mai−12∑i=1m∑j=1maiajyiyj<xj,xi> s.t. a≥0,∑i=1maiyi=0
其中
<a,b>
<script type="math/tex" id="MathJax-Element-15745">
</script>表示
a
和
因为
x,y
是已知的,得到了
a
就得到了
可以用牛顿法,梯度下降法求解 a ,也可以用更快的方法SMO。该问题是凸优化问题,可以保证得到最优解。
=============================软间隔分类器===========================
以上讨论的是线性可分问题。即便是运用了核方法,也不能保证问题一定是线性可分的。所以要将原问题做改动。问题变成:
他的对偶问题是:
maxa∑i=1mai−12∑i=1m∑j=1maiajyiyj<xj,xi> s.t. C≥a≥0,∑i=1maiyi=0
=======================================SMO==========================
待续