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异号

y1,y2同号

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

注意:

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

当等于0时,原式变成一元一次式,在L或H处去的最小(>0时,函数单调降,取H,否则取L);

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

得到新的a2后,计算a1

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

如果为unbound,更新b为

如果为unbound,更新b为

如果两者都为bound

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

SMO要点总结的更多相关文章

  1. C++常见笔试面试要点以及常见问题

    1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...

  2. 《高性能javascript》一书要点和延伸(上)

    前些天收到了HTML5中国送来的<高性能javascript>一书,便打算将其做为假期消遣,顺便也写篇文章记录下书中一些要点. 个人觉得本书很值得中低级别的前端朋友阅读,会有很多意想不到的 ...

  3. [php]laravel框架容器管理的一些要点

    本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点.文章很长,但是内容应该很有用,希望有需要的朋友能看到.php经验有限,不到位的地方,欢迎帮忙指正. ...

  4. 基础笔记(一):C#编程要点

    前言 来源于手中日常摘录的资料和书籍,算是对看过的东西的总结,部分注有阅读心得,也有部分只提出大纲或结论.(备注:本篇文章中大部分要点需要有实际的开发经验,有助于阅读理解.)     目录 const ...

  5. CORS基础要点:关于dataType、contentType、withCredentials

    事实上,面试时我喜欢问跨域,因为多数开发者都知道它并且常用,而我希望能从面试者的回答中知道他在这个问题的深入程度,进一步看看面试者研究问题的思维方式及钻研精神,然而确实难到了很多人,当然这也不是面试通 ...

  6. 漫谈C++:良好的编程习惯与编程要点

    以良好的方式编写C++ class 假设现在我们要实现一个复数类complex,在类的实现过程中探索良好的编程习惯. ① Header(头文件)中的防卫式声明 complex.h: # ifndef ...

  7. 机器学习——支持向量机(SVM)之Platt SMO算法

    Platt SMO算法是通过一个外循环来选择第一个alpha值的,并且其选择过程会在两种方式之间进行交替: 一种方式是在所有数据集上进行单遍扫描,另一种方式则是在非边界alpha中实现单遍扫描. 所谓 ...

  8. 机器学习——支持向量机(SVM)之拉格朗日乘子法,KKT条件以及简化版SMO算法分析

    SVM有很多实现,现在只关注其中最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法,然后介绍如何使用一种核函数(kernel)的方式将SVM ...

  9. 推荐Linux管理员不可不知十大PHP安全要点 - SCutePHP

    PHP是使用最广泛的脚本编程语言之一.市场份额颇能说明其主导地位.PHP 7已推出,这个事实让这种编程语言对当前的开发人员来说更具吸引力.尽管出现了一些变化,但是许多开发人员对PHP的未来持怀疑态度. ...

随机推荐

  1. UVA 816 Abbott’s Revenge

    bfs求最短路,递归打印最短路的具体路径: 难点: 当前状态和转弯方式很复杂,要仔细处理: 递归打印:用一个数组存储路径中结点的前一个节点,递归查找 (bfs无法确定下一个结点,但对于没一个结点,它的 ...

  2. ADO.NET帮助类DBHelper

    一. DBHelper帮助类 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  3. C#调用API函数EnumWindows枚举窗口的方法

    原文 http://blog.csdn.net/dengta_snowwhite/article/details/6067928 与C++不同,C#调用API函数需要引入.dll文件,步骤如下: 1. ...

  4. grok 正则解析日志例子<1>

    <pre name="code" class="html">下面是日志的样子 55.3.244.1 GET /index.html 15824 0. ...

  5. haproxy hdr和path

    path : string This extracts the request's URL path, which starts at the first slash and ends before ...

  6. GPS功能:百度路书自定义【轨迹回放】

    如题所述:百度的编辑界面很直观,修改后就可以运行,地址:http://developer.baidu.com/map/jsdemo.htm#c2_8: 因为同事研究了一下午结果都没搞出来,他copy百 ...

  7. Aix5~6小机运维

    1,0516-787 extendlv: Maximum allocation for logical volume hd3        is 512 smitt chlv改max logical ...

  8. CSS3重点总结

    CSS3重点总结(1)兄弟选择器:2种:+. ~ 1.相邻兄弟选择器(+):选择器1+选择器2 选择"选择器1"相邻的后一个兄弟"选择器2" 强调:选中的是自己 ...

  9. sql server中将一个表中的部分数据插入到另一个表中

    可以通过存储过程完成,也可以通过在库名上右击“新建查询”执行.语句其实基本相同. 1. 存储过程: CREATE PROCEDURE pro1 as insert into tableB (field ...

  10. SQL语句优化(转摘)

    (1) 选择最有效率的表名顺序(只在基于规则的seo/' target='_blank'>优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最 ...