SVM学习笔记

关于统计学习方法中李航SVM学习笔记:

支持向量机(support vector machines,SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;关于感知机的介绍有时间再做。

关于支持向量机中的内容比较多,本文关于李航统计学习中关于支持向量机的顺序进行整理,即:

  • 硬间隔支持向量机(函数间隔、几何间隔、间隔最大化、支持向量与支持边界、对偶算法)
  • 软间隔支持向量机(惩罚系数、对偶算法、支持向量、合页损失函数)
  • 非线性支持向量机(核技巧)
  • SMO算法

1.硬间隔支持向量机

        个人理解硬间隔支持向量机即训练数据集是线性可分的,存在一个超平面可以将两类样本完全分开,其损失函数为0.其学习的目标是在特征空间中找到一个分离超平面,能将实例分到不同的累。分离超平面对英语方程w*x+b=0,它由法向量w和截距b决定可用(w,b)来表示。一般地,当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。感知机利用误分类最小的策略,求得分离超平面,这样的超平面有无穷多个,线性可分支持向量机利用间隔最大化求最优分离超平面,此超平存在而且唯一。

1.1函数间隔和几何间隔

函数间隔定义:对于给定的训练数据集T和超平面(w,b),定义超平 面(w,b)关于样本点(xi,yi)的函数间隔为:

定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点​的函数间隔之最小值,即

函数间隔可以表示分类预测的正确性及确信度。但是选择分离超平面时,只有函数间隔还不够。因为只要成比例地改变w和b,例如将它们改为2w和2b,超平面并没有改变,但函数间隔却成为原来的2倍。这一事实启示我们,可以对分离 超平面的法向量w加某些约束,如规范化,||w||=1,使得间隔是确定的。这时函数间隔成为几何间隔(geometric margin)。

 

定义(几何间隔)对于给定的训练数据集T和超平面(w,b),定义超平 面(w,b)关于样本点​的几何间隔为

定义超平面(w,b)关于训练数据集T的几何间隔为超平面(w,b)关于T中所有样本点​的几何间隔之最小值,即

超平面(w,b)关于样本点​的几何间隔一般是实例点到超平面的带符号的距离(signed distance),当样本点被超平面正确分类时就是实例点到超平面的距离。

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

如果||w||=l,那么函数间隔和几何间隔相等。如果超平面参数w和b成比例地改变(超平面没有改变),函数间隔也按此比例改变,而几何间隔不变。

1.2间隔最大化

对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的。

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

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

以及相应的分类决策函数

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

最大间隔分离超平面

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

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

由于函数间隔​的取值并不影响最优化问题的解,所以该问题等价于

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

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

 

2.软间隔支持向量机

当对于线性不可分的训练数据采用并不能采用上述的方法,其不等式约束不能都成立,因此修改硬间隔最大化,使其变为软间隔最大化。

线性不可分意味着样本点​不能满足函数间隔大于等于1的约束条件,为了解决这个问题,对每个样本点​引进一个松弛变量​,使函数间隔加上松弛变量大于等于1.这样约束条件变为:

                            

同时,对每个松弛变量​支付一个代价目标函数由原来的​变成:

            

这里,C>0成为惩罚参数,一般由应用问题决定,C值大时对误分类的惩罚增大,C值小时对误分类的惩罚减小(为什么会在损失函数上面加这样一个惩罚项,对误分类的样本的影响体现在哪儿),最小化目标函数包含两层含义,使​尽量减小即间隔尽量大,同时使误分类点的个数尽量小,C是调和二者的系数(c的作用究竟体现在哪儿?)

线性不可分的线性支持向量机的学习问题编程如下凸二次规划问题:

      

设问题​的解是​,于是可以得到分离超平面​及分类决策函数​。称这样的模型为训练样本线性不可分时的线性支持向量机,简称为线性支持向量机。显然,线性支持向量机包含线性可分支持向量机。由于现实中训练数据集往往是线性不可分的,线性支持向量机具有更广的适用性。

下面给出线性支持向量机的定义。

定义(线性支持向置机)对于给定的线性不可分的训练数据集,通过求解凸二次规划问题,即软间隔最大化问题​,得到的分离超平面为:

 

以及相应的分类决策函数

称为线性支持向量机。

学习的对偶算法

 

原始问题​的对偶问题是

原始最优化问题的拉格朗日函数是

其中,​。

对偶问题是拉格朗日函数的极大极小问题。首先求​对​的极小,由

将上面三个式子代入​,得

再对​求α的极大,即得对偶问题:

将上述对偶最优化问题进行变换:利用等式约束​消去​,从而只留下变量​,并将约束​写成

再将对目标函数求极大转换为求极小,于是得到对偶问题​。

可以通过求解对偶问题而得到原始问题的解,进而确定分离超平面和决策函数。为此,就可以定理的形式叙述原始问题的最优解和对偶问题的最优解的关系。

定理 ​是对偶问题​的一个解,若存在​的一个分量​,则原始问题​的解​可按下式求得:

 

综合前面的结果,有下面的算法。

算法(线性支持向量机学习算法)

输入:线性可分训练集​,其中

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

(1)选择惩罚参数C>0,构造并求解凸二次规划问题

求得最优解​。

(2)计算

选择​的一个分量​适合条件​,计算

(3)求得分离超平面

分类决策函数:

步骤(2)中,对任一适合条件​的​,按式​都可求出​,但是由于原始问题​对b的解并不唯一,所以实际计算时可以取在所有符合条件的样本点上的平均值。

支持向量

在线性不可分的情况下,将对偶问题​的解​中对应于​的样本点的实例​,称为支持向量(软间隔的支持向量)。如图所示,

这时的支持向量要比线性可分时的情况复杂一些。图中,分离超平面由实线表示,间隔边界由虚线表示,正例点由“。”表示,负例点由“X”表示。图中还标出了实例​到间隔边界的距离​。

软间隔的支持向量​或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。若​则​(证明参考),支持向量​恰好落在间隔边界上:若​,则分类正确,​在间隔边界与分离超平面之间:若​,则​在分离超平面上:若​,则​位于分离超平面误分一侧。

 

合页损失函数

对于线性支持向量机学习来说,其模型为分离超平面​及决策函数​,其学习策略为软间隔最大化,学习算法为凸二次规划。线性支持向量机学习还有另外一种解释,就是最小化以下目标函数:

目标函数的第1项是经验损失或经验风险,函数 

称为合页损失函数(hinge loss function)。下标“+”表示以下取正值的函数。

这就是说,当样本点​被正确分类且函数间隔(确信度)大于1时,损失是0,否则损失是​。现在回过头来看这张图

注意到在图中的实例点x4被正确分类,但损失不是0。目标函数的第2项是系数为​的w的L2范数,是正则化项。

 

由于现实中往往会有一些非线性可分的问题,不能采用前面的方法进行求解超平面,常用的方法是采用核技巧,其原理是对原始的数据集进行空间的变换,使其可以采用线性可分的方式进行求解,后面再进行整理。

 

posted @ 2018-09-25 11:20  哗啦啦的哈  阅读(348)  评论(0编辑  收藏  举报