码迷,mamicode.com
首页 > 其他好文 > 详细

支持向量机(SVM)

时间:2015-02-14 12:14:27      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

断断续续看了好多天,赶紧补上坑。

感谢july大神的 http://blog.csdn.net/v_july_v/article/details/7624837/

以及CSDN上淘的比较正规的SMO模板代码。

 

①最大化几何间隔。

如果数据能一道线切开的话,我们希望离这道线最近的点的距离越长越好,否则容易分类错误,这就是SVM的核心。

定义函数间隔di=ywxi+b),其中y=1 or -1,问题在于2*didi是等效的分隔平面,所以弃之。

所以又定义几何距离D=d/||w||||w||=根号(w1^2+w2^2+...wn^2)

目标函数max D,约束条件di=ywxi+b)>=d, 这里的d是取最小的函数间隔,保证离分割平面最近,且最大化距离。

 

化简处理:令w’=w/d, b’=b/d, 这样约束条件等式相当于两边被除了d,变成di=yw’xi+b)>=1,

D也相当于变成1/||w||,为了方便,以后w’全部用w代替。

di=ywxi+b)>=1, 这是个有趣的式子,由于y=±1,单独取出(wxi+b),那么±1的就是传说中里分隔平面最近的点了,称之为支持向量。

 技术分享

 

②探究规划问题

目标函数=max D=max 1/||w||,分式好讨厌,等效成min技术分享 (数学原理不知道是啥==

然后引入拉格朗日乘子α,把目标函数、约束条件捆在一起成一个式子。

这样有新的目标函数:技术分享

这个式子很容易被误解,它的max针对的是技术分享

min针对的是技术分享,注意看min/max底部,不要很矛盾地理解成对整个式子。

max部分是重点,引入变量α,成为拉格朗日乘子。max这部分的意义在于等效约束条件,

由于ywxi+b)>=1,如果出现小于1的情况,那么减去的这部分就是一个负数,负负得正,会使前面的min黯然失色。至于大于1的情况,可以令α=0 踢掉它。

最理想的情况下,技术分享=min 技术分享

然而这个式子还是比较麻烦的,min规划是先决条件,然后还要考虑不定的乘子部分。

利用拉格朗日对偶性大法,逆转下两个条件,变成对偶规划问题。技术分享,要满足KKT条件,就有d*<=p*

KKT条件说白了就是0<=α<=C. (define C 100)

这样就可以先定住maxmin,最后再求max了。

 

③大道至简

min部分化简很神奇,最后wb不见了,变成了

 技术分享

加上max以及min部分的约束条件之后

技术分享

 

max部分由SMO算法完成,SMO每次抽取确定两个乘子,然后更新wb

更新w

 技术分享

更新b

技术分享

 

支持向量机(SVM)

标签:

原文地址:http://www.cnblogs.com/neopenx/p/4291420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!