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

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

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

来自为知笔记(Wiz)

时间: 2024-11-06 20:59:27

SMO要点总结的相关文章

关于SVM数学细节逻辑的个人理解(三) :SMO算法理解

第三部分:SMO算法的个人理解 接下来的这部分我觉得是最难理解的?而且计算也是最难得,就是SMO算法. SMO算法就是帮助我们求解: s.t.   这个优化问题的. 虽然这个优化问题只剩下了α这一个变量,但是别忘了α是一个向量,有m个αi等着我们去优化,所以还是很麻烦,所以大神提出了SMO算法来解决这个优化问题. 关于SMO最好的资料还是论文<Sequential Minimal Optimization A Fast Algorithm for Training Support Vector

javascript必须知道的知识要点(二)

该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容. 内建对象可划分为数据封装类对象.工具类对象.错误类对象,如下. 数据封装类对象: Number对象 String对象 Boolean对象 Array对象 Object Function 工具类对象: Math对象 Date对象 RegExp对象 错误类对象: Error对象  Number对象 JavaScript 只有一种数字类型.Number,包括

ZooKeeper架构设计及其应用要点

ZooKeeper是一个开源的分布式服务框架,它是Apache Hadoop项目的一个子项目,主要用来解决分布式应用场景中存在的一些问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置管理等,它支持Standalone模式和分布式模式,在分布式模式下,能够为分布式应用提供高性能和可靠地协调服务,而且使用ZooKeeper可以大大简化分布式协调服务的实现,为开发分布式应用极大地降低了成本. 总体架构 ZooKeeper分布式协调服务框架的总体架构,如图所示: ZooKeeper集群由一组

XHTML学习要点

目标 掌握XHTML语法,能正确书写出符合规则的文档. 要点 基本概念,与HTML有什么不一样 基本语法规则: XHTML 文档必须拥有一个根元素 标签名.属性名称必须小写 属性值必须加引号 属性不能简写 !DOCTYPE不可缺少 不允许空标签,<hr> , <br> 和 <img>应被替换为<hr />, <br /> 和 <img />. 除!DOCTYPE外,其他标签必须要被关闭. 非空标签必须使用结束标签. 空标签也必须被关闭

如何编写更棒的代码:11个核心要点

作为一个合格的程序员,有太多的理由促使你去编写干净利落且可读性强的代码.最重要的是因为你编写的代码,将来会有很多人一次次地阅读.当你有一天回过头来看自己的代码时,你就会明白编写优雅的代码是多么的重要.另外,如果别人来阅读你编写的代码,你是否想知道别人看到那些烂代码无比抓狂的感受.因此,花多一点的时间去编写优雅的代码,将来说不定会给你节省更多的时间. 那么,如何编写更棒的代码,下面是11条基本规则: 1.保持方法简短扼要 2.永远永远不要将同一个变量用于不同的目的 3.尽可能让变量和方法的名称能够

7月10日到7月15日技术积累要点

总结过去一周技术积累要点: Environment.NewLine(换行): string.Concat()的时间复杂度低于+=: 单元测试的规则: 创建日志的规则(LoggerFactory.CreateLog): IDE工具调试改值的技巧升级: Json序列化和反序列化使用升级: Mapper.CreateMap()的使用升级: string.Split()的使用升级: float.TryParse()的使用升级: float.Parse()的使用升级: WCF服务的使用开发流程: 调试技巧

H3C子接口配置要点及实例说明

 类型一:以太网子接口配置要点(单臂路由) 第一步:在路由器对端的交换机上配置好vlan信息(如vlan10/vlan20) 第二步:将交换机上与路由器直接相连的以太口配置成trunk口并同意全部vlan信息通过. 第三步:进入路由器以太口的子接口如ethernet0/0/0.10和ethernet0/0/0.20 第四步:配置好该子接口的ip地址,一般配置成相应vlan网关ip地址 第五步:为该子接口封装802.1q协议并指明该子接口相应vlan的vid 比如:[Huawei-Ethern

游戏UI设计要点——你抓住玩家的心了吗?

游戏美术行情在线        游戏UI设计的好坏决定了你和玩家之间的关系,到底是初次相遇的美好呢还是"山无棱天地合乃敢与君绝"?       那么要做一名具有出色"撩妹"技巧的UI设计师,就要抓住游戏UI设计的要点,这样才能抓住玩家的心嘛!今天就跟大家聊聊游戏UI的撩妹哦不设计要点. 话说"士为知己者死,女为悦己者容",那么如何才能成功地引起对方的注意呢?这就必须有个互动的过程啦,这个过程通俗点说的呢就是"撩妹".     

深度学习:从头设计一个TensorFlow3一样的新一代深度学习系统,到底需要把握哪些要点?

深度学习工具潮流滚滚,各种工具层出不穷.也有各种文章从易用性,可移植性,灵活性和效率方面对于各个系统进行比较.这篇文章希望从系统设计上面来讲来回答这个讨论这个问题:如果想到从头设计一个TensorFlow3一样的新一代深度学习系统,到底需要把握哪些要点. 计算单元:从layer abstraction到operator 大家熟悉的第一代深度学习系统,以cuda-convnet21和caffe为代表.这些系统主要的一大特点是提出了一个以深度学习计算层次layer为基本单元的计算单位.不同的laye