SVM学习笔记
Support Vecot Mechine, SVM 学习笔记
SVM一般翻译为支持向量机,最初在文本分类领域展露头角,后成为机器学习的主流技术,其求解较神经网络一般要高效,最初只适用于二类划分。理论上来说,通过one-vs-all的思想,二类划分的方法都可以转化为多类划分。下面主要参考吴恩达的机器学习课程和周志华的“西瓜书”写的学习笔记,供大家参考、交流:
分类间隔和Magin
SVM方法被称为最大间隔分类,考虑一个两个feature的例子,如下图所示,所有的划分都是正确的,但显然红色的线是最好的划分,因为其抵抗扰动的能力更强,容错性更好,鲁棒性好。两类中最靠近分类界限的点沿分类线(平面)的距离最大,这个距离就是所谓的magin,中文应该是间隔的意思。
support vector
如下图中的红色两个点,分别是离分类线(平面)最近的点。每个样本点都可以作为一个向量,两个红色点对应的向量称为support vector。一般将support vector议成支持向量,个人认为不太贴切。事实上support在结构力学中表示支座支承的意思,support vector像支座一样将两类样本撑开,可能翻译为支承向量更为贴切。machine的原意是指机器,但在机器学习中一般可以理解为算法的意思。事实上,svm方法的重点就在于使得support vector之间的magin最小。
SVM基本型(以二维线性可分的情况为例)
像上图中的样本分析情况,可以找到一个直线将两类样本点分开(显然大多数问题不一定能找到直线将样本正确地分开),其中
由解析几何的知识易知,空间中认为一点
对于任一分类正确的样本
SVM方法不仅要求样本分类正确,还希望分类的magin能够尽可能地大,由此可以得到svm方法的基本型
上式可以等价为
可以证明,该规划问题可以转化为凸二次规划,因此svm方法不必担心收敛到局部最优点的问题。此外还可利用support vector的性质,对优化求解过程进行加速,因此svm方法求解较为高效。
此外,由svm的基本型可以看出,优化目标函数仅与support vector有关,最终得到的超平面也仅与support vector有关。
核方法(kernel tricks)
很多情况下,不同样本之间并不是线性可分的,如下图需要用一个非线性的方程将两个样本分块,那么此时svm方法是不是就失效了呢?
此时需要将样本空间映射到更高维的空间中,即
在核函数满足某种数学条件得情况下,带核的svm方法同样具有凸性和计算效率较高的优点。