zoukankan      html  css  js  c++  java
  • 机器学习之支持向量机

    简述:

    支持向量机(Support Vector Machine,SVM),用中文翻译过来是这样,似乎也没有其他更好的翻译,从名字就可以看得出SVM的关键词即支持向量,支持向量决定了之后的分类面,说到这里,还没有讲,SVM是一种分类器,被普遍认为是表现很优秀的分类器。本文后面介绍都以两类分类为例。

    分类间隔

    在介绍SVM时,首先要提到的就是两个类别的分类间隔,先看分类间隔这个名词,似乎画个图更容易讲,如下图所示,分隔两个类别,可以有多个分类面可以选择,那么我们选择哪个呢?在SVM中要求分类间隔最大,这里考虑到经验风险和结构风险最小的问题,具体我也不展开了。

    那么如何求得这个最大分隔的面呢?首先需要计算分隔距离,假设两个类别:+1和-1类,另外假设已知最佳分类面方程为,那么点到分类面的距离r可以用表示,那么几何距离,那么我们就可以根据最大化分隔面的距离列出如下方程:

    那么接下来,我们就可以用拉格朗日乘子法进行求解了,如下转为:

    定义拉格朗日函数如下:

    根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题

    那么我们先对上面拉格朗日函数对w和b求偏导,如下:

    另上面两个式子为0,那么可以求得w的表达式,代入拉格朗日方程,整理结果如下:

    公式推导到这里,核函数的形式就出现了。

    根据KKT条件上式是可以求解,存在,使得w和b可以求解。

    KKT条件:

    =0

    =0

    那么可以得到

    从w*和b*的表达式中得到,alpha=0的项都为0,w只依赖于alpha>0的样本点,所以对应于alpha>0的样本点称为支持向量。并且支持向量一定在间隔边界上,这个可以从KKT条件中得到。

    那么现在需要做的就是要求解,这个可以由凸二次规划问题解决,但是当样本量很大的时候,这些算法会变得很低效,在1988年Platt提出一种序列最小最优化算法(sequential minimal optimization, SMO)算法。

     

  • 相关阅读:
    Android.mk添加第三方jar包
    关于回调函数
    Ubuntu下GIT服务器的安装与配置
    三星I9100在Ubuntu下用Adb调试
    Android检测网络是否可用和主机是否可达
    keepalived配置文件解析系列之(一)keepalived简介及配置文件介绍
    keepalived配置文件解析系列之(三)配置文件解析过程
    C语言中的位域(bitfield)概念
    popen和变长参数库函数(va_xxx)用法举例及命令执行失败情况探讨
    《深入理解Linux内核》条目式笔记 _3
  • 原文地址:https://www.cnblogs.com/xiamaogeng/p/4461564.html
Copyright © 2011-2022 走看看