zoukankan      html  css  js  c++  java
  • 斯坦福《机器学习》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)式能够得到,从而根据上一篇文章能够得到分隔超平面用于分类。

  • 相关阅读:
    c# tabcontrol事件以及上下文菜单
    RDBMS架构的开源DW/DSS引擎列表
    spider RPC管理接口
    spider RPC高级特性
    linux TCP: time wait bucket table overflow
    设计一个较好的框架的难点之一--API兼容性的设计
    windows 7/10下安装oracle 10g
    mybatis同时启用mapperscanner和传统DAO
    windows根据端口号找进程
    The POM for XXX:jar:${com.ld.base.service.version} is missing, no dependency information available
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7130313.html
Copyright © 2011-2022 走看看