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

SMO要点总结

时间:2015-06-30 23:28:39      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

SMO要点总结:

SMO使用坐标上升的方法,求解SVM的最优解。和原始坐标上升方法的不同点在于:

1.       由于SVM的限制条件 技术分享,所以不能只使用一个坐标,改为更新两个

2.       采用启发式方法,找到每次更新的坐标,而不是按顺序来

 

SMO的终止条件即,所有参数都符合KKT条件:

技术分享     对应在margin以外的点

技术分享 对应在margin上的点

技术分享     对应在margin内的点

其中技术分享 

所以在伪代码中,使用如下代码判断,是否违反KKT条件

技术分享

对于技术分享 的点,应该有技术分享,即技术分享,若起小于0,则判定为违反KKT条件;同样,对于技术分享的点,判定大于0为违反KKT条件

当所有点都没有违反KKT条件时,说明已经达到最优解

 

当选定第一个更新坐标技术分享后,根据以下规则选择技术分享

1.       首先在unbound技术分享)点中,选择使技术分享最大的技术分享

2.       1失败,按随机顺序从unbound技术分享)点中开始尝试

3.       2失败,随机顺序从所有点尝试

 

更新技术分享,技术分享时,可以计算得到技术分享的解析解,按以下公式更新:

技术分享

由于a取值范围有限定,所以需要判断解析解是否在范围内

y1,y2异号

技术分享

y1y2同号

技术分享

当新的a超过范围时,需要替换成对应的上下界

技术分享

注意:技术分享

当是个大于0的数字,用以上公式更新$\alpha_2$;

当等于0时,原式变成一元一次式,LH处去的最小(技术分享>0时,函数单调降,取H,否则取L

当小于0时,原式轮廓类似与$y=-x^2+1$,L和H谁离中间线(即技术分享)远,谁取得最小値

得到新的a2后,计算a1

技术分享

 

更新玩a后,接着需要更新 b

如果技术分享unbound,更新b

技术分享

如果技术分享unbound,更新b

技术分享

如果两者都为bound

技术分享

 

最后更新每个点上的错误(考虑到只变化了技术分享

技术分享

技术分享

技术分享

技术分享





SMO要点总结

标签:

原文地址:http://www.cnblogs.com/porco/p/4612062.html

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