作者:桂。

时间:2017-05-13  21:52:14

链接:http://www.cnblogs.com/xingshansi/p/6850684.html


前言

主要记录SVM的相关知识,参考的是李航的《统计学习方法》,最后的SMO优化算法(Sequential minimal optimization)是二次规划的优化算法,不涉及整体思路的理解,这里打算跳过,以后用到了再来回顾。

一、线性可分支撑向量机

  A-问题分析

不同于感知器Perceptron,SVM希望所有点到分离面的最小距离最大化,而距离分离面最近的样本点就是支撑向量(support vector):

样本点到分离面的距离:

定义最小间隔:

最小间隔最大化就是如下的优化问题:

=,则优化问题改写为:

事实上的取值不影响最终的最优解,进一步转化优化问题:

这就成了一个凸二次规划(convex quadratic programming)问题了,满足凸优化的形式,可以借助对偶简化求解。

引进拉格朗日乘子

原始问题为极小极大问题,转化问对偶就是极大极小问题:

先极小求解,上述优化问题可以简化为:

根据KKT条件,上述解对应原问题的解:

从而完成求解。

    B-算法步骤

  C-应用举例

只不过这里不是求解感知器,而是SVM。

第一步:对偶问题求解

求出的最优解(a1,a2)是,但a2 = -1不满足约束a2>=0,所以最小值在边界取得。

第二步:计算w与b

=1/4*[3, 3]*1+1/4*[1, 1]*(-1)=[1/2, 1/2]

=-2

第三步:得出分离决策面

二、线性不可分情况

  A-问题分析

其实它是对线性可分的推广,对线性可分的情况仍然适用。对于线性不可分的解决办法就是引入松弛变量,也就是加入了误差扰动:

引入松弛变量优化时考虑两方面:1)最小距离尽可能大; 2)误分类点个数尽量小。得出新的准则函数:

仍然借助对偶问题求解(剩下的思路与线性可分问题的求解思路完全一致):

进一步得到原始问题的解:

从而完成求解。

  B-准则函数补充

因为超平面都是可以伸缩的,假设全部正确分类:

最小间隔:

这是硬间隔,但实际中可能不能完全线性分开:

这个时候就是软间隔,即允许部分数据不满足:

当然最大化间隔时,希望不满足条件的样本点数尽可能小,给出准则函数:

其中是0/1损失函数,用来定义不满足条件的样本数:

但是非凸、非连续,可以近似替代处理:

常用替代方式有三类:

如果采用hinge损失,损失函数转化为:

定义为松弛变量,上式等价为:

这个就是线性不可分时的准则函数了。最后回头看看近似与之间的关系:

  C-算法步骤

给出线性支撑向量机学习算法:

三、非线性情况

关于核函数的应用,之前的文章已经分析过。

什么样的函数可以作为核函数?充要条件——K(x,z)为正定核函数:

考虑矩阵的特征值。
若所有特征值均不小于零,则称为半正定。
若所有特征值均大于零,则称为正定。

参考:

  • 李航《统计学习方法》

