支持向量机(Support vector machine)通常用在机器学习 (Machine learning)。是一种监督式学习 (Supervised Learning)的方法,主要用在统计分类 (Classification)问题和回归分析 (Regression)问题上。
支持向量机属于一般化线性分类器,也可以被认为是提克洛夫规范化(Tikhonov Regularization)方法的一个特例。这族分类器的特点是他们能够同时最小化经验误差与最大化几何边缘区,因此支持向量机也被称为最大边缘区分类器。现在多简称为SVM。
Logistic Regression Cost Function:
ps:这是对于一个样本点的cost Function,所以没有除以m
左图:红色线描述的是新的代价函数的,记为 cost1(z)
右图:红色线描述的是新的代价函数的,记为 cost0(z)
这里的下标是指在代价函数中对应的 y=1 和 y=0 的情况
构建SVM的代价函数 J(θ) :
这个代价函数是由logistic regression变化过来的,只需将
同时乘以m,除以 λ 即可得到SVM的代价函数。
Large margin classifier:
支持向量机将会选择 这个黑色的决策边界 。这条黑色的看起是更稳健的决策界 ,在分离正样本和负样本上它显得的更好 。数学上来讲 ,这条黑线有更大的距离 ,这个距离叫做间距 (margin) 当画出这两条 ,额外的蓝线我们看到黑色的决策界和训练样本之间有更大的最短距离, 然而粉线和蓝线离训练样本就非常近 。
这个距离叫做支持向量机的间距。 而这是支持向量机具有鲁棒性的原因, 因为它努力用一个最大间距来分离样本 。
参数C对分类的影响:
其实C是一个惩罚系数,是对于离群点(outlier)的惩罚程度。当C比较小时,对于离群点可以忽略,当C比较大的时候,就不能忽略离群点了,必须将离群点划分到相应的类别。
当C比较小时,[ ]中的项不必要严格=0,若C比较大,就需要=0了。
这节的内容请参见参考文章
核函数的本质:
假设现在你是一个农场主,圈养了一批羊群,但为预防狼群袭击羊群,你需要搭建一个篱笆来把羊群围起来。但是篱笆应该建在哪里呢?你很可能需要依据牛群和狼群的位置建立一个“分类器”,比较下图这几种不同的分类器,我们可以看到SVM完成了一个很完美的解决方案。
Kernel:
1.标记点(landmark, l(1),l(2)..... )
2.通过Kernel函数计算相似度
3.代入Hypothesis进行预测
标记点(landmark, l(1),l(2)..... )是如何选择的?
左边的图是Training set(训练集),其中分为Positive和negative样本点。将其按照样本序号标记为 l(1),l(2).....l(m)
Kernel Function:
Kerenl 的 σ2 的影响:
Kernels计算相似度:
当 x离l(1) 很近的时候,相似度近似为1。
当 x离l(1) 很远的时候,相似度近似为0。
预测分类例子:
假设已经知道 θ0,θ1,θ2,θ3 的值。
x 离 l(1) 比较近,那么求得 f1=similarity(x,l(1))=1 , f2=0 , f3=0 ,代入
可以预测该样本点属于”1”(positive)
相似的,对于天蓝色的样本点 x , f1,f2,f3≈0
Summary:
于是,每个特征向量 f(i) 有m+1维(m维训练数据[ f1 , f2 ,…, fm ]附加一维f0=1)
如下图所示,这里与之前讲过的cost function的区别在于用kernel f(i) 代替了 x 。
用SVM进行机器学习的过程就是一个optimize参数θ的过程。
SVM进行学习,主要分为:
1.No kernel (Linear Kernel), hθ(x)=g(θ0x0+θ1x1+...θnxn) ,predict y=1 if θTx≥0
2.Kernel f (e.g. Gaussian Kernel),也叫Radial Basis Function 简称RBF,它能够把原始特征映射到无穷维, hθ(x)=g(θ0f0+θ1f1+...θnfn) ,这里需要选择参数 σ2
下面有张图说明在低维线性不可分时,映射到高维后就可分了,使用高斯核函数:
Mercer定理:
Logisitc regression vs SVMs:
①当n>=m,如n=10000,m=10~1000时,建议用logistic regression, 或者linear kernel的SVM
②如果n小,m不大不小,如n=1~1000,m=10~10000,建议用Gaussian Kernel的SVM
③如果n很小,m很大,如n=1~1000,m>50000,建议增加更多的feature并使用logistic regression, 或者linear kernel的SVM
原因,①模型简单即可解决,③如果还用Gaussian kernel会导致很慢,所以还选择logistic regression或者linear kernel
神经网络可以解决以上任何问题,但是速度是一个很大的问题。
参考:
Why use SVM? Tweet
机器学习(一)支持向量机(Support Vector Machine)
Stanford机器学习—第八讲. 支持向量机SVM
支持向量机通俗导论(理解SVM的三层境界)
支持向量机(三)核函数
SVM学习——核函数
支持向量机: Maximum Margin Classifier
扩展读物:
1.《支持向量机导论》,[英] Nello Cristianini / John Shawe-Taylor 著;
2.支持向量机导论一书的支持网站:http://www.support-vector.net/;
3.《数据挖掘导论》,[美] Pang-Ning Tan / Michael Steinbach / Vipin Kumar 著;
4.《数据挖掘:概念与技术》,(加)Jiawei Han;Micheline Kamber 著;
5.《数据挖掘中的新方法:支持向量机》,邓乃扬 田英杰 著;
6.《支持向量机–理论、算法和扩展》,邓乃扬 田英杰 著;
7.支持向量机系列,pluskid
8.数据挖掘十大经典算法初探;
9.《模式识别支持向量机指南》,C.J.C Burges 著;
9.《统计学习方法》,李航著;
10.《统计自然语言处理》,宗成庆编著,第十二章、文本分类;
11.SVM入门系列,Jasper
12.最近邻决策和SVM数字识别的实现和比较,作者不详;
13.斯坦福大学机器学习课程原始讲义
14.斯坦福机器学习课程笔记
15.SMO算法的数学推导
16.数据挖掘掘中所需的概率论与数理统计知识、上;
17.关于机器学习方面的文章,可以读读:http://www.cnblogs.com/vivounicorn/category/289453.html;
18.数学系教材推荐:http://blog.sina.com.cn/s/blog_5e638d950100dswh.html;
19.《神经网络与机器学习(原书第三版)》,[加] Simon Haykin 著;
20.正态分布的前世今生:http://t.cn/zlH3Ygc;
21.《数理统计学简史》,陈希孺院士著;
22.《最优化理论与算法(第2版)》,陈宝林编著;
23.A Gentle Introduction to Support Vector Machines in Biomedicine:http://www.nyuinformatics.org/downloads/supplements/SVM_Tutorial_2010/Final_WB.pdf,此PPT很赞,除了对引入拉格朗日对偶变量后的凸二次规划问题的深入度不够之外,其它都挺好,配图很精彩,本文有几张图便引自此PPT中;
24.来自卡内基梅隆大学carnegie mellon university(CMU)的讲解SVM的PPT:http://www.autonlab.org/tutorials/svm15.pdf;
25.发明libsvm的台湾林智仁教授06年的机器学习讲义SVM:http://wenku.baidu.com/link?url=PWTGMYNb4HGUrUQUZwTH2B4r8pIMgLMiWIK1ymVORrds_11VOkHwp-JWab7IALDiors64JW_6mD93dtuWHwFWxsAk6p0rzchR8Qh5_4jWHC;
http://staff.ustc.edu.cn/~ketang/PPT/PRLec5.pdf;
26.Introduction to Support Vector Machines (SVM),By Debprakash Patnai M.E (SSA),https://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCwQFjAA&url=http%3a%2f%2fwww%2epws%2estu%2eedu%2etw%2fccfang%2findex%2efiles%2fAI%2fAI%26ML-Support%2520Vector%2520Machine-1%2eppt&ei=JRR6UqT5C-iyiQfWyIDgCg&usg=AFQjCNGw1fTbpH4ltQjjmx1d25ZqbCN9nA;
27.多人推荐过的libsvm:http://www.csie.ntu.edu.tw/~cjlin/libsvm/;
28.《machine learning in action》,中文版为《机器学习实战》;
29.SMO算法的提出:Sequential Minimal Optimization A Fast Algorithm for Training Support Vector Machines:http://research.microsoft.com/en-us/um/people/jplatt/smoTR.pdf;
30.VC维的理论解释:http://www.svms.org/vc-dimension/,中文VC维解释http://xiaoxia001.iteye.com/blog/1163338;
31.来自NEC Labs America的Jason Weston关于SVM的讲义http://www.cs.columbia.edu/~kathy/cs4701/documents/jason_svm_tutorial.pdf;
32.来自MIT的SVM讲义:http://www.mit.edu/~9.520/spring11/slides/class06-svm.pdf;
33.PAC问题:http://www.cs.huji.ac.il/~shashua/papers/class11-PAC2.pdf;
34.百度张潼老师的两篇论文:《Statistical behavior and consistency of classification methods based on convex risk minimization》http://home.olemiss.edu/~xdang/676/Consistency_of_Classification_Convex_Risk_Minimization.pdf,《Statistical analysis of some multi-category large margin classification methods》;
http://jacoxu.com/?p=39;
35.《矩阵分析与应用》,清华张贤达著;
36.SMO算法的实现:http://blog.csdn.net/techq/article/details/6171688;
37.常见面试之机器学习算法思想简单梳理:http://www.cnblogs.com/tornadomeet/p/3395593.html;
38.矩阵的wikipedia页面:http://zh.wikipedia.org/wiki/%E7%9F%A9%E9%98%B5;
39.最小二乘法及其实现:http://blog.csdn.net/qll125596718/article/details/8248249;
40.统计学习方法概论:http://blog.csdn.net/qll125596718/article/details/8351337;
41.http://www.csdn.net/article/2012-12-28/2813275-Support-Vector-Machine;
42.A Tutorial on Support Vector Regression:http://alex.smola.org/papers/2003/SmoSch03b.pdf;SVR简明版:http://www.cmlab.csie.ntu.edu.tw/~cyy/learning/tutorials/SVR.pdf。
43.SVM Org:http://www.support-vector-machines.org/;
44.R. Collobert. Large Scale Machine Learning. Université Paris VI phd thesis. 2004:http://ronan.collobert.com/pub/matos/2004_phdthesis_lip6.pdf;
45.Making Large-Scale SVM Learning Practical:http://www.cs.cornell.edu/people/tj/publications/joachims_99a.pdf;
46.文本分类与SVM:http://blog.csdn.net/zhzhl202/article/details/8197109;
47.Working Set Selection Using Second Order Information for Training Support Vector Machines:http://www.csie.ntu.edu.tw/~cjlin/papers/quadworkset.pdf;
48.SVM Optimization: Inverse Dependence on Training Set Size:http://ml2008.cs.helsinki.fi/papers/266.pdf;
49.Large-Scale Support Vector Machines: Algorithms and Theory:http://cseweb.ucsd.edu/~akmenon/ResearchExam.pdf;
50.凸优化的概念:http://cs229.stanford.edu/section/cs229-cvxopt.pdf;
51.Large-scale Non-linear Classification: Algorithms and Evaluations,Zhuang Wang,讲了很多SVM算法的新进展:http://ijcai13.org/files/tutorial_slides/te2.pdf;
52.基于SMO算法实现SVM:http://www.cs.iastate.edu/~honavar/smo-svm.pdf;
53.copper推荐的一些SVM相关的论文(当然,其中不少论文在上面的条目中都已经提到):http://c.blog.sina.com.cn/profile.php?blogid=68d0b92d89000h35;
54.在线编辑Latex 公式:http://www.codecogs.com/latex/eqneditor.php?lang=zh-cn。