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


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

    (1)      收集数据:能够使用随意方法

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

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

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

    (5)      測试算法:十分简单的计算过程就能够实现

    (6)      使用算法:差点儿全部分类问题都能够使用SVM。SVM本身就是一个二类分类器。对多类问题应用SVM须要对代码做一些改动

    为了降低SVM的训练时间,提高效率。引入了序列最小化(Sequential Minimal Optimizaton,SMO)算法。SMO算法是将大优化问题分解为多个小优化问题来求解的。

    这些小优化问题往往非常easy求解。而且对它们进行顺序求解的结果与将它们作为总体求解的结果一致。

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

    1、  Coordinate ascent

    如果优化问题为:


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

    用图1能够表示整个过程。


    图1

     

    2、  SMO

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

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


    从(19)式中可知



    这样子能够看出。选择出一个參数。不改变其它的參数,这个參数也不会随之改变。因此也就达不到优化的目的。

    所以SMO算法就是选择两个參数来进行优化。


    将结果用參数取代得


    因此能够用图2来表达(20)式


    图2

    从图2中能够看出。。从(20)式中,能够推导出

    因此可知


    将作为常数,其余两个參数的优化可表示为


    再根据(20)式能够得到,从而根据上一篇文章能够得到分隔超平面用于分类。

  • 相关阅读:
    运维人员如何最大限度避免误删除文件
    制作U盘启动安装CentOS Linux系统
    VMware克隆虚拟机后无法启动网卡
    由SecureCRT命令行快捷键谈学习思想
    SecureCRT同时发送命令到所有主机
    Linux下rz/sz安装及使用方法
    Linux下seq的使用
    linux tail命令的使用方法详解
    删除一个目录下的所有文件,但保留一个指定文件
    java基础知识回顾之java Thread类学习(十一)--join方法的理解
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7130313.html
Copyright © 2020-2023  润新知