标签:
从上一篇文章可知支持向量(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