第四讲 支持向量机
Posted AmoyAI
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四讲 支持向量机相关的知识,希望对你有一定的参考价值。
支持向量机
主讲人:苏松志副教授 厦门大学智能科学与技术系
整理人:欧阳智超 计算机科学与技术系
本节主要内容:
1. 上节回顾
2. 支持向量机
2.1 背景
2.2 硬间隔最大化
2.2.1 函数间隔与几何间隔
2.2.2 间隔最大化原理
2.2.3 线性可分SVM学习算法---最大间隔法
2.2.4 最大间隔法具体例子
2.2.5 线性可分SVM学习---对偶算法
2.2.6 对偶算法具体例子
2.3 软间隔最大化
2.3.1 线性支持向量机
2.3.2 学习的对偶算法
1.上节回顾
老师再次引入之前熟悉的函数
其中,,表示高维空间上的一个点。
如果是线性回归问题,。
如果是分类问题,。
这里可以把f这个函数看作是一个规律的总结。
接下来介绍得支持向量机这节课老师上课内容非常之多,需要同学们多多手动推导公式。
2.支持向量机
2.1 背景
支持向量机(support vector machindes,SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。
Gortes与Vapnik提出线性支持向量机,Boser、Guyon与vapnik又引入了核技巧,提出非线性支持向量机。本节课老师介绍的是线性支持向量机。
2.2 硬间隔最大化
给定样本集:
线性分类器基于训练样本D在二维空间中找到一个超平面来分开二类样本。当然,这样的超平面有很多。如下图给出的三个超平面,用红色的实线来表示:
我们可以直观感受到,图三这根红色线代表的超平面抗“扰动”性最好。这个超平面离直线两边的数据的间隔最大,对训练集的数据的局限性或噪声有最大的“容忍”能力。例如,由于训练集的局限性或者噪声的因素,训练集外的样本可能比图中的训练样本更接近两个类的分隔界,这将使许多划分超平面出现错误。而图三的红色超平面的影响最小,简言之,这个划分超平面所产生的结果是比较鲁棒的。
那什么是线性可分呢?
如果一个线性函数能够将样本分开,称这些数据样本是线性可分的。那么什么是线性函数呢?其实很简单,在二维空间中就是一条直线,在三维空间中就是一个平面,以此类推,如果不考虑空间维数,这样的线性函数统称为超平面。我们看一个简单的二维空间的例子,O代表正类,X代表负类,样本是线性可分的,但是很显然不只有这一条直线可以将样本分开,而是有无数条,我们所说的线性可分支持向量机就对应着能将数据正确划分并且间隔最大的直线。
接着我们考虑另外一个问题,为什么我们要间隔最大呢?
一般来说,一个点距离分离超平面的远近可以表示分类预测的确信度,如图中的A B两个样本点,B点被预测为正类的确信度要大于A点,所以SVM的目标是寻找一个超平面,使得离超平面较近的异类点之间能有更大的间隔,即不必考虑所有样本点,只需让求得的超平面使得离它近的点间隔最大。
接下来的一小节我们引入间隔的计算方法。
2.2.1 函数间隔与几何间隔
首先我们引入一下函数间隔的定义。
给定一个训练样本,x是特征,y是结果标签,i表示第i个样本。定义函数间隔为:
刚刚我们定义个函数间隔是针对某一个样本的,现在我们针对全局样本的定义的函数间隔:
意思就是找到训练样本中函数间隔最小的那个样本,并且要让它的函数间隔最大。
函数间隔可以表示分类预测的正确性及确信度,但是选择分离超平面时,只有函数间隔还不够。
因为只要成比例的改变w和b,例如将他们改为2w和2b,超平面并没有改变,但函数间隔却成为原来的2倍。这一事实告诉我们,可以对分离超平面的法向量w加某些约束,如规范化,,使得间隔是确定的。这时候函数间隔就成为了几何间隔。
接下来我们就可以引入几何间隔的概念。
几何间隔首先简单一点说就是点到直线距离。如图
给出了超平面(w,b)及其法向量w。点A代表某一实例,其类标记为。点A与超平面(w,b)的距离由线段AB给出,记作。这样就可得到
其中,为w的范数。
由此我们得到,对于给定的训练集T和超平面(w,b),定义超平面(w,b)关于样本的几何间隔为
定义超平面(w,b)关于训练数据集T的的几何间隔为超平面(w,b)关于T中所有样本点的几何间隔之最小值,即
可以把几何间隔理解为函数间隔的归一化形式。
根据函数间隔和几何间隔的定义,我们可以得到他们之间的关系为
如果,那么函数间隔和几何间隔相等,如果超平面参数w和b成比例的改变(超平面没改变),函数间隔也按此比例改变,几何间隔不变。
2.2.2 间隔最大化原理
间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就说,不仅将正负实例分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例又很大的分类预测能力。
下面考虑如何求的一个几何间隔最大的分离超平面。这个问题可以表示为下面的约束最优化问题:
即我们希望最大化超平面(w,b)关于训练数据集的几何间隔。约束条件表示的是超平面(w,b)关于每个训练样本的几何间隔至少是。
根据几何间隔和函数间隔的关系是,可以改写为
函数间隔的取值并不影响最优化问题的解。这样,就可以取。将代入上面的最优化问题。注意到最大化和最小化是等价的,所以我们可以改写为
这就是一个凸二次规划问题。
如此,就有下面一小节我们要介绍的线性可分支持向量机的学习算法---最大间隔发。
2.2.3 线性可分SVM学习算法---最大间隔法
算法的具体步骤如下:
输入:线性可分训练数据集
,
其中:
输出:最大间隔分离超平面和分类决策函数。
(1)构造并求解约束最优化问题:
求的最优解
(2)由此得到分离超平面:
分类决策函数:
。
接下来,我们给出一个最大间隔法具体例子。
2.2.4 最大间隔法具体例子
在如下坐标系中,有三个点,正类(3,3),(4,3),用蓝色表示,负类为(1,1),用红色表示。
根据间隔最大化算法,我们把数据集构造约束最优化问题为
将上面的约束条件1+2,2+3,可得
可以把要求的目标函数看成一个圆,和约束条件结合起来得到如下图形。
从图中,我们发现,在坐标(0.5,0.5)时,他们相切,此时目标函数得到最小值。
由此得到,继续代入原来的约束条件中,
得到: b=-2。
于是最大间隔分离超平面为
2.2.5 线性可分SVM学习---对偶算法
为求解线性可分支持向量机的最优化问题,将它作为原始最优化问题,应用拉格朗日的对偶性,通过求解对偶问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法。这样做的优点是,
1)对偶问题往往更容易求解;
2)自然引入核函数,进而推广到非线性分类问题。
原始问题:
引入拉格朗日乘子,我们就可以得到以下拉格朗日函数:
其中,是拉格朗日乘子向量。
所以,为了得到对偶问题的解,需要先求对的极小,再求对的极大。
(1)求
将拉格朗日函数分别对求偏导数并令其等于0.
得到:
将第一个式子代入到拉格子朗日函数,并利用第二个式子,可以得到:
即
(2)接下来我们求对的极大值,即对偶问题
将上面的目标函数由求极大转换成求极小,就得到下面与之等价的对偶最优化问题:
这里引入一个李航《统计学习方法》书中附录C的一个定理
而我们上面提到的原始问题就满足定理C.2的条件。
对线性可分训练数据集,假设对偶最优化问题对的解为,可以由求得原始最优化问题对的解
首先来证明一下这个对偶最优化问题的KTT条件是成立的。
(1)是凸函数
(2)是仿射函数
(3)约束严格可行
是原始问题和对偶问题的解的充要条件是:
满足KTT条件
KTT的对偶互补条件是。
因为,所以。
再根据定理C.3,由此我们可以得到。
所以KKT条件成立。
我们先引出一条定理:
设是对偶最优化问题的解,则存在下标j,使得,并可按下式求得原始最优化问题得解。
接下来我们对这个定理进行证明:
由KTT条件成立,可得
由此可得。
其中至少有一个,对此j有
将代入
可得。
因为,分离超平面可以写成
分类决策函数可以写成
也就是说,分类决策函数只依赖于输入x和训练样本输入的内积。f(x)也叫做线性可分支持向量机的对偶形式。
接下来,介绍一个对偶算法的具体例子。
2.2.6 对偶算法具体例子
训练数据和最大间隔法的例子相同。
根据所给的数据集,对偶问题可以写成
求解这一最优化问题。我们将代入目标函数并记作
对求偏导数并令其为0,可得在点取到极值,但该店不满足约束条件,所以最小值应在边界上取到。
最后求得当,时,取到最小值。
接着算出
分离超平面为:
分类决策函数为:
2.3 软间隔最大化
2.3.1 线性支持向量机
线性可分问题的支持向量机学习方法在对于线性部不可分的数据是不实用的,所以这就需要修改硬间隔最大化,使其成为软间隔最大化。
假设给定一个特征空间上的训练数据集:
,其中
,
我们知道线性不可分意味着某些样本点(xi,yi)不在满足函数间隔大于等于1的约束条件。为了解决这个问题,可以对每个样本点(xi,yi)引进一个松弛变量ξi≥0,使函数间隔加上松弛变量大于等于1。这样约束条件变为
通过上面的约束,我们依然能够找到最大间隔,只不过我们也允许SVM犯错,使得一部分样本进入到间隔内部,同时保证这样的样本最少,而对于绝大多数样本来说被这个最大间隔完美的区分开了。
因此,可以和训练数据集线性可分时一样来考虑训练数据集线性不可分的线性支持向量机学习问题。相应于硬间隔最大化,它称为软间隔最大化。
同时,对于每一个松弛变量ξi,支付一个代价ξi,目标函数由原来的变成,C>0称为惩罚参数,C越大对误分类的惩罚增大,反之惩罚减小。
线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题:
最小化目标函数由两层含义,使尽量小即间隔尽量大,同时使五分类的个数尽量小。
对于给定的线性不可分的训练数据集,通过求解凸二次规划问题,即软间隔最大化得到的分离超平面为
对应的分类决策函数为
。
这称为线性支持向量机。
2.3.2 学习的对偶算法
同硬间隔最大化一样,软间隔最大化也有相应的对偶算法,原始最优化问题的拉格朗日函数是
对偶问题是拉格朗日函数的极大极小问题。首先求该L函数对w,b,ξ 的极小,由
得:
将上式带入拉格朗日函数,得:
再对求α的极大,即得对偶问题:
通过对约束条件进行变换,最终对偶问题是:
设是上述对偶问题的一个解,原始最优化问题的解为w*和b*。接下来求原始最优化问题的解。
原始问题是凸二次规划问题,解满足KKT条件,即得
由
得
再由
若存在α*的一个分量,则:
那么可求得
分离超平面可写为:
最终分类决策函数可写为:
以上是关于第四讲 支持向量机的主要内容,如果未能解决你的问题,请参考以下文章