1.硬间隔支持向量机
支持向量机(SVM)是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大。以此超平面作为分类间隔。实现分类
如何找到这个超平面呢?以二维平面为例
图中红线就是我们要找的超平面。也就是有很多的待选超平面,
是最优超平面。最优的超平面
满足条件:两个类别中的样本到的
最小距离是样本到其他待选超平面(
)的最小距离的最大值。这样就能满足间隔最大,分类器的泛化能力就强。
我们把到超平面距离最小的样本点连接起来,就形成了支持向量(图中的绿线)。
现在的问题是我们如何拟合出超平面。我们该如何得出目标函数呢?如果我们直接根据定义去写目标函数,会发现函数是不好写的。
我们要试着去挖掘隐含信息。看图。假设我们找到了最优超平面(图中红线),和支撑向量(图中绿线)。设最优超平面的表达式为 很显然支持向量是和超平面平行的。所以设支持向量的表达式分别为
我们稍微把表达式变一下形。表达式左右同时除以d。得到三个表达式分别为
由于 三个都是变量。所以三个表达式又等价于
现在图形变成如下情况
由于绿线和红线是平行的,所以我们可以直接得到两条线之间的距离为 。绿线是支持向量所以
也就是样本点到超平面的最小距离。
现在可以发现样本点到超平面的最小距离为一个只与 (表示w向量的二范式)有关。并且最小距离为
(这一步最为关键,这个就是我们要找的隐含信息)。
表示样本点到所有待选超平面的最小距离的集合。那么现在就方便多了。我们就能根据定义去写目标函数了。
根据定义可知我们的目标是让 最大,也就是求
。但是这样是解不出w的值的。所以还需要更多的条件。
想一想 有什么约束?因为
表示样本点到所有待选超平面的最小距离。所以我们可以得到对于超平面上方样本到超平面距离
同理对于下方样本
(其中
表示样本点到超平面的距离。)
我们对上式进行整理得到 其中
表示样本的特征
表示样本的类别 (取值 1和-1 表示不同的两个类别)。
也就是现在我们的目标是求在约束条件 下
。
等价于
而为了求导方便我们的目标函数选用
。 即
这不就是一个典型的拉格朗日乘子法问题吗。
写出拉格朗日函数
其中的 为拉格朗日乘子。求出拉格朗日对偶问题关于W和b的最小值。
得到
然后把等式带入
得到
下面是推导过程 (摘至http://www.cnblogs.com/wangduo/p/5337466.html)
我们现在就得到了拉格朗日函数的对偶问题 这里求解a需要用到一个SMO算法。
然后将a带入 。求解W ,b。
此时我们就得到了拉格朗日对偶函数的最优值处的最优解 (W,b,a)。但是如果要让拉格朗日对偶函数的最优解与原函数相同那么最优解还要满足一个条件即 。
好了现在我们就已经求出了最优值了。同时得到了拟合曲线 (各个变量都已知)。这种svm就叫做硬间隔支持向量机。也就是说在训练数据的时候,在支持向量与目标超平面之间的空隙中不允许出现样本点。而下面介绍的软间隔支持向量机是允许出现少量样本点的。
2.软间隔支持向量机
软间隔支持向量机就如下面的情况
也就是允许在支持向量与超平面之间出现样本点
而现在我们又该如何去拟合我们的目标超平面呢。在硬间隔支持向量中我们得到了这一个约束条件
这个表示所有样本点到超平面的距离是大于等于 的,而现在我们允许某几个样本可以不满足这个条件也就是存在一个松弛值。
现在我们的约束条件就是这种情况了。 。因为
是一个变量,所以这个式子是与
等价的。
其中 表示每一个样本的浮动值。在上图中我们要求红色的样本点的
都大于0.而其他的样本点的
都是等于零的。那么我们该如何实现这一个目标呢?
我们可以在目标函数中增加一个惩罚项即
其中的 C 是一个需要我们给定的超参数。C值越小出现在支持向量与最优超平面的样本点就越少,反之就越多。在目标函数中加入惩罚性的原因以及效果的原理是很简单的我也就不多说了。
接下来我们开始用拉格朗日乘子法去解这一个新的目标函数
得到新的对偶函数 可以看出这与硬间隔支持向量机的区别在于
这一个条件.
3.高斯核函数
假如现在我们的数据集是线性不可分的比如如下情况
数据点在二维的情况是线性不可分的。但是如果我们把数据映射到三维,现在在三维空间中就是线性可分的。假设上图的映射关系是 。但是在实际情况中映射关系是很难确定的。
那么我们可以把这个映射过程看作是一个黑盒子。
先看一看什么是高斯核函数 我们对其做一下变型。为了描述简单,我们令高斯核中的分母为1.
在此我们可以得到一个映射关系 其中的x是一个向量。
在 中。 X就是 (x,y) 。把(x,y)通过
映射后我们发现可以得到一个无穷维的特征空间。(特征在这个空间中一定是线性可分的)。
但是我们是无法计算这个无穷维的特征的。
我们观察svm的目标函数 发现我们需要的是
的乘积的结果。
具体的值我们不需要知道。再回头看看高斯核函数
。我们只需直接算
的值就可以了。接下来的计算过程就和前面一样了。