统计学习方法笔记四---支持向量机

来源:互联网 发布:陆羽茶经经典句子一知 编辑:程序博客网 时间:2024/06/05 15:03

前言

支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔使它有别于感知机;支持向量机还包括和技巧,这使它成为实质上的非线性分类器。

之前,我们已经介绍过感知机算法,感知机算法与支持向量机算法都属于线性分类器,都是主要针对二分类,当然,它们两个都可以拓展到多分类问题上。不同的是,感知机算法主要是针对线性可分的数据,这也是感知机算法最大的缺点。在介绍感知机算法的时候我们说过,感知计算法对于线性可分的数据来是收敛的,对于线性不可分的数据我们当时介绍了一种口袋算法,来使得它最优(不一定收敛)。而在本节中将要说明的支持向量机算法有三种:

1、当训练数据线性可分的时候,通过硬间隔最大化(hard margin maximization),学习一个线性的分类器,即线性可分支持向量机,又称硬间隔支持向量机;2、当训练数据近似线性可分的时候,通过软间隔最大化(soft margin maximization),也学习一个线性分类器,即线性支持向量机,又称软间隔支持向量机;3、当训练数据线性不可分的时候,通过核技巧(Kernel method)以及软间隔最大化,学习非线性支持向量机。

另外一方面,在感知机算法中,我们最终的解是有多个的,会因为初始点的选择不同,或者初始化权重向量的不同而不同,也就是说,可以有多个超平面或直线可以把二类数据完全正确的分开,通过算法我们也可以知道,通过不断的更新权重,只要第一次找到一个超平面或者直线把数据完全正确分开了我们就会停止算法。而在支持向量机算法中,我们并不是仅仅找到一个把数据完全正确分开的超平面,还要保证这个超平面距离二类的支持向量间隔最大!

函数间隔和几何间隔

一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度,在超平面确定的情况下,能够相对的表示点x距离超平面的远近,而的符号与类标记y的符号是否一致能够表示分类是否正确,所以可用表示分类的正确性及确信度,例如大于0,表示分类正确,的绝对值越大,表示越确信。这就是函数间隔(functional margin)的概念。
这里写图片描述

也就是说几何间隔就是规范化了函数间隔。
这里写图片描述

从函数间隔和几何间隔的定义可以知道,函数间隔和几何间隔的关系为:


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

间隔最大化

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

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

这里写图片描述

对上面公式的解释:(7.9)式:我们希望最大化超平面(w,b)关于训练数据集的几何间隔
(7.10)式:约束条件表示的超平面(w,b)关于每个训练样本的几何间隔至少是,所以只要支持向量满足即可。

然后我们根据几何间隔和函数间隔的关系,将上式中的几何间隔换成函数间隔,然后再取函数间隔为1,将1/||w||换成,这些操作都不会影响最优化问题的解,而且使得之后的计算变得方便简单。于是我们得到线性可分的支持向量机学习算法如下:

这里写图片描述

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

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

学习的对偶算法

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

首先,构建拉格朗日函数,为此,对每一个不等式约束(7.14)引进拉格朗日乘子,定义拉格朗日函数:

这里写图片描述

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

这里写图片描述

所以,为了得到对偶问题的解,需要首先求L(w,b,a)对w,b求极小,再求对a的极大值。

线性可分支持向量机学习算法:
这里写图片描述
这里写图片描述
这里写图片描述

支持向量

对于支持向量机的原始形式:
使得约束条件式(7.14)等号成立的点,为支持向量。即:

这里写图片描述

对于对偶形式:
我们将训练数据中对应于的实例点称为支持向量。

这里写图片描述

对于线性可分的支持向量来说,都在间隔边界平面上,而对于后面的非线性可分的支持向量,是不一定在间隔边界上的。

线性支持向量机和软间隔最大化

现实生活的数据大部分不是线性可分的,上面介绍的线性可分问题的支持向量机学习算法,对线性不可分训练数据是不适用的。

线性不可分意味着某些样本点(xi,yi)不能满足函数间隔大于等于1的约束条件(7.14).为了解决这个问题,可以对每个样本点(xi,yi)引入一个松弛变量,使得函数间隔加上松弛变量大于等于1,这样,约束条件变为


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

这里,C>0称为惩罚函数,一般由应用问题决定,C值大时对误分类的惩罚增大,C值小时,对误分类的惩罚减小。最小化目标函数(7.13)包含两层含义:使尽量小即间隔尽量大,同时使误分类点的个数尽量小,C是调和二者的系数。相应于硬间隔最大化,它成为软间隔最大化。

线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题(原始问题):
这里写图片描述
对偶问题及对偶学习算法:

这里写图片描述

这里写图片描述

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

支持向量

软间隔的支持向量或者在间隔边界上,或者在间隔边界与分离平面之间,或者在分离超平买呢误分一侧。
这里写图片描述

非线性支持向量机

用线性分类方法求解非线性分类问题分为两步:首先使用一个变换讲原空间的数据映射到新空间;然后在新空间里用线性分类学习方法从训练数据中学习分类模型。核技巧就属于这样的方法。
这里写图片描述
这里写图片描述

对于输入空间中的非线性分类问题,可以通过非线性变换将它转化为某个高维特征空间中的线性分类问题,在高维特征空间中学习线性支持向量机。由于在线性支持向量机学习的对偶问题里,目标函数和分类决策函数都只涉及实例与实例之间的内积,所以不需要显示地指定非线性变换,而是用核函数来替换当中的内积。核函数表示,通过一个非线性转换后的两个实例间的内积。具体地,K(x,z)是一个核函数,或者正定核,意味着存在一个从输入空间X到特征空间H的映射。

推荐连接:
推荐看1
推荐看2
推荐看3

阅读全文
0 0