线性可分支持向量机与硬间隔最大化

线性可分支持向量机与硬间隔最大化

支持向量机(support vector machines,SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。

支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机( linear support vector machine in linearly separable case )、线性支持向量机( linear support vector machine)及非线性支持向量机(non-linear support vector machine)。简单模型是复杂模型的基础,也是复杂模型的特殊情况。当训练数据线性可分时,通过硬间隔最大化( hard margin maximization),学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化( soft margin maximization),也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用核技巧(kemel trick)及软间隔最大化,学习非线性支持向量机。

当输入空间为欧氏空间或离散集合、特征空间为希尔伯特空间时,核函数(kernel function)表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。通过使用核函数可以学习非线性支持向量机,等价于隐式地在高维的特征空间中学习线性支持向量机。这样的方法称为核技巧。核方法( kernel method)是比支持向量机更为一般的机器学习方法。

Cortes与Vapnik提出线性支持向童机,Boser、Guyon与Vapnik又引入核技巧,提出非线性支持向量机。

本章按照上述思路介绍3类支持向量机、核函数及一种快速学习算法——序列最小最优化算法(SMO)。

线性可分支持向量机

考虑一个二分类问题,假设输入空间与特征空间为两个不同的空间。输入空间为欧式空间或离散集合,特征空间为欧式空间或希尔伯特空间。

线性可分支持向量机、线性支持向量机假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量。非线性支持向量机利用一个从输入空间到特征空间的非线性映射,将输入映射为特征向量,使得在特征空间中能够使用线性支持向量机来学习。所以,输入都由输入空间转换到特征空间,支持向量机的学习是在特征空间上进行的

假设给定一个特征空间上的训练数据集

一般地,当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。感知机利用误分类最小的策略,求得分离超平面,不过这时的解有无穷多个。线性可分支持向量机利用间隔最大化求最优分离超平面,这时,解是唯一的。

线性可分支持向量机的定义:

给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为

以及相应的分类决策函数

称为线性可分支持向量机。

考虑如下图所示的二维特征空间中的分类问题。图中的“。”表示正例,“x”表示负例。训练数据集线性可分,这时有许多直线能将两类数据正确划分。线性可分支持向量机对应将两类数据正确划分并且间隔最大的直线,如下图所示。

间隔最大及相应的约束最优化问题将在下面叙述。这里先介绍函数间隔和集合间隔的概念。

函数间隔和几何间隔

在上图中,有A,B,C三个点,表示三个实例,均在分离超平面的正类一侧,预测他们的类。点A距分离超平面较远,若预测该点为正类,就比较确信预测是正确的;点C距分离超平面较近,若预测该点为正类就不那么确信;点B介于点A与C之间,预测其为正类的确信度也在A与C之间。

函数间隔的定义

由这一事实导出几何间隔的概念。

几何间隔的定义:

从函数间隔和几何间隔的定义可知,函数间隔和几何间隔有下面的关系:

间隔最大化

支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的。这里的间隔最大化又称为硬间隔最大化(与将要讨论的训练数据集近似线性可分时的软间隔最大化相对应)。

间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例有很好的分类预测能力

最大间隔分离超平面

下面考虑如何求得一个几何间隔最大的分离超平面,即最大间隔分离超平面。具体地,这个问题可以表示为下面的约束最优化问题:

考虑几何间隔和函数间隔的关系式,可将这个问题改写为

凸优化是指约束优化问题

综上所述,就有下面的线性可分支持向量机的学习算法——最大间隔法(maximum margin method)。

线性可分支持向量机学习算法:最大间隔法

输入:线性可分训练数据

输出:最大间隔分离超平面和分类决策函数

(1)构造并求解约束最优化问题:

(2)由此得到分离超平面:

分类决策函数

最大间隔分离超平面的存在唯一性

线性可分训练数据集的最大间隔分离超平面是存在且唯一的。

证明此处略,详见李航的《统计学习基础》对应章节。

支持向量和间隔边界

在线性可分情况下,训练数据的样本点中与分离超平面最近的样本点的实例称为支持向量。支持向量是使不等式约束条件的等号成立的点,即

在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。如果移动支持向量将改变所求的解:但是如果在间隔边界以外移动其他实例点,甚至去掉这些点,则解是不会改变的。由于支持向量在确定分离超平面中起着决定性作用,所以将这种分类模型称为支持向量机。支持向量的个数一般很少,所以支持向量机由很少的“重要的”训练样本确定。

线性可分支持向量机学习的对偶算法

对偶优化问题

为了求解线性可分支持向量机的最优化问题,将它作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题,得到原始问题的最优解,这就是线性可分支持向量机的对偶算法。这样做的优点,一是对偶问题往往更容易求解,二是自然引入核函数,进而推广到非线性分类问题。

所以,通过拉格朗日函数我们可以将原始问题

转化为:

有的小伙伴这里不理解,为什么这里突然变成了拉格朗日函数最大值的最小化?原因是

根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:

通俗的讲,这个过程的主要操作就是将min和max互掉位置,并且二者之间有一个性质,即前者>=后者,这就好比在高个子人群中挑一个身高较矮的(min max)要高于在矮个子人群中挑一个身高较高的(max min)。默认情况下二者是呈弱对偶关系的,但在此目标函数和约束条件下是呈强对偶关系(等价关系)的。

那怎么判断是否满足强对偶性呢?其中一个就是,在原函数和不等式约束是凸函数的基础上,如果满足Slater条件,那么强对偶性就成立,从而原函数和对偶函数的最优值就相等,就可以通过求对偶函数的最优值来求原函数的最优值了。

那Slater条件又是什么呢?Slater条件是说:存在x,使不等式约束中的“小于等于号”要严格取到“小于号”(也就是弹簧振子系统要能正常运转,等于零就是有约束力)。这个条件一般都能满足。。所以,我们的这个函数显然很容易就满足了Slater条件,而且它又是凸函数,那么就是满足强对偶性质喽,那么原函数(最小最大)和对偶函数(极大极小)的最优值就是一样的啦。所以,既然原函数不好求最优值,那我们就求对偶函数的最优值,因为对偶函数好求最优值嘛。。求出来的对偶函数的最优值,就是原函数的最优值了。。

将上式中第一行式子带入拉格朗日函数,并利用上式中的第二行式子,即得:

拉格朗日对偶的重要作用是将w的计算提前并消除w,使得优化函数变为拉格朗日乘子的单一参数优化问题

将上式从求极大换成求极小,就得到下面与之等价的对偶优化问题

以KKT条件由对偶解α求原始解w和b

定理:

证明:

这里先说一下KKT条件(不知道KKT条件的,建议先看凸优化一章):

下面开始正式证明:

根据上面所述,KKT条件成立,即得

由此得

故此定理得证,即有

由此定理可知,分离超平面可以写成

分类决策函数可以写成

这就是说,分类决策函数只依赖与输入x和训练样本输入的内积。上式称为线性可分支持向量机的对偶形式。

线性可分支持向量机学习算法

综上所述,对于给定的线性可分训练数据集,可以首先求对偶问题(强对偶性,必须满足Slater条件,即弹簧振子系统能正常运转)

线性可分支持向量机学习算法:

输出:分离超平面和分类决策函数。

(1)构造并求解约束最优化问题

(2)计算

(3)求得分离超平面

分类决策函数:

线性可分数据集的支持向量

根据这一定义,支持向量一定在分隔边界上,为什么?因为由KKT互补松弛条件可知,

对于线性可分问题,上述线性可分支持向量机的学习(硬间隔最大化)算法是完美的。但是,训练数据集线性可分是理想的清醒。在现实问题中,训练数据集往往是线性不可分的,即在样本中出现的噪点或特异点。此时,有更一般的学习算法。

参考资料

  • 《统计学习方法》李航

本章的结构和大部分内容均参考此书对应章节。

Last updated