支持向量机(SVM)—— 软间隔与正则化

时间:2024-04-09 09:35:47

转自西瓜书《机器学习》

在前面的讨论中,我们一直假设训练样本在样本空间或特征空间食线性可分的,即存在一个超平面能将不同类的样本完全划分开。然而,在现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分;退一步说,即便恰好找到了某个核函数使训练样本在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合造成的。

缓解该问题的一个方法是允许支持向量机在一些样本上出错,为此要引入“软间隔”的概念。如图所示

支持向量机(SVM)—— 软间隔与正则化

具体来说,前面介绍的支持向量机形式是要求所有样本均满足约束

                                                支持向量机(SVM)—— 软间隔与正则化

,即所有样本都必须划分正确,这称为“硬间隔”,而软间隔则是允许某些样本不满足约束

支持向量机(SVM)—— 软间隔与正则化(2)


当然,在最大化间隔的同时,不满足约束的样本应尽可能小,于是优化目标可以写为

支持向量机(SVM)—— 软间隔与正则化(3)


其中,C是一个常数, 支持向量机(SVM)—— 软间隔与正则化是“0/1损失函数”

支持向量机(SVM)—— 软间隔与正则化(4)


显然,当C为无穷大时将迫使所有样本均满足约束,于是式(3)等价于式(1)。当C取有限值时,式(3)允许一些样本不满足约束。

然而,支持向量机(SVM)—— 软间隔与正则化非凸,非连续,数学性质不太好,使得式(3)不易直接求解。于是人们通常用其他一些函数来代替支持向量机(SVM)—— 软间隔与正则化,称为“替代损失”,替代损失函数一般具有较好的数学性质,如它们通常式凸的连续函数且是l0/1的上界。图6.5给出了三种常用的替代损失函数:

支持向量机(SVM)—— 软间隔与正则化


若采用hinge损失,则式(3)变成了

支持向量机(SVM)—— 软间隔与正则化(5)

引入“松弛变量”支持向量机(SVM)—— 软间隔与正则化,可将式(5)重写为

支持向量机(SVM)—— 软间隔与正则化

支持向量机(SVM)—— 软间隔与正则化(6)


支持向量机(SVM)—— 软间隔与正则化

这就是常用的“软间隔支持向量机”

显然,式(6)中每个样本都有一个对应的松弛变量,用以表征该样本不满足约束(2)的程度。但是,与

                                                             支持向量机(SVM)—— 软间隔与正则化


相似,这认识一个二次规划问题。于是,类似式

                                          支持向量机(SVM)—— 软间隔与正则化

通过拉格朗日乘子法可以得到(6)的拉格朗日函数

支持向量机(SVM)—— 软间隔与正则化 (7)

其中,支持向量机(SVM)—— 软间隔与正则化是拉格朗日乘子。

支持向量机(SVM)—— 软间隔与正则化(8)

将式(8)代入式(7)中可得式(6)的对偶问题

支持向量机(SVM)—— 软间隔与正则化 (10)

将式(10)与硬间隔下的对偶问题对比

支持向量机(SVM)—— 软间隔与正则化
    
 支持向量机(SVM)—— 软间隔与正则化

可看出,两者位移的差别就是对偶变量的约束不同:前者是支持向量机(SVM)—— 软间隔与正则化,后者是支持向量机(SVM)—— 软间隔与正则化,因此可以采用与硬间隔相同的算法求解式(10)。在引入核函数后能得到相同的支持向量展式。

对软间隔支持向量机,KKT条件要求

支持向量机(SVM)—— 软间隔与正则化

于是,对任意训练样本支持向量机(SVM)—— 软间隔与正则化,总有支持向量机(SVM)—— 软间隔与正则化。若支持向量机(SVM)—— 软间隔与正则化,则该 样本不会对f(x)产生影响,;若支持向量机(SVM)—— 软间隔与正则化,则该样本是支持向量。由式(8)可知,

支持向量机(SVM)—— 软间隔与正则化即该样本在最大间隔边界上。

支持向量机(SVM)—— 软间隔与正则化则该样本落在最大间隔内部,若支持向量机(SVM)—— 软间隔与正则化则该样本被错误分类。由此可以看出,软间隔支持向量机的最终模型仅与支持向量有关,即通过采用hinge损失函数仍保持了稀疏特性。