您的位置:首页 > 其它

SVM入门(2)--对偶

2017-08-30 23:22 218 查看
SVM入门(1)–优化目标的来龙去脉 我们已经知道目标函数:



对于这样的凸二次规划问题有现成的优化包可进行求解。此外,这个问题有它的特殊结构,通过 Lagrange Duality 变换到对偶变量 (dual variable) 的优化问题之后,可以找到一种更加有效的方法来进行求解。这种方法比直接使用通用的 QP 优化包进行优化要高效得多。

那么,什么是拉格朗日对偶性?简单来说,通过给每一个约束条件加上一个拉格朗日乘子α,定义拉格朗日函数:

ι(w,b,α)=12||w||2−∑ni=1αi(yi(wTxi+b)−1)

然后令:

θ(w)=maxαiι(w,b,α)

容易验证,当某个约束条件不满足时,例如yi(wTxi+b)<1,那么显然有θ(w)=∞(只要令αi=∞即可)。而当所有约束条件都满足时,则有 θ(w)=12||w||2,亦即最初要最小的量。

因此,在要求约束条件得到满足的情况下最小化12||w||2,实际上等价于直接最小化θ(w)(当然,这里也有约束条件,就是αi≥0,i=1,...,n),因为如果约束条件没有得到满足,θ(w)会等于无穷大,自然不会是我们所要求的最小值。 具体写出来,目标函数变成了:

minw,bθ(w)=minw,bmaxαi≥0ι(w,b,α)=p∗

这里用p∗表示这个问题的最优值,这个问题和我们最初的问题是等价的。不过,现在我们来把最小和最大的位置交换一下:

maxαi≥0minw,bι(w,b,α)=b∗

当然,交换以后的问题不再等价于原问题,这个新问题的最优值用d∗来表示。并,我们有 d∗\lep∗,这在直观上也不难理解,最大值中最小的一个总也比最小值中最大的一个要大吧! :) 总之,第二个问题的最优值 在这里提供了一个第一个问题的最优值 的一个下界,在满足某些条件的情况下,这两者相等,这个时候我们就可以通过求解第二个问题来间接地求解第一个问题。具体来说,就是要满足 KKT 条件,这里暂且先略过不说,直接给结论:我们这里的问题是满足 KKT 条件的,因此现在我们便转化为求解第二个问题。

首先要让ι 关于w 和b 最小化,我们分别令 διδw和διδb 等于零:



代回ι得到:



此时我们得到关于 dual variable α 的优化问题:



可以通过SMO算法求解对偶问题中的αi,从而根据:





即可求出w,b.(b的计算怎么得到的?离超平面最近的正的函数间隔要等于离超平面最近的负的函数间隔。这样就知道怎么得到的了吧?)。最终得到分离超平面和分离决策函数。

但目前为止,基本上使用SVM来解决线性可分的场景没有什么问题了。那么,对线性不可分的场景要怎么处理呢?下一篇将开始将SVM推广到非线性分类问题。

参考文献:

1、http://blog.pluskid.org/?page_id=683

2、http://www.blogjava.net/zhenandaci/category/31868.html?Show=All

3、http://www.cnblogs.com/jerrylead/archive/2011/03/13/1982684.html

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

5、A User’s Guide to Support Vector Machines

6、机器学习实战

7、统计学习方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SVM 对偶