(斯坦福机器学习笔记)支持向量机

来源:互联网 发布:excel提取单元格数据 编辑:程序博客网 时间:2024/05/21 09:37

有了前4篇笔记中的对偶问题,拉格朗日函数,核方法的知识,就可以学习支持向量机的算法了。

首先要做一个改变写法的声明。y现在取{1,1}

对于一个线性可分的问题,用y=wTx+b作为分隔面,将两类样本分开。

定义函数间隔li=yi(wTxi+b)i表示学习样本的序号。

定义函数间距l=minili,即函数间距是离分隔面最近的样本到分隔面的间距

函数间隔和函数间距是不确定的,因为让wb成倍的增大或减小,分隔面的分类性质不变,但会使函数间隔和函数间距改变。因此要加入约束||w||=1

此时问题是maxw,bls.t.   yi(wTxi+b)l,且||w||=1。用语言表示即:让离分隔面最近的样本到分隔面的间距最大。注意:还记得之前的logistic回归中,所有样本点对决定分隔面的位置都做贡献。而在支持向量机中,决定分隔面的位置的点仅仅是离分隔面距离最近的点。

该问题不是凸优化问题,需要做处理。因为||w||=1,原问题变成:
maxw,bl||w||s.t.   yi(wTxi+b)l

可以用过调整wb,将l的值变为1,进而问题变成:
minw,b12||w||2    s.t.   yi(wTxi+b)1 i是学习样本的序列。这就是支持向量机的问题了。

要解该问题,构造拉格朗日函数L(w,b,a)=12||w||2i=1mai[yi(wTxi+b)1]

找该问题的对偶问题,令Lw=0Lb=0    wn=i=1maiyixini=1maiyi=0

将上面两个式子带入L(w,b,a),得到对偶问题
maxai=1mai12i=1mj=1maiajyiyj<xj,xi>           s.t.  a0i=1maiyi=0
其中<a,b>表示ab的内积。在这里可以用核方法,就是用核函数K(x,z)替代内积。

因为x,y是已知的,得到了a就得到了w。而b的公式是

b=maxi:yi=1(w)Txi+mini:yi=1(w)Txi2

可以用牛顿法,梯度下降法求解a,也可以用更快的方法SMO。该问题是凸优化问题,可以保证得到最优解。

=============================软间隔分类器===========================
以上讨论的是线性可分问题。即便是运用了核方法,也不能保证问题一定是线性可分的。所以要将原问题做改动。问题变成:
minw,b12||w||2+Ci=1mϵi    s.t.   yi(wTxi+b)1ϵi     ϵi0

他的对偶问题是:
maxai=1mai12i=1mj=1maiajyiyj<xj,xi>           s.t.  Ca0i=1maiyi=0

=======================================SMO==========================
待续

0 0
原创粉丝点击