软间隔问题(soft-margin)
软间隔是相对于硬间隔定义的。上节中介绍的线性可分的SVM算法,属于硬间隔。硬间隔,就是存在所有样本必须划分正确的约束条件,即所有样本必须严格满足:
yi(wTxi+b)≥1i=1,2,⋯,N
所以从这个角度分析,上篇介绍的算法,是在硬间隔定义的基础之上推导的。而相对于软间隔,则是允许某些样本不满足约束条件
yi(wTxi+b)≥1i=1,2,⋯,N
之所以如此定义,是因为在样本集中总是存在一些噪音点或者离群点,如果强制要求所有的样本点都满足硬间隔,可能会导致出现过拟合的问题,甚至会使决策边界发生变化,为了避免这个问题的发生,所以在训练过程的模型中,允许部分样本(离群点或者噪音点)不必满足该约束。当然在最大化间隔的同时,不满足约束的样本应尽可能少
软间隔优化目标函数
针对软间隔问题,我们引入了以下的优化目标函数:
w,bmin21∣∣w∣∣2+Ci=1∑ml0/1(yi(wTxi+b)−1)
其中C>0是一个常数,l0/1是"0/1损失函数"
l0/1(z){1,if z<0;0,otherwise.
从上式分析:
当C为无穷大时,为了保证目标函数取得最小值,需要要求l0/1=0即,所有样本严格满足硬间隔约束条件;
当C取有限值时,允许部分样本不满足约束条件。
由于l0/1非凸、非连续的数学特性,导致目标函数
w,bmin21∣∣w∣∣2+Ci=1∑ml0/1(yi(wTxi+b)−1)
不易求解,所以一般会采用以下的"替代损失"函数来进行替代:
- hinge损失:lhinge(z)=max(0,1−z)
- 指数损失:lexp(z)=exp(−z)
- 对率损失:llog(z)=log(1+exp(−z))
一般这些函数通常都是凸、连续且是l0/1的上界的函数。例如:
采用hinge函数:
w,bmin21∣∣w∣∣2+Ci=1∑Nmax(0,1−yi(wTxi+b))
忽略各种替代损失函数,引入“松弛因子”,故上式可重写为:
w,b,ξimin21∣∣w∣∣2+Ci=1∑Nξi
其中约束条件为:
{yi(wTxi+b)≥1−ξiξi≥0, i=1,2,⋯,N
该式就是常用的“软间隔支持向量机”
用拉格朗日乘子法进行求解:
L(w,b,a,ξ,μ)=21∣∣w∣∣2+Ci=1∑Nξi+i=1∑Nai(1−ξi−yi(wTxi+b))−i=1∑Nμiξi
其中ai≥0,μi≥0
令L(w,b,a,ξ,μ)对w,b,ξ的偏导为0,可得:
w=i=1∑Naiyixi
i=1∑Naiyi=0
C=ai+μi
代入原式可得:
amaxi=1∑Nai−21i=1∑Nj=1∑NaiajyiyjxiTxj
或者
amax −21i=1∑Nj=1∑Naiajyiyj⟨xi⋅xj⟩+i=1∑Nai
其中约束条件为:
{∑i=1Naiyi=00≤ai≤C,i=1,2,⋯,N
和之前的结果对比一下,可以看到唯一的区别就是现在拉格朗日乘子a多了一个上限C。而 Kernel 化的非线性形式也是一样的,只要把⟨xi,xj⟩ 换成 κ⟨xi,xj⟩ 即可(此部分内容在核函数部分介绍)。
最终的求解过程类似于上一篇,通过样本确定参数,求得:
a∗=(a1∗,a2∗,⋯,aN∗)T
然后计算
w∗=i=1∑Nai∗yixi
选取a∗的一个满足0≤ai≤C的分量ai∗计算:
b∗=yj−i=1∑Nai∗yi⟨xi⋅xj⟩
对任一适合条件都可求得一个b∗,但是由于原始问题对b的求解并不唯一,所以实际计算时可以取在所有符合条件的样本点上的平均值。
支持向量(此部分内容也可参考西瓜书)
再现性不可分的情况下,将对偶问题的解中对应于ai∗>0的样本点(xi,yi)的实例xi称为支持向量(软间隔的支持向量)。如图所示,这时的支持向量要比线性可分时的情况复杂一些。
图中,分离超平面由实线表示,间隔边界由虚线表示。正例点由“”表示,负例点由“×”表示。图中还标出了实例xi到间隔边界的距离∣∣w∣∣ξi
软间隔的支持向量xi要么在间隔边界上,要么在间隔边界与分离超平面之间,要么在分离超平面误分类一侧。
若ai∗<C,则ξi=0,支持向量恰好落在间隔边界上;
若ai∗=C,0<ξi<1,则分类正确,xi在间隔边界与分离超平面之间;
若ai∗=C,ξi=1,则xi在分隔超平面上;
若ai∗=C,ξi>1,则xi位于分离超平面误分一侧。
参考文献:
机器学习 周志华著
机器学习算法系列(12):SVM(2)—线性支持向量机
打开App,阅读手记