SVM——线性SVM,间隔由硬到软
从线性可分SVM到线性SVM
从现实情况引出线性SVM
前面几章讲的是线性可分 SVM,这种 SVM 学习的训练数据本身就是线性可分的——可以很清晰地在特征向量空间里分成正集和负集。
线性可分 SVM 正负样本之间的间隔叫做“硬间隔”,也就是说在这个“隔离带”里面,肯定不会出现任何训练样本。
我们不难想到,这种情况在现实生活中其实是很少见的。更多的时候,可能是像下面这个样子:
如果没有圈里的俩点,就很好分割,这样反而分不开了:
但是如果便同意下,允许个别样本出现在“隔离带”里面,那样是不是会变得好分得多?比如像下面这样:
这样看起来也很合理啊。而且,一般情况下,怎么能保证样本就一定能够被分隔得清清楚楚呢?从直觉上我们也觉得,允许一部分样本存在于“隔离带”内更合理。
正是基于这种想法,相对于之前讲的线性可分 SVM 的硬间隔(Hard Margin),人们提出了软间隔(Soft Margin) 的概念。
相应的,对应于软间隔的 SVM,也就叫做线性 SVM。
线性可分SVM
线性可分SVM成立的前提是训练样本在向量空间中线性可分,即存在一个超平面能够将不同类的样本完全彻底,且无一错漏地分开。
用数学式子表达,全部训练样本满足如下约束条件:
这时, w x i + b = 1 wx_i+b=1 wxi+b=1和 w x i + b = − 1 wx_i+b=-1 wxi+b=−1这两个超平面之间的间隔叫做硬间隔。位于它们两个正中的 w x i + b = 0 wx_i+b=0 wxi+b=0是最大分割超平面。
线性SVM
硬间隔到软间隔
由于样本线性可分的情况在现实当中出现很少,为了更有效地应对实际问题,我们不再要求所有不同类的样本全部线性可分,也就上不再要求硬间隔存在。
取而代之的是将不同类样本之间的硬间隔变成软间隔,即允许部分样本不满足约束条件: y i ( w x i + b ) > = 1 y_i(wx_i+b)>=1 yi(wxi+b)>=1
(SB电脑写了一个小时的东西突然重启没了!!!!rlgl)
对偶法最优化线性SVM主问题
算法思路
上面我们得出了线性 SVM 的主问题。现在来回顾一下上节课我们讲解的,用对偶法求解线性可分 SVM 的主问题的思路——当时一共分了7步,不过这7步再抽象一下,大致可以分为4个阶段:
Stage-1:根据主问题构建拉格朗日函数,由拉格朗日函数的对偶性,将主问题转化为极大极小化拉格朗日函数的对偶问题。
Stage-2:分步求解极大极小问题。
在每次求解极值的过程中都是先对对应的函数求梯度,再令梯度为0。以此来推导出主问题参数和拉格朗日乘子之间的关系。
再将用拉格朗日乘子表达的主问题参数带回到拉格朗日函数中,最终一步步将整个对偶问题推导为拉格朗日乘子和样本 ( x i , y i ) (x_i,y_i) (xi,yi)之间的关系。
Stage-3:通过最小化拉格朗日乘子与样本量组成的函数(也就是 Stage-2 的结果),求出拉格朗日乘子的值。
这里,可以用 SMO 算法进行求解。
Stage-4:将 Stage-3 求出的拉格朗日乘子的值带回到 Stage-2 中确定的乘子与主问题参数关系的等式中,求解主问题参数。
再根据主问题参数构造最终的分隔超平面和决策函数。
主问题求解
现在我们就按这个思路来对线性 SVM 主问题进行求解。
首先,将主问题写成我们熟悉的约束条件小于等于0的形式,如下:
然后开始逐步求解:
1. 构建拉格朗日函数
其中 α i \alpha_