软间隔
软间隔的提出是解决什么问题的
在实际的应用中,完全线性可分的样本是很少的,如果遇到了不能完全线性可分的样本
我们应该怎么办,所以提出了软间隔,允许个别样本点出现在间隔带里面

这样就允许了部分样本点不满足约束条件
yi(wxi+b)≥1
为了度量这个间隔"软"到何种程度,我们针对每个样本(x_i,y_i),引入一个松弛变量ξi,令ξi≥0,且yi(wxi+b)≥1−ξi

软间隔后的线性SVM的最优化问题是是什么
优化目标
从原来的线性可分的优化目标
minw,b2∥w∥2
s.t.=1−yi(wxi+b)≤0,i=1,2,3,....,m
变成了:
w,b,ξmin21∥w∥2+Ci=1∑mξi s.t. yi(wxi+b)⩾1−ξi,i=1,2,…,m;ξi⩾0,i=1,2,…,m
其中C是一个大于0的常数,若C为无穷大,则ξi必然无穷小,否则将无法最小化主问题,如此一来线性SVM就又变成了线性可分SVM。
当C为有限值的时候,才能允许部分样本不遵守约束条件1−yi(wxi+b)≤0
我们将优化目标整理成和线性可分的形式一样,即为:
w,b,ξmin21∥w∥2+Ci=1∑mξi s.t. 1−ξi−yi(wxi+b)⩽0,i=1,2,…,m;−ξi⩽0,i=1,2,…,m
使用对偶算法求解上面的最优化问题
步骤1:构造拉格朗日函数
L(w,b,ξ,λ,μ)=21∥w∥2+Ci=1∑mξi+i=1∑mλi[1−ξi−yi(wxi+b)]+i=1∑m(−μiξi)λi⩾0,μi⩾0
其中λi和μi是拉格朗日乘子,而w、b和ξi是主问题参数
根据主问题的对偶性,主问题的对偶问题是
maxλ,μminw,b,ξL(w,b,ξ,λ,μ)
步骤2 最小化拉格朗日函数
首先对w、b和ξ最小化$ L(w,b,\xi,\lambda,\mu)————分别对w、b和\xi_i$求偏导,然后令导数为0,得出如下关系
w=i=1∑mλiyixi0=i=1∑mλiyiC=λi+μi
将这些关系带入线性SVM主问题的拉格朗日函数,得到
w,b,ξminL(w,b,ξ,λ,μ)=i=1∑mλi−21i=1∑mj=1∑mλiλjyiyj(xi⋅xj)
步骤3 求minw,bL(w,b,ξ,λ,μ)对λ的最大
因为上面最小化的结果中只有λ而没有μ,所以现在只需要最大化$\lambda $就好
λ,μmaxw,b,zminL(w,b,ξ,λ,μ)=λmax(i=1∑mλi−21i=1∑mj=1∑mλiλjyiyj(xi⋅xj)) s.t. i=1∑mλiyi=0;C−λi−μi=0;λi⩾0;μi⩾0;i=1,2,…,m
步骤4 使用SMO算法求解
我们同样可以和之前一样,将最大化问题转化为最小化问题
maxλ(∑i=1mλi−21∑i=1m∑j=1mλiλjyiyj(xi⋅xj))=min(21∑i=1m∑j=1mλiλjyiyj(xi⋅xj)−∑i=1mλi) s.t. ∑i=1mλiyi=0;0⩽λi⩽C;i=1,2,…,m
然后我们可以看到,实际上差别只在约束条件熵,所以我们同样可以使用SMO算法进行求解出拉格朗日乘子λ∗
步骤5 求解w 和b
由w=∑i=1mλiyixi求出w
因为最终要求得的超平面满足wx+b = 0,这一点是和线性可分SVM的超平面一样的,因此求解b的过程也可以照搬:
b=∣S∣1s∈S∑(ys−wxs)
其中S是支持向量的集合
在这里会存在一个问题,就是到底那部分是在间隔中的样本点,是不是支撑向量
我们可以看到w=∑i=1mλiyixi,因此,对于所有的λi>0的点都能够影响到我们的超平面,因此都是支撑向量