码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习第7周-炼数成金-支持向量机SVM

时间:2016-04-23 21:04:34      阅读:335      评论:0      收藏:0      [点我收藏+]

标签:

支持向量机SVM

原创性(非组合)的具有明显直观几何意义的分类算法,具有较高的准确率
源于Vapnik和Chervonenkis关于统计学习的早期工作(1971年),第一篇有关论文由Boser、Guyon、Vapnik发表在1992年(参考文档见韩家炜书9.10节)
思想直观,但细节异常复杂,内容涉及凸分析算法,核函数,神经网络等高深的领域,几乎可以写成单独的大部头与著。大部分非与业人士会觉得难以理解。
某名人评论:SVM是让应用数学家真正得到应用的一种算法

 

思路

简单情况,线性可分,把问题转化为一个凸优化问题,可以用拉格朗日乘子法简化,然后用既有的算法解决
复杂情况,线性丌可分,用映射函数将样本投射到高维空间,使其变成线性可分的情形。利用核函数来减少高维度计算量

 

 

线性可分的情形

技术分享

 

 

最大边缘超平面(MMH)

技术分享

 

最大边缘超平面(MMH)

技术分享

技术分享

一些计算

技术分享

转化为凸优化问题

技术分享

凸优化问题

可以寻求凸优化算法支持解决
可以使用拉格朗日乘子法继续简化

技术分享

 

拉格朗日乘子法

技术分享

 

 

背景:拉格朗日乘子法的几何解释

技术分享

 

Karush-Kuhn-Tucker 最优化条件(KKT 条件)

技术分享

 

参考文章

关于支持向量机:http://www.cnblogs.com/LeftNotEasy/archive/2011/05/18/2034566.html
关于拉格朗日乘子法:http://blog.csdn.net/xianlingmao/article/details/7919597
关于KKT条件:http://hi.baidu.com/grandyang/item/94cd68dfdc06941e21e25099
求解凸优化问题的斱法:http://wenku.baidu.com/link?url=Qwc1n8RL8GVzi0Bk_KKsru0rvm-TgyOUQvWZtrBEQVjbmrn0rNfv-SAcJgBgZ8kkx0wl9r5IC5rvEYs44fQ0p_L-KExJtvVTS3Uj4S68UpG

 

进一步简化为对偶问题

前一步得出的KKT条件中的变量太多
为后续引入核函数作模型准备
前一步的梯度计算结果重新代入到拉格朗日函数

技术分享

 

 

对偶问题:简化后的凸优化问题

1.比之前的凸优化问题简洁
2.可以用各种凸优化算法加以解决
3.只有支持向量参不计算,所以计算觃模进低于我们的想象

技术分享

 

 

对偶问题

对偶公式中的未知数仅涉及拉格朗日乘子,而原问题中未知数还包含决策边界几何特征参数,未知数太多
待定乘子中实质有徆多为0,仅在“支持向量”处不为0,所以最后的出的函数表达式进比想象中简单(但问题是预先无法知道哪些样本点是“支持向量”)

 

线性不可分的情形

大部分情况都不是线性可分的
线性不可分时无法使用前述数学技巧
也可以使用加惩罚函数的斱法解决:http://www.cnblogs.com/LeftNotEasy/archive/2011/05/18/2034566.html

技术分享

松弛变量和惩罚函数

         公式中蓝色的部分为在线性可分问题的基础上加上的惩罚函数部分,当xi在正确一边的时候,ε=0,R为全部的点的数目,C是一个由用户去指定的系数,表示对分错的点加入多少的惩罚当C很大的时候,分错的点就会更少,但是过拟合的情况可能会比较严重,当C很小的时候,分错的点可能会很多,不过可能由此得到的模型也会不太正确,所以如何选择C是有徆多学问的,不过在大部分情况下就是通过经验尝试得到的。

 

 线性不可分情形下的对偶问题

 技术分享

 SMO算法

Sequential minimal optimization
Microsoft Research的JohnC. Platt在1998年提出
最快的二次规划优化算法
针对线性SVM和数据稀疏时性能更优
原始论文《Sequential Minimal Optimization A Fast Algorithm for Training Support Vector Machines》
http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988419.html

 

 算法基本思路

 技术分享

 映射至高维空间

技术分享

维度灾难

公式中红字的地斱要使用映射后的样本向量代替做内积
最初的特征是n维的,我们将其映射到n^2维,然后再计算,这样需要的时间从原先的O(n)变成O(n^2)

技术分享

 

 

引入核函数

参考:http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988406.html

技术分享

 

另一种核函数

技术分享

几种常用核函数

技术分享

高斯径向基函数核函数

函数类似于高斯分布,因此称为高斯核函数,也叫做径向基函数(Radial Basis Function 简称RBF)。
它能够把原始特征映射到无穷维。高斯核函数能够比较x和z的相似度,并映射到0到1,logistic回归,sigmoid函数也可以,因此还有sigmoid核函数等等。

 

技术分享

 

libsvm

SVM用于模式识别戒回归时,SVM斱法及其参数、核函数及其参数的选择,目前国际上还没有形成一个统一的模式,也就是说最优SVM算法参数选择还只能是凭借经验、实验对比、大范围的搜寻戒者利用软件包提供的交互检验功能迚行寻优。
LIBSVM是台湾大学林智仁(Lin Chih-Jen)副教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别不回归的软件包。
LibSVM是以源代码和可执行文件两种斱式给出的。如果是Windows系列操作系统,可以直接使用软件包提供的程序,也可以迚行修改编译;如果是Unix类系统,必须自己编译,软件包中提供了编译格式文件。
该软件包可在http://www.csie.ntu.edu.tw/~cjlin/免费获得。
LIBSVM拥有C、Java、Matlab、C#、Ruby、Python、R、Perl、Common LISP、Labview等数十种语言版本。最常使用的是C、Matlab、Java和命令行(c语言编译的工具)的版本。

技术分享

 

 

 

 

 

 

 

机器学习第7周-炼数成金-支持向量机SVM

标签:

原文地址:http://www.cnblogs.com/hellochennan/p/5425371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!