SVM——线性SVM,间隔由硬到软

从线性可分SVM到线性SVM

从现实情况引出线性SVM

前面几章讲的是线性可分 SVM,这种 SVM 学习的训练数据本身就是线性可分的——可以很清晰地在特征向量空间里分成正集和负集。

线性可分 SVM 正负样本之间的间隔叫做“硬间隔”,也就是说在这个“隔离带”里面,肯定不会出现任何训练样本。

我们不难想到,这种情况在现实生活中其实是很少见的。更多的时候,可能是像下面这个样子:
(系列笔记)11.SVM系列(4)
如果没有圈里的俩点,就很好分割,这样反而分不开了:
(系列笔记)11.SVM系列(4)
但是如果便同意下,允许个别样本出现在“隔离带”里面,那样是不是会变得好分得多?比如像下面这样:
(系列笔记)11.SVM系列(4)
这样看起来也很合理啊。而且,一般情况下,怎么能保证样本就一定能够被分隔得清清楚楚呢?从直觉上我们也觉得,允许一部分样本存在于“隔离带”内更合理。

正是基于这种想法,相对于之前讲的线性可分 SVM 的硬间隔(Hard Margin),人们提出了软间隔(Soft Margin) 的概念。

相应的,对应于软间隔的 SVM,也就叫做线性 SVM

线性可分SVM

线性可分SVM成立的前提是训练样本在向量空间中线性可分,即存在一个超平面能够将不同类的样本完全彻底,且无一错漏地分开。

用数学式子表达,全部训练样本满足如下约束条件:
(系列笔记)11.SVM系列(4)
这时,wxi+b=1wx_i+b=1wxi+b=1wx_i+b=-1这两个超平面之间的间隔叫做硬间隔。位于它们两个正中的wxi+b=0wx_i+b=0是最大分割超平面。

线性SVM

硬间隔到软间隔
由于样本线性可分的情况在现实当中出现很少,为了更有效地应对实际问题,我们不再要求所有不同类的样本全部线性可分,也就上不再要求硬间隔存在。
取而代之的是将不同类样本之间的硬间隔变成软间隔,即允许部分样本不满足约束条件:yi(wxi+b)>=1y_i(wx_i+b)>=1
(SB电脑写了一个小时的东西突然重启没了!!!!rlgl)

对偶法最优化线性SVM主问题

算法思路

上面我们得出了线性 SVM 的主问题。现在来回顾一下上节课我们讲解的,用对偶法求解线性可分 SVM 的主问题的思路——当时一共分了7步,不过这7步再抽象一下,大致可以分为4个阶段:
Stage-1:根据主问题构建拉格朗日函数,由拉格朗日函数的对偶性,将主问题转化为极大极小化拉格朗日函数的对偶问题。

Stage-2:分步求解极大极小问题。

在每次求解极值的过程中都是先对对应的函数求梯度,再令梯度为0。以此来推导出主问题参数和拉格朗日乘子之间的关系。

再将用拉格朗日乘子表达的主问题参数带回到拉格朗日函数中,最终一步步将整个对偶问题推导为拉格朗日乘子和样本(xi,yi)(x_i,y_i)之间的关系。
Stage-3:通过最小化拉格朗日乘子与样本量组成的函数(也就是 Stage-2 的结果),求出拉格朗日乘子的值。

这里,可以用 SMO 算法进行求解。

Stage-4:将 Stage-3 求出的拉格朗日乘子的值带回到 Stage-2 中确定的乘子与主问题参数关系的等式中,求解主问题参数。

再根据主问题参数构造最终的分隔超平面和决策函数。

主问题求解

现在我们就按这个思路来对线性 SVM 主问题进行求解。

首先,将主问题写成我们熟悉的约束条件小于等于0的形式,如下:
(系列笔记)11.SVM系列(4)
然后开始逐步求解:

1. 构建拉格朗日函数

(系列笔记)11.SVM系列(4)
其中αi\alpha_iμi\mu_i是拉格朗日乘子,而w,b,ξiw,b,\xi_i主问题参数,根据主问题的对偶性,主问题的对偶问题是:
(系列笔记)11.SVM系列(4)

2. 极大极小化拉格朗日函数

