SMO要点总结

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

 

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





posted @ 2015-06-30 23:04  porco  阅读(442)  评论(0编辑  收藏  举报