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


从上一篇文章可知支持向量(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)式可以得到,从而依据上一篇文章可以得到分隔超平面用于分类。

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

相关内容

    暂无相关文章