支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机、线性支持向量机以及非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化(hard margin maximization)学习一个线性的分类器,即线性可分支持向量机;当训练数据近似线性可分时,通过软间隔最大化也学习一个线性的分类器,即线性支持向量机;当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。这里先介绍线性可分支持向量机的内容。
考虑一个二分类问题,假设输入空间与特征空间为两个不同的空间。输入空间为欧式空间或离散集合,特征空间为欧式空间或希尔伯特空间。线性可分支持向量机、线性支持向量机假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量。所以,输入都由输入空间转换到特征空间,支持向量机的学习是在特征空间进行的。
假设给定一个特征空间上的训练数据集
T={(x1,y1),(x2,y2),⋯,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),⋯,(xN,yN)}其中,xi∈X=Rnx_i\in \mathcal{X}=\mathbb{R}^nxi∈X=Rn,yi∈Y={+1,−1},i=1,2,...,Ny_i\in \mathcal{Y}=\{+1,-1\},i=1,2,...,Nyi∈Y={+1,−1},i=1,2,...,N。假设训练数据集是线性可分的。
学习目标是在特征空间中找到一个分离超平面,能将实例分到不同的类。分离超平面对应于方程 w⋅x+b=0w\cdot x+b=0w⋅x+b=0,它由法向量 www 和截距 bbb 决定,可用 (w,b)(w,b)(w,b) 来表示。分离超平面将特征空间划分为两部分,一部分是正类,一部分是负类。
一般地,当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。感知机利用误分类最小的策略,求得分离超平面,不过这时解有无穷多个。线性可分支持向量机利用间隔最大化求最优分离超平面,这时,解是唯一的。
考虑下图所示的二维特征空间中的分类问题。图中 ● 表示正例(yi=+1y_i=+1yi=+1),× 表示负例(yi=−1y_i=-1yi=−1)。训练数据线性可分,这时有许多直线能将两类数据正确划分。线性可分支持向量机对应着将两类数据正确划分并且间隔最大的直线。

