支持向量机笔记(Support vetctor Machines notes)

    支持向量机是一种二分类算法,CS229notes中称之为最好的监督学习方法之一(among the best “off-the-shelf” supervised learning algorithm),他的基本模型是定义在特征空间上的间隔最大的线性分类器。本博客将从间隔(Margins)开始,对其基本原理进行推导与整理

(ps: 部分****下Latex公式无法转换用图片表示)

函数与几何间隔(Functional margins & Geometric margins)

    支持向量机的最终目标是对给定的数据集找到一条线性分割线(超平面hyperplane),并转化为凸优化问题求解,为了定义数据点与超平面的间隔,首先引入间隔的概念。

支持向量机笔记(Support vetctor Machines notes)

Figure 1

    首先定义函数间隔:

支持向量机笔记(Support vetctor Machines notes)

    其中, y取{-1,+1}用于表示对应数据点的实际分类类型,$w^Tx+b$表示在超平面的某一侧的分离程度,正负号代表在当前超平面的某一侧,从而当y取+1$w^Tx+b$也取正值时,间隔值为正,当y取-1$w^Tx+b$取负值时,间隔值也为正,可以看出,这个值的大小反应了对当前数据点的分离程度。(ps: *w 与b的取值大小不会影响超平面但会影响函数间隔的大小)

   而对数据集的函数间隔表示为:

支持向量机笔记(Support vetctor Machines notes)

   几何间隔:

支持向量机笔记(Support vetctor Machines notes)

Figure 2

    

    w与超平面相垂直,如果A点为支持向量机笔记(Support vetctor Machines notes)图二中AB点距离代表了支持向量机笔记(Support vetctor Machines notes),B点可以推导为:

$$w^T(x^{(i)}-\gamma^{(i)}\frac{w}{||w||})+b=0$$

    解上式3可以推导几何间隔。

    几何间隔代表数据点与超平面的实际距离,定义为:

$$\gamma^{(i)}=y^{(i)}((\frac{w}{||w||})^Tx^{(i)}+\frac{b}{||w||})$$

$$\gamma=\min_{i=1,...,m}\gamma^{(i)}$$

优化方程与拉格朗日对偶

    初步的优化方程:

支持向量机笔记(Support vetctor Machines notes)

    然而,要求解这个优化方程十分困难,它的约束条件中||w||=1保证了函数间隔和几何间隔的一致性,但是具有非凸性,现有的优化技术无法简单求解,所以要对这个问题进行进一步的转化。

    支持向量机笔记(Support vetctor Machines notes)

    此时,我们将优化目标转变成了支持向量机笔记(Support vetctor Machines notes),我们消除了||w||=1的条件,但是实际上这这个优化目标依然具有非凸性

    此时,我们进一步分析,在本式中w和b值倍数的变化不会影响优化结果与超平面,我们可以通过改变w和b来限制$\hat\gamma$值从而使

$$\hat\gamma=1$$

    那么原式优化目标可以转化为1/||w||,同时max1/||w||与min||w||^2效果相同,我们得到了最终可行的优化式子:

支持向量机笔记(Support vetctor Machines notes)


    此时,该优化式可以用二次规划(quadratic programming)求解。

    由于这个问题的特殊结构,还可以通过拉格朗日对偶性(Lagrange Duality)变换到对偶变量 (dual variable) 的优化问题,即通过求解与原问题等价的对偶问题(dual problem)得到原始问题的最优解,这就是线性可分条件下支持向量机的对偶算法,这样做的优点在于:一对偶问题往往更容易求解;二可以自然的引入核函数,进而推广到非线性分类问题。

    现在讨论该优化方程适用该方法的原理。

    首先通过拉格朗日乘子a将上述优化式子转化为:

支持向量机笔记(Support vetctor Machines notes)

    拉格朗日法的思路是,通过求maxL(w,b,a)将原优化问题的约束项消除,即:

$$\max L(w,b,a) = \frac{ 1}{ 2}||w||^2$$

    这是因为,当后式不满足约束条件时,即:

$$y^{(i)}(w^Tx+b)-1<0$$

    而a>=0通过增大a值可以将该方程变为无限大,即无解。

    于是我们得到的:

$$p*=\min \max L(w, b, a)$$

    即优化式, p这里指原式解。

    而拉格朗日法另一个好处是,多数时候改变min与max的顺序将极大简化优化的难度,即求解原问题的对偶问题,但前提要满足一定的条件(KKT方程)

    支持向量机笔记(Support vetctor Machines notes)

    我们不直接更具原式推导KKT方程,而是先探讨对偶问题的求解即:

$$d*=\max \min L(w, b, a)$$

    首先要注意,在求minL(w,b,a)时,我们是固定拉格朗日乘子a,优化w,b求解,此时拉格朗日法的优点便能呈现,要求解minL(w,b,a)我们只需要对w和b求偏导:

    对b:

    $$\frac{\partial}{\partial b}L(w,b,a)= \sum_{ i=1}^{ m}a_iy^{ (i)}=0$$

    对w:

    $$\frac{\partial}{\partial w}L(w,b,a) = w - \sum_{ i=1}^{ m}a_iy^{(i)}x^{(i)}=0$$

    则:

    $$w = \sum_{ i=1}^{ m}a_iy^{(i)}x^{(i)}$$

    于是带入原L(w,b,a)可以转化为:

支持向量机笔记(Support vetctor Machines notes)

    上面说过,要使对偶问题与原问题等价要满足KKT方程,而在此时上式已经满足KKT方程,则对改优化问题求解即可得到原问题解。

    在得到最优解的a值后我们可以通过上面w与a的关系式求解w,而b则需要通过:

    支持向量机笔记(Support vetctor Machines notes)

支持向量

    支持向量机笔记(Support vetctor Machines notes)

    当优化完成并求解后,实线即解的超平面,最小间隔的三个点分别在虚线上,而仅有这三个点对应的拉格朗日乘子a是非0项,即该算法的关键,这三个点被称为支持向量。一般来说,支持向量的个数要远小于数据集数量。


核方法
    值得一提的是,核方法是比支持向量机更为一般的机器学习方法。当输入空间为欧式空间或离散集合、特征空间为希尔伯特空间时,核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积,而通过核技巧可以学习非线性支持向量机。
    *核技巧不仅能够增加运算效率,并且可以将原本不好处理的非线性分类通过变换将原空间的数据映射到新空间(而不必直接分别求映射
$$K(x,z)=\phi (x)^T\phi(z)$$
     关于核技巧有几个要点:
  • 在一般问题中,出现内积(inner product)部分可以转化为核函数,增加效率
  • 核函数是两个映射的积,求解过程中不必直接算出映射。
  • 核函数大小反应的是两个映射空间上的相近程度,约相近核函数结果越大
  • 核函数的使用需要通过验证(具体方法不在本博客提出)

References

[1] Standford CS229 Lecture Notes of Support Vector Machine