1. 概述
支持向量机(support vector machines, SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问。支持向量机的学习算法是求解凸二次规划的最优化算法。
支持向量机学习模型:线性可分支持向量机(linear support vector machine in linearly separable case )、线性支持向量机(linear support vector machine)及非线性支持向量机(non-linear support vector machine)。
学习方法包括:硬间隔最大化(hud margin maximization)、软间隔最大化(soft margin maximization)、核技巧(kernel trick)。通过使用核函数可以学习非线性支持向量机,等价于隐式地在高维的特征空间中学习线性支持向量机。这样的方法称为核技巧(kernel trick)。
2. 线性可分支持向量机与硬间隔最大化
定义 (线性可分支持向量机):给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为
w∗+b∗=0w∗+b∗=0
以及相应的分类决策函数:
f(x)=sign(W∗x+b∗)f(x)=sign(W∗x+b∗)
称为线性可分支持向量机.
2.1 函数间隔和几何间隔
定义(函数间隔 functiona lmargin):对于给定的训练数据集T和超平面(w, b),定义超平面关于样本点(xi, yi)的函数间隔为
γ∼i=yi(w⋅xi+b)γi∼=yi(w⋅xi+b)
定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点(xi, yi)的函数间隔之最小值,即
γ∼i=mini=1,...nγ∼iγi∼=mini=1,...nγi∼
函数间隔可以表示分类预测的正确性及确信度。但是成比例地改变w和b,例如将它们改为2w和2b,超平面并没有改变,但函数间隔却成为原来的2倍。
对分离超平面的法向量、加某些约束,如规范化,||w||=1,使得间隔是确定的。这时函数间隔成为几何间隔。
定义(几何间隔 geometric margin):对于给定的训练数据集T和超平面(w, b),定义超平面关于样本点(xi, yi)的函数间隔为:
γi=yi(w||w||⋅xi+b||w||)γi=yi(w||w||⋅xi+b||w||)
定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点(xi, yi)的函数间隔之最小值,即
γi=mini=1,...nγiγi=mini=1,...nγi
函数间隔和几何间隔的关系:
γi=γ∼i||w||γi=γi∼||w||
2.2 间隔最大化
支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的。这里的间隔最大化又称为硬间隔最大化。
间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类,也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。
具体的,这个问题可以表示为下面的约束最优化问题:
minw,bγminw,bγ
s.t.yi(w||w||⋅xi+b||w||)>=γi=1,2,...Ns.t.yi(w||w||⋅xi+b||w||)>=γi=1,2,...N
考虑几何隔间和函数间隔的关系,约束条件转化为
minw,bγ∼||w||minw,bγ∼||w||
s.t.yi(w||w||⋅xi+b||w||)>=γi=1,2,...Ns.t.yi(w||w||⋅xi+b||w||)>=γi=1,2,...N
函数间隔γ∼γ∼的取值不影响最优化问题的解答,这样可以取γ∼=1γ∼=1,就可以得到下面的线性可分支持向量机最优化问题:
mina,b1||W||=12||W||2mina,b1||W||=12||W||2.
s.t.yi(w⋅xi+b)−1>=0s.t.yi(w⋅xi+b)−1>=0
这是一个凸二次规划问题,是指约束最优化问题。
定理(最大间隔分离超平面的存在唯一性):若训练数据集z线性可分,则可将训练数据集中的样本点完全正确分开的最大间隔分离超平面存在且唯一。
2.3 支持向量和间隔边界
在线性可分情况下,训练数据集的样本点中与分离超平面跄离最近的样本点的实例称为支持向量( support vector )。支持向量是使约束条件式等号成立的点,即
yi(w⋅xi+b)−1=0yi(w⋅xi+b)−1=0
对yi=+1的正例点,支持向量在超平面H1:w⋅xi+b)=1H1:w⋅xi+b)=1
对yi=-1的负例点,支持向量在超平面H1:w⋅xi+b)=−1H1:w⋅xi+b)=−1
下图中在H1和H2上的点就是支持向量
H1和H2之间的距离称为间隔(margin)。间隔依赖于分离超平面的法向量w,等于2/||w||。H1和H2称为间隔边界.
在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。如果移动支持向量将改变所求的解;但是如果移动其他实例点,甚至去掉这些点,则解是不会改变的。由于支持向量在确定分离超平面中起决定性作用,所以将这种分类模型称为支持向量机。支持向量的个数一般很少,所以支持向量机由很少的“重要的”训练样本确定。
2.3 学习的对偶算法
构建拉格朗日函数(Lagrange function),引进拉格朗日乘子(Lagrange multiplier)
L(w,b,a)=12||w||2−∑Ni=1αiyi(w⋅+b)+∑Ni=1αiL(w,b,a)=12||w||2−∑i=1Nαiyi(w⋅+b)+∑i=1Nαi
根据拉格朗日对偶性,原始对偶问题转化为极大极小问题:
maxαminw,bL(w,b,α)maxαminw,bL(w,b,α)
将拉格朗日函数L(w,b,α)L(w,b,α)分别对w,b q求偏导数并且令其等于0.
得到:
w=∑Ni=1αiyixi...(1)w=∑i=1Nαiyixi...(1)
∑Ni=1αiyi=0...(2)∑i=1Nαiyi=0...(2)
带入到拉格朗日函数,即
转化为对偶问题
设a*是对偶最优化问题的解,则存在下标j使得a∗j>0aj∗>0并可按下式求得原始最优化问题的解:
w∗=∑Ni=1α∗iyixiw∗=∑i=1Nαi∗yixi
b∗=yj−∑Ni=1α∗iyi(xi∗xj)b∗=yj−∑i=1Nαi∗yi(xi∗xj)
定义(支持向量):将训练数据集中对应于a∗j>0aj∗>0的样本点(xi, yi)的实例xi称为支持向量。支持向量一定在间隔边界上。
2.4 例子