![fdd8aab67e659a1824f8f557fc6e984a.png](https://i-blog.csdnimg.cn/blog_migrate/caebe8957abea77cf5b1800a4a66bbbd.jpeg)
SVM
支持向量机(Support Vector Machine-SVM)于1995年正式提出(Cortes and Vapnik, 1995),与logistics regression类似,最初SVM也是基于线性判别函数,并借助凸优化技术,以解决二分类问题,然而与逻辑回归不同的是,其输出结果为分类类别,并非类别概率。由于当时支持向量机在文本分类问题上显示出卓越的性能(AdaBoost+SVM),而很快成为机器学习领域的热点。直至2006年神经网络开始复兴(Hition在Science上发表文章指出在MINIST手写数字识别任务中神经网络的error rate达到1.2%,低于RBF核的SVM的1.4%error rate),12年深度学习“一鸣惊人”,这才使研究人员开始关注深度神经网络,SVM的研究逐渐淡去。但是不得不说的是SVM作为一种十分完美的分类器,其仍是有监督学习的经典代表。
SVM简单来说就是通过Kernel的技巧将地位空间线性不可分或难分的样本数据点映射至高维空间使其线性可分。此外,SVM通过构造目标函数使其样本间隔最大解决分类问题,也正因如此SVM更多的是关注Support Vector而忽视远离超平面的样本点,这也是为什么SVM比不上Deep Learning的一种原因。在具体实现中,其通过引入拉格朗日乘子,构造KKT条件将原问题转化为对偶问题简化求解。此外,通过Kernel trick实现非线性操作,扩展其分类能力,同时也简化了计算(不需直接求解映射函数
SVM与PCA、LDA以及流行学习等降维方法所不同的是,其通过升维解决分类问题。其实数据是否真正需要降维存在部分争议,数据降维主要是因为维数太高,我们目前无法求解,或很难有较好的方法进行求解,存在curse of dimension的问题。然而,有时数据降维后所得结果其实并不比未经降维处理的原始数据要好,或者有时是因为数据维数降低使其结果表面上看上去要比原来的要好,而真正结果却并没有多大精度的提升,甚至不如不进行降维处理。如在人脸识别中,通过PCA降维除去冗余,但是若只利用原始数据的颜色信息其仍能取得不错的结果。因此通过降维技术是否真正能是结果得到有效提高仍需仔细分析。(Sunjian老师等人就曾对此进行过相关讨论-Blessing of Dimension, 2013 CVPR。最近也有相关学者提出维度适当才能有较好的效果)
Margin & Support Vector
考虑线性可分的二分类问题如下所示:
![4d5a9c9f97f6de86ce4a6e3642e56dfa.png](https://i-blog.csdnimg.cn/blog_migrate/5d28f7535d41f4a087e1b190be42f0b3.jpeg)
在样本空间中中存在“正负”两类样本,这里我们期望能找到一个划分超平面(hyperplane)能更好的区分不同类别样本。在SVM中定义划分超平面由如下线性方程确定:
上式中,
故超平面由
同时定义使得
上式中,
注意到,