前文介绍了硬间隔 SVM 的相关推导,本文将继续介绍软间隔 SVM 的数学推导,即在样本不是线性可分的情况下,允许一部分样本错误分类的 SVM。软间隔 SVM 允许一部分样本不满足约束:yi(w⋅xi)≥0
可以将优化目标写为:
minw,b21∣∣w∣∣2+Ci=1∑mloss(yi(w⋅xi+b)−1)
其中 C 是一个常数,用来衡量允许的不满足约束的程度,其中的 loss() 函数可以使用 hinge() 函数,即 losshinge(z)=max(0,1−z)
那么可以将优化目标写为:
minw,b21∣∣w∣∣2+Ci=1∑mmax(0,1−yi(w⋅xi+b))
引入“松弛变量” ξi≥0 ,可以将上式改写为
minw,b,ξis.t.21∣∣w∣∣2+Ci=1∑mξiyi(w⋅xi+b)≥1−ξiξi≥0,i=1,2,...,m
与硬间隔 SVM 类似,上述的问题也是个二次规划的问题,可以先用拉格朗日对偶性将其转换为对应的对偶问题,再用 SMO 算法求解。上面问题对应的拉格朗日函数为:
L(w,b,α,ξ,μ)=21∣∣w∣∣2+Ci=1∑mξi+i=1∑mαi(1−ξi−yi(w⋅xi+b))−i=1∑mμiξi
令 L 对 w,b,α 的偏导为 0 可以得到
w=i=1∑mαiyixi0=i=1∑mαiyiC=αi+μi
代入 L(w,b,α,ξ,μ) 即可以将原问题化成对偶问题:
minαs.t.21i=1∑mj=1∑mαiαjyiyjxi⋅xj−i=1∑mαii=1∑mαiyi=0C≥αi≥0i=1,2,...,m
可以看出其与硬间隔 SVM 唯一的区别在于 αi≥0变成了 C≥αi≥0,同样可以用上文中提到的 SMO 算法很方便的求解,唯一的区别在于剪辑的时候需要考虑两个方向。
后面还会介绍 SVM 的核技巧以及常用核