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

     

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





  • 相关阅读:
    拦截器和过滤器区别
    sql语句查询出数据重复,取唯一数据
    bootstrap ace treeview树表
    bootstrap 时间选择器 datetime
    ajax请求后加额外的数据
    使用ajax请求,模态框调用并更改密码
    ajax get和post请求 后端接收并返回数据
    类的访问级别
    继承与组合
    类型转换函数
  • 原文地址:https://www.cnblogs.com/porco/p/4612062.html
Copyright © 2011-2022 走看看