统计学习方法:支撑向量机(SVM)的更多相关文章

  1. 8.支撑向量机SVM

    1.什么是SVM 下面我们就来介绍一些SVM(Support Vector Machine),首先什么是SVM,它是做什么的?SVM,中文名是支撑向量机,既可以解决分类问题,也可以解决回归问题,我们来 ...

  2. 走过路过不要错过 包你一文看懂支撑向量机SVM

    假设我们要判断一个人是否得癌症,比如下图:红色得癌症,蓝色不得. 看一下上图,要把红色的点和蓝色的点分开,可以画出无数条直线.上图里黄色的分割更好还是绿色的分割更好呢?直觉上一看,就是绿色的线更好.对 ...

  3. 第11章 支撑向量机SVM

    Support Vector Machine ,  问题:如果决策边界不唯一 , , , , , , , ,  s.t.(such that):之前都是全局最优化问题,这次是有条件的最优化问题 har ...

  4. SVM学习笔记-线性支撑向量机

    对于PLA算法来说,最终得到哪一条线是不一定的,取决于算法scan数据的过程. 从VC bound的角度来说,上述三条线的复杂度是一样的 Eout(w)≤Ein0+Ω(H)dvc= ...

  5. 支撑向量机(SVM)

    转载自http://blog.csdn.net/passball/article/details/7661887,写的很好,虽然那人也是转了别人的做了整理(最原始文章来自http://www.blog ...

  6. SVM支撑向量机原理

    转自:http://blog.csdn.net/v_july_v/article/details/7624837 目录(?)[-] 支持向量机通俗导论理解SVM的三层境界 前言 第一层了解SVM 1分 ...

  7. 支撑矢量机SVM

    1.线性SVM 首先,回顾一下SVM问题的定义,如下: 线性约束很烦,不方便优化,是否有一种方法可以将线性约束放到优化问题本身,这样就可以无拘无束的优化,而不用考虑线性约束了.其对应的拉格朗日对偶形式 ...

  8. 模式识别笔记3-支持向量机SVM

    1. 线性SVM 对两类点的划分问题,这里对比下逻辑回归和SVM的区别: 逻辑回归的思想是,将所有点到决策平面的距离作为损失来进行训练,目标是到决策平面的距离和最小 SVM的思想是,只关注支持向量(图 ...

  9. 机器学习实战笔记(Python实现)-05-支持向量机(SVM)

    --------------------------------------------------------------------------------------- 本系列文章为<机器 ...

随机推荐

  1. Cognos第三方权限认证Oracle用户库

    一:概要描述 1.1:项目背景 Cognos具有强大的报表功能,但是却没有提供一个完善的用户管理体系,针对商业智能系统对数据的安全性要求,我们必须实现不同用户对不同数据的访问,确保企业级以及部门级的数 ...

  2. [Javascript] Create Objects

    var vehicle1 = {type: "Motorboat", capacity: 6, storedAt: "Ammunition Depot"}; v ...

  3. Discuz常见大问题-如何使用图片轮播器

    最简单的办法是用插件,在应用-插件中电机对应插件的设置(比如使用柒瑞幻灯图片展插件) 在展示图片参数设置中,按照要求放你要的设置(标题,注释,高清大图,缩略小兔,URL地址)注意一个都不能少,标题和注 ...

  4. 修复损坏的 shapefile

    一.SHP文件 Shapefile文件(简称SHP)作为ESRI一种经典的数据格式,被很多其他软件所支持,如CAD.MapGIS等,虽然也有一些限制(如无法进行拓扑分析.字段长度为10个字符等),但其 ...

  5. jquery.dataTables动态列

    jquery.dataTables  版本1.10.7 直接上代码: 0.table <table id="popReportTable"> <thead> ...

  6. Apache+Tomcat负载均衡集群搭建

    1.所需软件 apache_2.2.4-win32-x86-no_ssl.apacheserver mod_jk-apache-2.2.4连接器,连接apache和tomcat apache-tomc ...

  7. cookie 设置有效期 检测cookie

    设置cookie 函数直接上代码: function setCookie(name, value, days) { //设置cookie var d = new Date(); d.setTime(d ...

  8. awk备忘

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  9. 〖Linux〗OK6410a蜂鸣器的驱动程序编写全程实录

    最近在看一本书,受益匪浅,作者是李宁,下边是编写本次蜂鸣器的全程实录: 1. 了解开发板中的蜂鸣器 1) 查看蜂鸣器buzzer在底板中的管脚信息 2) 查看蜂鸣器在总线中的信息 3) 翻看S3C64 ...

  10. 基于.net 的加载自定义配置-误操作

    有时候 需要 将程序加载自定义的配置文件,除了自己写解析xml文件.内置的ConfigutionManager对象 是个不错的选项. 按照 app.config 的方式,做一个副本.然后从你的配置文件 ...