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

图1:存在多个分类超平面
从直观上看,应该找两类样本“正中间”的超平面,即图1红色的那条,该超平面对局部扰动的“容忍”性最好,对未知样本的泛化能力最强。超平面的表达式为:
ωTx + b =0 (1)
对于样本集S中的样本,若yi =+1,则 ωTx + b≥0;若yi =-1,则 ωTx + b<0.令
{ωTx + b≥1, yi =+1 ; ωTx + 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

浙公网安备 33010602011771号