在上图中,有 A,B,CA,B,CA,B,C 三个点,表示三个实例,均在分离超平面的正类一侧,预测它们的。点 AAA 距分离超平面较远,若预测该点为正类,就比较确信预测是正确的;点 CCC 距分离超平面较近,若预测该点为正类,就不那么确信;点 BBB 位于点 AAA 和 点 CCC 之间,预测其为正类的确信度也在 AAA 与 CCC 之间。
在超平面 w⋅x+b=0w\cdot x+b=0w⋅x+b=0 确定的情况下,∣w⋅x+b∣|w\cdot x+b|∣w⋅x+b∣ 能够相对地表示点 xxx 距离超平面的远近。而 w⋅x+bw\cdot x+bw⋅x+b 的符号与类标记 yyy 的符号是否一致能够表示分类是否正确,所以可用量 y(w⋅x+b)y(w\cdot x+b)y(w⋅x+b) 来表示分类的正确性及确信度,这就是函数间隔的概念。
定义:对于给定的训练数据集 TTT 和超平面 (w,b)(w,b)(w,b),定义超平面 (w,b)(w,b)(w,b) 关于样本点 (xi,yi)(x_i,y_i)(xi,yi) 的函数间隔为 γ^i=yi(w⋅xi+b)\hat{\gamma}_i=y_i(w\cdot x_i+b)γ^i=yi(w⋅xi+b)定义超平面关于训练数据集 TTT 的函数间隔为超平面 (w,b)(w,b)(w,b) 关于 TTT 中所有样本点的函数间隔最小值,即γ^=mini=1,2,⋯,Nγ^i\hat{\gamma}=\min_{i=1,2,\cdots,N} \hat{\gamma}_iγ^=i=1,2,⋯,Nminγ^i
函数间隔可以表示分类预测的正确性及确信度。但是选择超平面时,只有函数间隔还不够。因为只要成比例的改变 www 和 bbb,超平面不会发生改变,但函数间隔却会相应的成比例改变。因此,我们可以对超平面的法向量 www 加某些约束,如规范化,∥w∥\|w\|∥w∥,使得间隔是确定的。这时函数间隔成为几何间隔。
下图给出了超平面 (w,b)(w,b)(w,b) 及其法向量 www。点 AAA 表示某一实例 xix_ixi,其类标记为 yi=+1y_i=+1yi=+1。点 AAA 与超平面的距离由线段 ABABAB 给出,记作 γi\gamma_iγi:
γi=w∥w∥⋅xi+b∥w∥\gamma_i=\frac{w}{\|w\|}\cdot x_i + \frac{b}{\|w\|} γi=∥w∥w⋅xi+∥w∥b其中,∥w∥\|w\|∥w∥ 是 www 的 L2L_2L2 范数。如果点 AAA 在超平面负的一侧,即 yi=−1y_i=-1yi=−1,那么点与超平面的距离为
γi=−(w∥w∥⋅xi+b∥w∥)\gamma_i=-\left(\frac{w}{\|w\|}\cdot x_i + \frac{b}{\|w\|}\right)γi=−(∥w∥w⋅xi+∥w∥b)
一般地,当样本点 (xi,yi)(x_i,y_i)(xi,yi) 被超平面 (w,b)(w,b)(w,b) 正确分类时,点 xix_ixi 与超平面 (w,b)(w,b)(w,b) 的距离是(几何间隔)
γi=yi(w∥w∥⋅xi+b∥w∥)\gamma_i=y_i\left(\frac{w}{\|w\|}\cdot x_i + \frac{b}{\|w\|}\right) γi=yi(∥w∥w⋅xi+∥w∥b)
定义:对于给定的训练数据集 TTT 和超平面 (w,b)(w,b)(w,b),定义超平面 (w,b)(w,b)(w,b) 关于样本点 (xi,yi)(x_i,y_i)(xi,yi) 的几何间隔为 γi=yi(w∥w∥⋅xi+b∥w∥)\gamma_i=y_i\left(\frac{w}{\|w\|}\cdot x_i + \frac{b}{\|w\|}\right)γi=yi(∥w∥w⋅xi+∥w∥b)定义超平面关于训练数据集 TTT 的几何间隔为超平面 (w,b)(w,b)(w,b) 关于 TTT 中所有样本点的几何间隔最小值,即γ=mini=1,2,⋯,Nγi\gamma=\min_{i=1,2,\cdots,N} \gamma_iγ=i=1,2,⋯,Nminγi

