转自西瓜书《机器学习》
在前面的讨论中,我们一直假设训练样本在样本空间或特征空间食线性可分的,即存在一个超平面能将不同类的样本完全划分开。然而,在现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分;退一步说,即便恰好找到了某个核函数使训练样本在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合造成的。
缓解该问题的一个方法是允许支持向量机在一些样本上出错,为此要引入“软间隔”的概念。如图所示
具体来说,前面介绍的支持向量机形式是要求所有样本均满足约束
,即所有样本都必须划分正确,这称为“硬间隔”,而软间隔则是允许某些样本不满足约束
(2)
当然,在最大化间隔的同时,不满足约束的样本应尽可能小,于是优化目标可以写为
(3)
其中,C是一个常数, 是“0/1损失函数”
(4)
显然,当C为无穷大时将迫使所有样本均满足约束,于是式(3)等价于式(1)。当C取有限值时,式(3)允许一些样本不满足约束。
然而,非凸,非连续,数学性质不太好,使得式(3)不易直接求解。于是人们通常用其他一些函数来代替,称为“替代损失”,替代损失函数一般具有较好的数学性质,如它们通常式凸的连续函数且是l0/1的上界。图6.5给出了三种常用的替代损失函数:
若采用hinge损失,则式(3)变成了
(5)
引入“松弛变量”,可将式(5)重写为
(6)
这就是常用的“软间隔支持向量机”
显然,式(6)中每个样本都有一个对应的松弛变量,用以表征该样本不满足约束(2)的程度。但是,与
相似,这认识一个二次规划问题。于是,类似式
通过拉格朗日乘子法可以得到(6)的拉格朗日函数
(7)
其中,是拉格朗日乘子。
(8)
将式(8)代入式(7)中可得式(6)的对偶问题
(10)
将式(10)与硬间隔下的对偶问题对比
可看出,两者位移的差别就是对偶变量的约束不同:前者是,后者是,因此可以采用与硬间隔相同的算法求解式(10)。在引入核函数后能得到相同的支持向量展式。
对软间隔支持向量机,KKT条件要求
于是,对任意训练样本,总有。若,则该 样本不会对f(x)产生影响,;若,则该样本是支持向量。由式(8)可知,
即该样本在最大间隔边界上。
则该样本落在最大间隔内部,若则该样本被错误分类。由此可以看出,软间隔支持向量机的最终模型仅与支持向量有关,即通过采用hinge损失函数仍保持了稀疏特性。