支持向量机(Support Vector Machine,常简称为SVM)是一种监督式学习的方法,可广泛地应用于统计分类以及回归分析。它是将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面,分隔超平面使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的总误差越小。
从分类或回归的角度来看,SVM的分类只考虑分类面附近的局部的点,即支持向量,而诸如Logistic回归的算法要考虑全部样本的点,基于所有数据点的分布情况来构建分类边界。那么如何理解SVM这种依靠超平面与支持向量进行分类或回归的问题?在这里我们基于二维平面的9个简单场景来深入理解其工作原理。
图1:何谓正确的超平面?
图2-3:何谓最优的超平面?
如下图,A、B、C三个超平面均能对星形与圆形标志进行划分,哪个是最优的?
如下图,最优分类平面的条件是使间隔最大化。我们通过任一类(星形或圆形标志)与超平面距离最近的点,基于其与超平面距离的最大化来判定最优超平面,这个距离称为边距(Margin)。相比较于A、B,超平面C的边距最大,且具有鲁棒性,也就是说与任一类别的边距都最大,而不像A、B泛化性较差。
注意:这里不考虑所有的点都必须远离超平面,我们关心求得的超平面能够让所有点中离它最近的点具有最大间距。
图4:SVM得到的有时候并不是最优分类超平面
图5-6:线性不可分下的最优超平面
图7-9:非线性分类下的SVM
我们构建新特征z = x^2 + y^2,然后在x、z轴上绘制样本点,可以看到如何去有效分类这两种类别。这就是增加了一个新的维度,在高维空间划分两类。SVM有一种称为核函数的技术。这些函数采用低维输入空间并将其转换为更高维空间,即将不可分离问题转换为可分离问题,这些函数称为内核。它主要用于非线性分离问题。
总结:
从上面9幅图可以知道SVM的工作原理:边距最大化;忽略异常值;采用核函数来处理非线性的情况。需要注意的是,上面是对SVM简单场景的分析,实际的SVM工作原理相对复杂。