SVM: 支持向量机

开始准备实习,准备把机器学习相关内容再熟悉一遍,一个学期没动,竟有些生疏了,以前把公式推导的溜溜的,现在好多细节都不清楚了。

本博文主要介绍SVM的原理部分,对具体的公式不做推导,SVM这一部分公式太多了,懒得去写了。。

一、SVM的含义

   SVM(support vector machine)是一种二类分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大化即要求分割平面的距离在不影响准确率的情况下尽可能的大,间隔最大化

有别有感知机,感知机的学习策略是最小化分类误差,因此可能存在多个分类超平面。当数据线性可分时,通过 硬间隔最大化学习一个线性分类器,即线性支持向量机。当训练数据近似线性可分时,通过 软间隔

最大化,也学习一个线性分类器,即线性支持向量机;当数据线性不可分时,通过 使核技巧及软间隔最大化,学习非线性支持向量机。

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

  2.1 线性可分支持向量机

  当训练数据集线性可分时,存在无穷多个分离超平面可将两类数据正确分类,如前文所讲感知机求得的分离超平面不是唯一的,线性可分支持向量机利用间隔最大化求解最优分离超平面,这时,解是唯一的。

学习分离超平面w*x+b = 0 , 相应的分类决策函数为f(x) = sign(w*x+b),称为线性可分支持向量机。

2.2 函数间隔与几何间隔

函数间隔:一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度,距离超平面越远,说明分类正确的确信度越高,反之,确信度低。在超平面w*x+b = 0确定的情况下,|w*x+b|能够表示点x距离分离

超平面的距离,而w*x+b与y的符号是否一致可以表示分类是否正确,所以可以用y(wx+b)来表示分类的正确性及确信度,这就是函数间隔的概念。

几何间隔:函数间隔在某种程度上可以表示 分类预测的正确性及确信度,但是只有它还不够。可以看一下,当w,b同时扩大两倍成为2*w , 2*b,分离超平面不变,但是函数间隔扩大两倍。因此我们需要对函数间隔作一些

约束,如||w|| = 1,使函数间隔是确定的,这里函数间隔变为几何间隔,y(wx+b) / ||w|| 

2.3 间隔最大化

支持向量机的基本方法是求解能够正确划分训练数据并且使几何间隔最大的分离超平面,最直观的理解就是对训练数据找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类,即不仅将正负样本分开,并且

对最难的样本也能以较大的确信度将它们分开 。

 表示 几何间隔,表示函数间隔,

最大间隔分离超平面,即求得一个几何间隔最大的分离超平面。

   

即我们希望最大化超平面关于训练数据集的几何间隔,约束条件表示每个训练数据的几何间隔至少是

根据,我们可以将上式改写函数间隔的形式:

函数间隔的取值并不影响最优解,假设将w,b按比例扩大a倍,函数间隔变为a,函数间隔的这一改变并不影响对上面最优化问题的约束,对目标函数没有影响 ,因此为优化方便我们设 = 1,那么上述优化问题变为

不可导,用替换,不改变优化问题的最优解,故最终的优化问题变为

     等价于   

2.4 支持向量和间隔边界

  SVM的约束取等号时,即

当yi = +1时,支持向量在超平面  

当yi = -1时,支持向量在超平面

  支持向量:在分离超平面上的样本点对应的实例称为支持向量。在决定分离超平面时只有支持向量超作用,而其它实例不超作用,如果移动支持向量将改变最终的分离超平面,但是如果移动间隔之外的其它实例点,甚至去掉

      都不会影响最终解。

     间隔边界:两个分离超平面之间的距离,即H1与H2之间的距离 ,为2/||w||

2.5 SVM的对偶问题

  求解一个凸问题的minmax问题比较难(凸问题有最小值,无法求最大值),我们通常将其转化为对偶问题来求解,即求解maxmin问题。当原问题与对偶问题满足KKT条件 时,对偶问题的解即为原问题的解。这里我们使用对偶问题求解SVM的优化问题。

首先引入拉格朗日乘子构建拉格朗日函数:

当约束满足时,即

那么   价于   

后者取为SVM的对偶问题,这里不介绍如何求解该对偶问题。

二、线性支持向量机与软间隔最大化

有些数据集中有一些异点,阶乘去这些点后,剩下大部分数据是线性可分的,如果用SVM解决这类线性不可分问题呢?线性不可分意味着,有些样本不能满足函数间隔大于等于1的约束条件,为解决这个问题,我们可以引进一个松弛变量,

使函数间隔加上松弛变量大于等于1,

即约束条件变为:

同时,对每个松弛变量,支付一个代价,目标函数变为

C>0,称为惩罚参数,C值大时对误分类的惩罚增大,C变小 时对误分类的惩罚减小,上述的目标函数包含两层意思,使几何间隔尽可能的大,同时使误 分类点的个数尽量小,C是调合二者的系数。

那么,线性不可分的线性支持向量机的学习问题变成 如下凸优化问题:

三、非线性支持向量机与核函数

非线性问题往往不好求解,所以希望能用解线性分类问题的方法解决这个问题,所采用的方法是使用一个非线性变换,将输入 映射到新的特征空间(一般是更高维度),即在低维度下不可分的样本集,

肯定存在某个更高的维度使它可分。将非线性问题转换为线性可分问题。

核技巧就是就是属于这样的方面,核函数满足表示映射函数,即将样本映射到高空间

核函数的一个优点即不需要显式定义,只需要定义K(x,z)即可。

在SVM对偶问题的目标函数是,只涉及到样本 的内积,因此我们可以将目标函数的内积用核函数来替换,此时目标函数变为

 

这等价于经过映射将原来的输入空间变换到一个新的特征空间,将输入空间中的内积变换为特征空间的,在新的特征空间学习线性支持向量机。

 

posted @ 2015-03-13 22:59  dupuleng  阅读(468)  评论(0编辑  收藏  举报