参考周老师《机器学习》
在前面两章里,我们都是假设样本在原始空间或者高维空间里线性可分,并且我们提到核函数的选择成为SVM的关键。即使我们找到了合适的核函数,也难断定是否是因过拟合造成的。
引入软间隔,允许一些样本不满足约束条件。在前面两章所介绍的都是硬间隔,即所有样本都必须满足约束条件。
优化目标为:
min12||w||2+C∑ni=1l0/1(yi(wTxi+b)−1)
其中
C>0
是一个常数,
l0/1
是”0-1损失函数“。
-
z<0
,
l0/1(z)=1
-
z≥0,l0/1=0
然而
l0/1
是非凸、非连续的,因此需要一些“替代损失”,它们是凸的连续的且是
l0/1
的上界。比如:hinge损失、指数损失、对率损失
用hinge损失代替优化目标里的0-1损失:
min12||w||2+C∑ni=1max(0,−(yi(wTxi+b)−1))
引入松弛变量
ξi≥0
,又可进一步重写为:
min12||w||2+C∑ni=1ξi
s.t.yi(wTxi+b)≥1−ξi
ξi≥0,i=1,2,...,n
通过拉格朗日乘子法可以得到对应的拉格朗日函数:
L(w,b,ξ)=12||w||2+C∑ni=1ξi+∑ni=1βi(−ξi)+∑ni=1αi(1−ξi−yi(wTxi+b))
其中
αi≥0,βi≥0
是拉格朗日乘子
∂L∂w=w−∑ni=1αiyixi=0
w=∑ni=1αiyixi
∂L∂b=∑ni=1−αiyi=0
∑ni=1αiyi=0
∂L∂ξi=C−βi−αi=0
C=βi+αi
带入上面的拉格朗日函数便得到软间隔支持向量机的对偶问题:
软间隔支持向量机的KKT条件:
-
∂L∂w=0,∂L∂b=0,∂L∂ξi=0
-
−ξi≤0,1−ξi−yi(wTxi+b)≤0
-
αi≥0,βi≥0
-
αi(1−ξi−yi(wTxi+b))=0,βi(−ξi)=0
最终的模型仍是:
f(x)=wTx+b=∑ni=1αiyixTix+b
根据KKT可知:
αi=0
对应的样本不对
f(x)
产生影响;当
αi>0
时,此时对应的样本是支持向量,如果
αi<C
,根据
C=αi+βi
,可知
βi>0
,那么
ξi=0
,则该样本在最大间隔边界上;如果
αi=C
,那么
βi=0
,如果
ξi≤1
,则样本落在最大间隔内部,若
ξi>1
,则样本被错误分类。
软间隔支持向量机的最终模型同样只与支持向量有关,通过hinge损失函数保持了解的稀疏性。