解惑SVM

1、SVM的原始优化问题

  分类学习的思想就是基于训练样本集S = {(x1,y1),(x2,y2),......,(xn,yn)},yi=[-1,1]在样本空间中找到一个分类超平面,将不同的样本分开。很多情况下超平面并不唯一,如何选出分类效果最好的超平面?

图1:存在多个分类超平面

  从直观上看,应该找两类样本“正中间”的超平面,即图1红色的那条,该超平面对局部扰动的“容忍”性最好,对未知样本的泛化能力最强。超平面的表达式为: 

ωT+ b =0                           (1)

  对于样本集S中的样本,若yi =+1,则 ωT+ b≥0;若yi =-1,则 ωT+ b<0.令 

 {ωT+ b≥1,    yi =+1     ;   ωT+ b≤-1,   yi =-1   }        (2)                                                                                                   

图2:支持向量与间隔

  如图2,与分类超平面最近的几个数据点为“支持向量”,两异类“支持向量”到超平面的距离之和为:

  L = 2/||ω||

      要找到间隔最大的分类超平面,就是要找到能满足式(2)约束的参数ω和b,使得L最大。

      SVM的原始优化问题为                                                          

这是一个凸二次规划问题,可以用现成的QP solver优化包进行求解。

 

2、原始问题到对偶问题

从凸二次规划的角度来解决,样本的个数、特征的维度均与复杂度相关,若特征维度较大,则该方法的效率极低。可利用拉格朗日对偶性质把问题转化为对偶问题,使得问题复杂度与特征维度无关。

约束优化问题的拉格朗日求解方法

引进广义拉格朗日函数(generalized Lagrange function):

SVM原始问题的拉格朗日函数

然后令:

容易验证,当某个约束条件不满足时,例如,那么显然有(只要令即可)。而当所有约束条件都满足时,则最优值为,亦即最初要最小化的量。

因此,在要求约束条件得到满足的情况下最小化,实际上等价于直接最小化(当然,这里也有约束条件,就是0,i=1,,n)   ,因为如果约束条件没有得到满足,会等于无穷大,自然不会是我们所要求的最小值。

具体写出来,目标函数变成了:

  这里用表示这个问题的最优值,且和最初的问题是等价的。如果直接求解,那么一上来便得面对w和b两个参数,而又是不等式约束,这个求解过程不好做。不妨把最小和最大的位置交换一下,变成:

交换以后的新问题是原始问题的对偶问题,这个新问题的最优值用来表示。而且有,在满足某些条件的情况下,这两者相等,这个时候就可以通过求解对偶问题来间接地求解原始问题。

    换言之,之所以从minmax的原始问题,转化为maxmin的对偶问题,一者因为的近似解,二者,转化为对偶问题后,更容易求解。

    下面可以先求L 对w、b的极小,再求L 对的极大。

 

因此SVM问题的求解就变为如下问题的求解

 对于内部的min问题,令L(w,b,α)对w,b的偏导数为0可得:

代入原式:

再将代入上式化简得:

进一步化简:

SVM的对偶问题形式如下:

       

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 参考:

 

      http://www.duzelong.com/wordpress/201508/archives1491/

http://blog.csdn.net/v_july_v/article/details/7624837

 

posted @ 2016-10-11 16:25  youngshuo  阅读(294)  评论(0)    收藏  举报