码迷,mamicode.com
首页 > 其他好文 > 详细

斯坦福《机器学习》Lesson8感想-------1、SMO

时间:2015-08-06 15:07:32      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:

从上一篇文章可知支持向量(supervector)就是指的离分隔超平面最近的那些点。整个SVM最需要的步骤是训练分类器,得到alpha,从而得到整个用于数据分类的分隔超平面。支持向量机(super vector machine,SVM)的一般应用流程如下:

(1)      收集数据:可以使用任意方法

(2)      准备数据:需要数值型数据

(3)      分析数据:有助于可视化分隔超平面

(4)      训练算法:SVM的大部分时间源自训练,该过程主要实现两个参数的调优

(5)      测试算法:十分简单的计算过程就可以实现

(6)      使用算法:几乎所有分类问题都可以使用SVM。SVM本身就是一个二类分类器,对多类问题应用SVM需要对代码做一些修改

为了减少SVM的训练时间,提高效率,引入了序列最小化(Sequential Minimal Optimizaton,SMO)算法。SMO算法是将大优化问题分解为多个小优化问题来求解的。这些小优化问题往往很容易求解,并且对它们进行顺序求解的结果与将它们作为整体求解的结果一致。

SMO的工作原理是基于Coordinate ascent算法的。

1、  Coordinate ascent

假设优化问题为:

技术分享

我们依次选择其中一个参数,对这个参数进行优化,会使得W函数增长最快。

技术分享

用图1可以表示整个过程。

技术分享

图1

 

2、  SMO

SMO算法就是在每次循环中选择两个参数进行处理,比Coordinate Ascent里多一个参数。

从上一篇文章可知优化问题表示为:

技术分享

从(19)式中可知

技术分享

技术分享

这样子可以看出,选择出一个参数,不改变其他的参数,这个参数也不会随之改变,因此也就达不到优化的目的。所以SMO算法就是选择两个参数来进行优化。

技术分享

将结果用参数代替得

技术分享

因此可以用图2来表达(20)式

技术分享

图2

从图2中可以看出,技术分享,从(20)式中,可以推导出

技术分享

因此可知

技术分享

将作为常数技术分享,其余两个参数的优化可表示为

技术分享

再根据(20)式可以得到技术分享,从而依据上一篇文章可以得到分隔超平面用于分类。

版权声明:本文为博主原创文章,未经博主允许不得转载。

斯坦福《机器学习》Lesson8感想-------1、SMO

标签:

原文地址:http://blog.csdn.net/adeleamily/article/details/47315985

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!