(1)极小化
首先对w,b,ξw,b,\xi极小化L(w,b,ξ,α,μ)L(w,b,\xi,\alpha,\mu)——分别对w,b,ξiw,b,\xi_i求偏导,然后令导数为0,得出:
(系列笔记)11.SVM系列(4)
将这些关系带入线性 SVM 主问题的拉格朗日函数,得到:
(系列笔记)11.SVM系列(4)
(2)极大化
然后对αμ\alpha,\mu进行极大化,因为上面极小化的结果中只有α\alpha而没有μ\mu,所以现在只需要极大化α\alpha就好:
(系列笔记)11.SVM系列(4)(系列笔记)11.SVM系列(4)

3. SMO 算法求解对偶问题

我们将上面极大化目标约束条件中的 μ 用 α 替换掉,并将极大化目标求负转为极小化问题,得到:
(系列笔记)11.SVM系列(4)
我们对照一下上一篇线性可分 SVM 最优化过程中步骤3的结果,不难发现,两者的极小化目标是一样的,所不同的就是约束条件而已。

所以,在上一篇我们用到的 SMO 算法,同样可以用于此处。运用 SMO 求解出拉格朗日乘子α1,α2,...,αm\alpha_1,\alpha_2,...,\alpha_m

4. 根据拉格朗日乘子与主问题参数的关系求解分隔超平面和决策函数

w=i=1mαiyixiw=\sum_{i=1}^{m}{\alpha_iy_ix_i}求出ww
因为最终要求得的超平面满足wx+b=0wx+b=0,这一点是是和线性可分 SVM 的超平面一样的,因此求解 b 的过程也可以照搬:
(系列笔记)11.SVM系列(4)
其中S是支持向量的集合。

线性 SVM 的支持向量

到底哪些样本算是线性 SVM 的支持向量

对于线性可分 SVM,支持向量本身是很明确的,就是那些落在最大分隔超平面两侧的两个辅助超平面上的样本。因为样本线性可分,所以这两个辅助超平面中间的硬间隔里,是没有任何样本存在的。

但是,对于线性 SVM,有些不同,这两个辅助超平面中间是软间隔,软间隔的区域内也存在若干样本。这些样本是和辅助超平面上的样本一样算作支持向量呢?还是不算作支持向量?

比如下图中的 sampleA 和 sampleB,前者还好,只是“分得不够清楚”, 后者根本就“跨界”到了“对方的地盘”。它们两个到底算不算支持向量呢?
(系列笔记)11.SVM系列(4)
我们先来看看线性 SVM(又名软间隔 SVM)主问题拉格朗日函数的 KKT 条件:
(系列笔记)11.SVM系列(4)
其中拉格朗日乘子为0(即αi=0\alpha_i=0)的项,对于w的值是没有影响的,能够影响w的,一定是对应拉格朗日乘子大于0的样本。

根据KKT条件,这样的样本一定同时满足yif(xi)1+ξi=0y_if(x_i)-1+\xi_i=0,也就是yif(xi)=1ξiy_if(x_i)=1-\xi_i,所有这样的样本,都是线性SVM的支持向量。

在满足yif(xi)=1ξiy_if(x_i)=1-\xi_i的前提之下,我们来看ξi\xi_i
ξi=0\xi_i=0,则yif(xi)=1y_if(x_i)=1,此时,样本正好落在两个辅助超平面上,所以两个辅助超平面上的样本,肯定是支持向量。
ξi≠0\xi_i=\not0:

  • ξi1\xi_i\le1时,(如上图中ξA\xi_A),1ξi>01-\xi_i>0yif(xi)>0y_if(x_i)>0。也就上说yiy_if(xi)f(x_i)的结果相乘虽然不为1,但至少这个样本还没有被归错类。
  • ξi>1\xi_i>1时,(如上图中ξB\xi_B),1ξi<01-\xi_i<0,则yif(xi)<0y_if(x_i)<0。这时,样本根本就被归错了类。但是,即使如此,毕竟这样的样本也影响了最终w的取值。

也就是说,对于线性 SVM 而言,除了落在两个辅助超平面上的样本,落在软间隔之内的样本也是它的支持向量。

相关文章: