一、概念和背景
SVM:Support Vector Machine 支持向量机。
最早是由Vladimir N. Vapnik和Alexey Ya. Chervonenkis在1963年提出的。
目前的版本(soft margin)是由Corinna Cortes和Vapnik在1993年提出,并在1995年发表。
在深度学习(2012)出现之前,SVM被认为是机器学习中近十几年来最成功,表现最好的算法。
机器学习的一般框架:
训练集--->提取特征向量--->结合一定的算法(决策树、KNN等)--->结果
二、SVM
在上图中,我们有一些二维的样本,我们需要画一条线将他们区分开,现有绿色、蓝色、红色三条线,哪一条是最好的呢?
很明显,我们会认为红色线是最能明确划分两种样本的分界线。
我们将二维样本扩展到三维(三维空间)中,则这条红线会变成一个面红色的面,可以用来在三维空间中划分三维样本。
再将三维空间扩展为N维,则红色的面会变成一个超平面(hyper plane),这个超平面可以用来划分N维样本。
边际(margin):用于确定超平面位置,使不同类样本间边际(距离)最大。(例如黑点到白点的距离)
三、线性可区分和线性不可区分
线性可分:在样本空间中,可以使用一条直线(二维)、一个平面(三维)或一个超平面(N维)将样本区分开,叫做线性可区分。例如上面图中的情况。
线性不可分:不能使用一条直线(二维)、一个平面(三维)或一个超平面(N维)将样本区分开,叫做线性不可区分。如下图所示情况:
四、确定超平面
如何确定超平面:
用于划分样本的超平面可以有无数个,但是最优超平面是到不同类样本距离相等(并且边际最大)的超平面。
假设训练样本是二维的,X=(x1,x2);
1.超平面方程为:
其中的w0相当于x0=1的情况。(和神经网络中的bias一样)
2.超平面两边的点满足:
3.找到超平面两边的另外两个超平面:
所有坐落在该两个超平面(H1,H2)上的点被称作“支持向量(support vector)”。
4.分界超平面与处于H1和H2上的点(支持向量)的距离为:
其中||W||是向量的范数,即模(norm)。
5.最大边际距离(H1到H2的距离)为: