支持向量机(SVM)包含构建由简至繁的模型:线性可分支持向量机、线性支持向量机以及非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机。本文只介绍线性可分支持向量机。
这里首先给出数据集线性可分性的概念。
给定一个数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),⋯,(xN,yN)}
其中, x i ∈ χ = R n x_i\in\chi=R^n xi∈χ=Rn, y i = + 1 , − 1 , i = 1 , 2 , ⋯ , N y_i={+1,-1},i=1,2,\cdots,N yi=+1,−1,i=1,2,⋯,N,如果存在某个超平面 S S S
w ⋅ x + b = 0 w\cdot x+b=0 w⋅x+b=0
能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,则称数据集 T T T为线性可分数据集;否则,称数据集 T T T线性不可分。
给定数据集 T T T(如上所示),假设训练集 T T T是线性可分的。学习的目标是在特征空间找到一个分离超平面,能够将实例分到不同的类。分离超平面对应于方程 w ⋅ x + b = 0 w\cdot x+b=0 w⋅x+b=0,它由法向量 w w w和截距 b b b决定。
一般地,当训练数据线性可分时,存在无穷个分离超平面可将两类数据正确分开。如下图所示:
可以很清楚地看到,能将这两类数据正确分开的平面有无数条(这里画出2条示例)。
线性可分支持向量机利用间隔最大化求最优分离超平面,这时,解是唯一的(只有一个平面满足要求)。
支持向量机的基本思想是求解能够争取划分训练数据集并且几何间隔最大的分离超平面。
我们首先介绍下几何间隔的概念。
对于给定的训练数据集 T T T和超平面 ( w , b ) (w,b) (w,b),定义超平面 ( w , b ) (w,b) (w,b)关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的几何间隔为
γ i = y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) \gamma_i=y_i(\frac{w}{||w||}\cdot x_i+\frac{b}{||w||}) γi=yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)
定义超平面 ( w , b ) (w,b) (w,b)关于训练数据集 T T T的几何间隔为超平面 ( w , b ) (w,b) (w,b)关于 T T T中所有样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的几何间隔之最小值,即
γ = min i = 1 , 2 , ⋯ , N γ i \gamma = \min_{i=1,2,\cdots,N}\gamma_i γ=i=1,2,⋯,Nminγi
超平面关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的几何间隔一般就是实例点到超平面的带符号的距离,当样本点被超平面正确分类时就是实例点到超平面的距离。
这里补充一个知识,点 ( x i , y i ) (x_i,y_i) (xi,yi)到平面 A x + B y + C = 0 Ax+By+C=0 Ax+By+C=0的距离为:
d = ∣ A x i + B y i + C ∣ A 2 + B 2 d=\frac{|Ax_i+By_i+C|}{\sqrt{A^2+B^2}} d=A2+B2∣Axi+Byi+C∣
注意距离为正,这个公式扩展到高维平面不变。
这里的间隔最大化又称为硬间隔最大化。间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。
最大几何间隔分离超平面可以表示为下面的约束最优化问题:
max w , b γ s . t . y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) ⩾ γ i , i = 1 , 2 , ⋯ , N \max_{w,b}\gamma \\ s.t. \quad y_i(\frac{w}{||w||}\cdot x_i+\frac{b}{||w||})\geqslant\gamma_i,i=1,2,\cdots,N w,bmaxγs.t.yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)⩾γi,i=1,2,⋯,N
这里需要好好理解下,即我们希望最大化超平面 ( w , b ) (w,b) (w,b)关于训练数据集的几何间隔 γ \gamma γ( γ \gamma γ是超平面关于 T T T中所有样本点的几何间隔的最小值),所以超平面关于每个样本点的几何间隔都至少是 γ \gamma γ。
上面我们已经得到了最大几何间隔分离超平面的约束方程,如果求出了约束最优化问题的解 w ∗ , b ∗ w^*,b^* w∗,b∗,那么就可以得到最大间隔分离超平面 w ∗ ⋅ x + b ∗ = 0 w^*\cdot x+b^*=0 w∗⋅x+b∗=0。
为了求解上述的最优化问题,这里我们再引出一个概念凸优化问题。
凸优化问题是指如下形式的最优化问题:
min w f ( w ) s . t . g i ( w ) ⩽ 0 , i = 1 , 2 , ⋯ , k h i ( w ) = 0 , i = 1 , 2 , ⋯ , l \min_w f(w)\\ s.t.\quad g_i(w)\leqslant0 ,i=1,2,\cdots,k \\ \quad h_i(w)=0,i=1,2,\cdots,l wminf(w)s.t.gi(w)⩽0,i=1,2,⋯,khi(w)=0,i=1,2,⋯,l
输入:线性可分数据集 T T T
输出:最大间隔分类超平面和决策函数
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量。支持向量是使约束条件式等号成立的点,即
y i ( w ⋅ x i + b ) − 1 = 0 y_i(w\cdot x_i+b)-1=0 yi(w⋅xi+b)−1=0
对 y i = + 1 y_i=+1 yi=+1的正例点,支持向量在超平面
H 1 : w ⋅ x + b = 1 H_1:w\cdot x+b=1 H1:w⋅x+b=1上,对 y i = − 1 y_i=-1 yi=−1的正例点,支持向量在超平面
H 2 : w ⋅ x + b = − 1 H_2:w\cdot x+b=-1 H2:w⋅x+b=−1上。如下图所示,在 H 1 H_1 H1和 H 2 H_2 H2上的点就是支持向量。
因为 H 1 H_1 H1和 H 2 H_2 H2的斜率相同,所以它们两是平行的,并且没有实例点落在它们中央。分离超平面与它们平行且位于它们中央。长带的宽度,即 H 1 H_1 H1和 H 2 H_2 H2之间的距离称为间隔,大小等于 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} ∣∣w∣∣2, H 1 H_1 H1和 H 2 H_2 H2称为间隔边界。
在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。如果移动支持向量,将改变所求的解;如果在间隔边界以外移动其他实例点,甚至去掉这些点,则解是不会改变的。由于支持向量在确定分离平面中起决定作用,所以将这种分类模型称为支持向量机。
我们已经介绍了线性可分支持向量机算法的具体步骤以及一些相关概念(支持向量、间隔边界),但是关于如何求解上面的约束方程,我们并没有介绍,在下一节我们介绍如何使用拉格朗日算法求解最优化问题得到 w ∗ , b ∗ w^*,b^* w∗,b∗。
本小节我们介绍了SVM中的线性可分支持向量机,给出了具体的最优化方程,并介绍了几何间隔、线性可分数据集、支持向量、间隔边界的概念。
机器学习方法.李航.