前面的文章中我们一直假定训练样本在样本空间或特征空间中是线性可分的,即存在一个超平面能将不同类的样本完全划分开。然而,在现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分。退一步说,即使恰好找到了某个核函数使训练样本在特征空间中线性可分,也很难判定这个貌似线性可分的结果不是由于过拟合造成的。
缓解该问题的方法就是要引入“软间隔”概念,即允许支持向量机在一些样本上出错。
在机器学习算法——支持向量机SVM2(硬间隔与支持向量)_Vicky_xiduoduo的博客-CSDN博客中讲解的硬间隔,软间隔就是允许某些样本不满足以下约束
当然,在最大化间隔的同时,不满足约束的样本应尽可能地少。
故,需要放松原始判别函数中地不等式条件,来让决策边界能够适用于异常点,所以引入松弛变量来帮助优化原始的判别函数:
即
所以此时,“软间隔支持向量机”可以写为
所以,和之前推导的拉格朗日函数一样,仍是一个二次规划问题,也是得到上式的拉格朗日函数为:
其中,是拉格朗日乘子。
令对
的偏导为零可得,
然后将上式带回到拉格朗日函数中,得到对偶问题为:
与硬间隔相比,两者唯一的差别在对偶变量的约束不同。
然后采用SMO算法求解上式a,在引入核函数后也能得到之前章节讲的支持向量展式。
对软间隔支持向量机,KTT条件要求为:
若对于任意的样本(xi,yi),总有ai=0或,若
不会对f(x)有任何影响.若
,则必有
即该样本是支持向量。由
可知,若
,则
,则
,即该样本恰好在最大间隔边界上。若
,则
,此时若
,则该样本落在最大间隔内部,若
,则样本被错误分类。