函数间隔和几何间隔有下面的关系:
γi=γ^i∥w∥γ=γ^∥w∥\gamma_i=\frac{\hat{\gamma}_i}{\|w\|}\\\gamma=\frac{\hat{\gamma}}{\|w\|} γi=∥w∥γ^iγ=∥w∥γ^
间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。
下面考虑如何求得一个几何间隔最大的分离超平面,即最大间隔分离超平面。具体地,这个问题可以表示为下面的约束最优化问题:
maxw,bγs.t.yi(w∥w∥⋅xi+b∥w∥)≥γ,i=1,2,⋯,N\begin{align} &\max_{w,b}\gamma \\ &\text{s.t.}\quad y_i\left(\frac{w}{\|w\|}\cdot x_i + \frac{b}{\|w\|}\right) \ge \gamma,\quad i=1,2,\cdots,N \end{align} w,bmaxγs.t.yi(∥w∥w⋅xi+∥w∥b)≥γ,i=1,2,⋯,N
即我们希望最大化超平面关于数据集的集合间隔 γ\gammaγ, 约束条件表示的是超平面关于每个训练样本的几何间隔至少是 γ\gammaγ。考虑几何间隔和函数间隔的关系式,可将上述最优化问题改写为
maxw,bγ^∥w∥s.t.yi(w⋅xi+b)≥γ^,i=1,2,⋯,N\begin{align} &\max_{w,b}\frac{\hat{\gamma}}{\|w\|}\\ &\text{s.t.}\quad y_i(w\cdot x_i+b)\ge \hat{\gamma},\quad i=1,2,\cdots,N \end{align} w,bmax∥w∥γ^s.t.yi(w⋅xi+b)≥γ^,i=1,2,⋯,N
函数间隔 γ^\hat{\gamma}γ^ 的取值并不影响最优化问题的解,取 γ^=1\hat{\gamma}=1γ^=1,并注意到最大化 1∥w∥\frac{1}{\|w\|}∥w∥1 和最小化 12∥w∥2\frac{1}{2}\|w\|^221∥w∥2 是等价的,于是可以得到下面的线性可分支持向量机学习的最优化问题:
minw,b12∥w∥2s.t.yi(w⋅xi+b)−1≥0,i=1,2,⋯,N\begin{align} &\min_{w,b}\frac{1}{2}\|w\|^2 \\ &\text{s.t.} \quad y_i(w\cdot x_i+b)-1\ge 0 ,\quad i=1,2,\cdots,N \end{align} w,bmin21∥w∥2s.t.yi(w⋅xi+b)−1≥0,i=1,2,⋯,N
这是一个凸二次规划问题。如果求出了该问题的解 w∗,b∗w^*, b^*w∗,b∗,那么就可以得到最大间隔分离超平面 w∗⋅x+b∗=0w^* \cdot x + b^*=0w∗⋅x+b∗=0。
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量。支持向量是使约束条件式 (6) 等号成立的点,即
yi(w⋅xi+b)−1=0y_i(w\cdot x_i+b)-1=0 yi(w⋅xi+b)−1=0
对 yi=+1y_i=+1yi=+1 的正例点,支持向量在超平面
H1:w⋅x+b=1H_1:w\cdot x+b=1 H1:w⋅x+b=1
对 yi=−1y_i=-1yi=−1 的负例点,支持向量在超平面
H2:w⋅x+b=−1H_2:w\cdot x+b=-1 H2:w⋅x+b=−1
下图所示,在 H1H_1H1 和 H2H_2H2 上的点就是支持向量。

注意到 H1H_1H1 和 H2H_2H2 平行,并且没有实例点落在它们中间。在 H1H_1H1 和 H2H_2H2 之间形成的长带宽度称为间隔,间隔依赖于分离超平面的法向量,等于 2∥w∥\frac{2}{\|w\|}∥w∥2。H1H_1H1 和 H2H_2H2 称为间隔边界。
在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。由于支持向量在确定分离超平面中起着决定性作用,所以将这种分类模型称为支持向量机。
例子:
一个训练数据集,其正例点是 x1=(3,3),x2=(4,3)x_1=(3,3),\ x_2=(4,3)x1=(3,3), x2=(4,3),负例点是 (1,1)(1,1)(1,1),试求最大间隔分离超平面。
根据训练集构造约束最优化问题:
minw,b12(w12+w22)s.t.3w1+3w2+b≥14w1+3w2+b≥1−w1−w2−b≥1\begin{align} &\min_{w,b}\quad \frac{1}{2}(w_1^2+w_2^2) \\ \text{s.t.} && 3w_1+3w_2+b\ge 1 \\ && 4w_1+3w_2+b\ge 1 \\ && -w_1-w_2-b \ge 1 \end{align} s.t.w,bmin21(w12+w22)3w1+3w2+b≥14w1+3w2+b≥1−w1−w2−b≥1
求得此最优化问题的解 w1=w2=12,b=−2w_1=w_2=\frac{1}{2},\ b=-2w1=w2=21, b=−2,于是最大间隔分离超平面为
12x(1)+12x(2)−2=0\frac{1}{2}x^{(1)}+\frac{1}{2}x^{(2)}-2=0 21x(1)+21x(2)−2=0
其中,x1=(3,3)x_1=(3,3)x1=(3,3) 与 x3=(1,1)x_3=(1,1)x3=(1,1) 为支持向量。
[1] 《机器学习方法》,李航,清华大学出版社。