zoukankan      html  css  js  c++  java
  • 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

     

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





  • 相关阅读:
    Struts2【UI标签、数据回显、资源国际化】
    Struts2【配置】知识要点
    Struts2与Spring整合
    Struts2入门这一篇就够了
    Hibernate最全面试题
    Hibernate【查询、连接池、逆向工程】
    Hibernate【缓存】知识要点
    Hibernate【inverse和cascade属性】知识要点
    输入法设置,SublimeTest,putty掉线
    Hibernate【映射】知识要点
  • 原文地址:https://www.cnblogs.com/porco/p/4612062.html
Copyright © 2011-2022 走看看