支持向量机

本篇文章是我学习SVM的摘抄笔记,其中大量公式抄自JerryLead的同名博客。想拜读精彩的SVM博文,移步至此http://www.cnblogs.com/jerrylead/archive/2011/03/13/1982639.html

 

1、由线性判别模型引出

      Image(72)

假设某一场景的数据集线性可分,那么如何确定一条最优或者次优的模型函数,我们可以通过引入最优间隔这个概念来确定一个性能最优的模型

 

2、函数间隔和几何间隔

给定一个训练样本Image(12),x是特征,y是结果标签。i表示第i个样本。我们定义函数间隔如下:

      Image(73)

Image(74)=1时,其函数间隔Image(13)大于等于0,当=-1时,仍大于等于0。函数间隔表示出特征是正例还是反例的确信度。为了确定一个唯一的间隔距离,需要对函数间隔公式归一化,引入单位向量Image(75),得到

    Image(76)

    Image(77)

我们需要通过设定||w|| = 1来固定参数序列Image(78), 那么对于所有的训练样本,定义出全局最小几何间隔

    Image(79)

 

3、最优间隔分类器

寻找一个超平面,使得离超平面比较近的点能有更大的几何间隔。形式化的表示为

    Image(80)

由于||w||=1不是凸函数,不好优化,通过几何间隔和函数间隔的关系Image(81),我们改写一下上面的式子:

    Image(82)

此时的w不受||w||=1的约束,不能求得w和b的确定值,所以需要使Image(83)固定全局函数间隔,那么几何间隔Image(84),并希望把目标函数变为可优化的凸函数,由于求Image(85)的最大值相当于求Image(86)的最小值,所以上式可变性为

    Image(87)

那么得出目标函数是二次函数,约束条件是线性函数的可进行二次规划的形式化问题

 

4、拉格朗日对偶

对有二次目标函数线性约束的问题,通常采用拉格朗日对偶问题的求解得到原始问题的最优解,那么我们先给出其拉格朗日表述形式

对于原始问题

    Image(88)

通过带入拉格朗日算子Image(89)的到优化公式

    Image(90)

通过以上变换我们将有约束的原始问题变为无约束的对偶问题,然后对对偶问题求解

      Image(91)

为了套用公式,我们需将约束条件变为

     Image(92)

带入拉格朗日公式为

     Image(93)

注意到这里只有Image(14)没有Image(94)是因为原问题中没有等式约束,只有不等式约束。

 

5、求解

我们需要固定求参数w,b的极值,对w,b求偏导数,并使其偏导数等于0,则

   Image(95)

    Image(96)

能得到w关于的等式

    Image(97)

我们将上式代入拉格朗日函数,能求得函数的最小值,代入化简为

   Image(98)

我们得到只关于的拉格朗日算式,这样求的就能求得w和b,向量的长度等于样本的数量,其中Image(99)可以表示为Image(100)这种内积的形式,进一步求极大化

Image(101)

 

6、最大软间隔

实际上的数据场景并不如我们想象的那么理想,当比如图形有离群点(噪声),那么支持向量机就会考虑噪声点得到一个小间隔的线性模型,甚至可能找不一条线性可分的模型。我们通过最大软间隔模型来优化此场景下的模型。

最大软间隔的定义是允许一些点游离并在在模型中违背限制条件(函数间隔大于1),引入非负参数Image(102)(称为松弛变量),就允许某些样本点的函数间隔小于1。如果任意大的话,那所有的超平面都是符合条件的了。所以,在原来的目标函数后面加上一项,使得其总和也要最小:

原来的约束条件变为

     Image(103)

其中C是一个预先定义好的常量,叫惩罚因子,代表对误差的宽容度,C越大,说明你越不能容忍出现误差,因为C越大意味着最小化的目标函数越大,使得最终间隔变小。

代入拉格朗日函数为

Image

分别对w,b求导,最终得到

Image(15)

 

7、核函数

如果要解决的数据环境线性并不可分,需要使用核函数技巧

我们可以将原空间变换成一个更高维的空间,在这个高维的线性空间下,再用一个超平面进行划分。

<x_i,x_j> 映射到 <\Phi(x_i),\Phi(x_j)>

假设模型是多项式分布的,我们可将

x_1+x_2+x_1^2+x_2^2+c=0 变换为  c_1+c_2+c_3+c_4+c=0

这样就把输入空间从二维向四维映射后,样本由线性不可分变成了线性可分,但是特征的维度变高了,计算难度加大,泛化能力降低(适应数据的能力)。

所以我们希望有一种函数方法可以近似的直接求得<\Phi(x_i),\Phi(x_j)>的方法来简化暴增的维数带来的复杂计算, 线性核函数如下

    Image(104)

引入核函数概念的好处是,直接对核函数求值不会比线性空间增加过多额外的计算负担

    Image(105)

posted on 2012-12-12 16:57  张淼  阅读(394)  评论(0编辑  收藏  举报