软间隔
在建立SVM模型时,假定正负样本是线性可分的。但是,实际有些时候,样本不是完全线性可分的,会出现交错的情况,例如下图。
这时,如果采用以下模型
minw,b{ 12∥w∥22},subject toyi(wTxi+b)≥1 m i n w , b { 1 2 ‖ w ‖ 2 2 } , s u b j e c t t o y i ( w T x i + b ) ≥ 1
可能就没有可行解。针对这种情况,允许某些样本不满足约束 yi(wTxi+b)≥1 y i ( w T x i + b ) ≥ 1 , 但是在最大化间隔的同时,不满足约束的样本应尽可能少,优化目标可以写为:
minw,b12∥w∥2+C∑mi=1l0/1(yi(wTxi+b)−1)(4-1) (4-1) m i n w , b 1 2 ‖ w ‖ 2 + C ∑ i = 1 m l 0 / 1 ( y i ( w T x i + b ) − 1 )
其中 l0/1 l 0 / 1 是0/1损失函数,
从(4-1)可以看到,当C为无穷大时,所有样本必须满足约束 yi(wTxi+b)≥1 y i ( w T x i + b ) ≥ 1 才可行。当C取有限值时,允许一些样本不满足约束。
l0/1 l 0 / 1 非凸非连续,数学性质不好,因此常用其他函数替代,称为替代损失函数(surrogate loss function)。一些常用的替代损失函数有:
hinge损失: lhinge(z)=max(0,1−z) l h i n g e ( z ) = m a x ( 0 , 1 − z )
指数损失exponential loss: lexp(z)=exp(−z) l e x p ( z ) = e x p ( − z )
对率损失 logistic loss: llog(z)=log(1+exp(−z)) l l o g ( z ) = l o g ( 1 + e x p ( − z ) )
如果采用hinge损失,则(4-1)变为:
minw,b12∥w∥2+C∑mi=1max(0,1−yi(wTxi+b))(4-2) (4-2) m i n w , b 1 2 ‖ w ‖ 2 + C ∑ i = 1 m m a x ( 0 , 1 − y i ( w T x i + b ) )
引入松弛变量 ξi ξ i (也叫容忍度),C为参数,需要根据经验调整。可以得到
这个是一个QP问题。
可以看到,当 ξi=0 ξ i = 0 时, yi(wTxi+b)≥1 y i ( w T x i + b ) ≥ 1 ,样本点被正确分类,且距离大于支撑向量。
当 1≥ξi>0 1 ≥ ξ i > 0 时, yi(wTxi+b)≥0 y i ( w T x i + b ) ≥ 0 即,样本点被正确分类,但是距离有可能小于支撑向量 yi(wTx