统计学习方法读书笔记第七章:支持向量机

统计学习方法读书笔记第七章:支持向量机

支持向量机(support vector machines, SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法

线性可分支持向量机与硬间隔最大化

  • 线性可分支持向量机
    考虑一个二类分类问题。假设输入空间与特征空间为两个不同的空间。输入空间为欧式空间或离散集合,特征空间为欧式空间或希尔伯特空间。线性可分支持向量机、线性支持向量机假设这两个空间的原始一一对应,并将输入空间中的输入映射为特征空间中的特征向量。非线性支持向量机利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量。所以,输入都由输入空间转换到特征空间,支持向量机的学习是在特征空间进行的。
    假设给定一个特征空间上的训练数据集
    T={(x1,y1),(x2,y2), ,(xN,yN)} T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}
    其中,xiX=Rnx_i\in\mathcal{X}=R^nyiY={+1,1}y_i\in\mathcal{Y}=\{+1,-1\}i=1,2, ,Ni=1,2,\cdots,Nxix_i为第ii个特征向量,也称为实例,yiy_ixix_i的类标记,当yi=+1y_i=+1时,称xix_i为正例;当yi=1y_i=-1时,称xix_i为福利,(Xi,yi)(X_i,y_i)称为样本点。再假设训练数据集是线性可分的。
    学习的目标是在特征空间中找到一个分离超平面,能将实例分到不同的类。分离超平面对应于方程wx+b=0w\cdot x+b=0,它由法向量ww和截距bb决定,可用(w,b)(w,b)来表示。一般地,当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。感知机利用误分类最小的策略,求得分离超平面,不过这时的解由无穷多个。线性可分支持向量机利用间隔最大化求解最优分离超平面,这时,解释唯一的。
    线性可分支持向量机 给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为
    (1)wx+b=0 w^{*}\cdot x+b^{*}=0 \tag{1}
    以及相应的分类决策函数
    (2)f(x)=sign(wx+b) f(x)=sign(w^{*}\cdot x+b^{*}) \tag{2}
    称为线性可分支持向量机。
    考虑下图所示的二维特征空间中的分类问题。图中“\circ”表示正例,“×\times”表示负例。训练数据集线性可分,这时有许多直线能将两类数据正确划分。线性可分支持向量机对应着将两类数据正确划分并且间隔最大的直线。
    统计学习方法读书笔记第七章:支持向量机

  • 函数间隔和几何间隔
    函数间隔 对于给定的训练数据集TT和超平面(w,b)(w,b),定义超平面(w,b)(w,b)关于样本点(xi,yi)(x_i,y_i)的函数间隔为
    (3)γ^i=yi(wx+b) \hat{\gamma}_i=y_i(w\cdot x+b) \tag{3}
    定义超平面(w,b)(w,b)关于训练数据集TT的函数间隔为超平面(w,b)(w,b)关于TT中所有样本点(xi,yi)(x_i,y_i)的函数间隔之最小值,即
    (4)γ^=mini=1, ,Nγ^i \hat{\gamma}=\min_{i=1,\cdots,N}\hat{\gamma}_i \tag{4}
    函数间隔可以表示分类预测的正确性及确信度。可以对分离超平面的法向量ww加某些约束,如规范化,w=1||w||=1,使得间隔是确定的。这时函数间隔成为几何间隔。
    几何间隔 对于给定的训练数据集TT和超平面(w,b)(w,b),定义超平面(w,b)(w,b)关于样本点(xi,yi)(x_i,y_i)的几何间隔为
    (5)γi=yi(wwxi+bw) \gamma_i=y_i\bigg(\frac{w}{||w||}\cdot x_i+\frac{b}{||w||}\bigg) \tag{5}
    定义超平面(w,b)(w,b)关于训练数据集TT的几何间隔为超平面(w,b)(w,b)关于TT中所有样本点(xi,yi)(x_i,y_i)的集合间隔之最小值,即
    (6)γ=mini=1, ,Nγi \gamma=\min_{i=1,\cdots,N}\gamma_i \tag{6}
    超平面(w,b)(w,b)关于样本点(xi,yi)(x_i,y_i)的几何间隔一般是实例点到超平面的带符号的距离,当样本点被超平面正确分类时就是实例点到超平面的距离。
    从函数间隔和几何间隔的定义(式(3)~式(6))可知,函数间隔和几何间隔有下面的关系:
    (7)γi=γ^w \gamma_i=\frac{\hat\gamma}{||w||} \tag{7}
    (8)γ=γ^w \gamma=\frac{\hat\gamma}{||w||} \tag{8}
    如果w=1||w||=1,那么函数间隔和几何间隔相等。如果超平面参数wwbb成比例地改变(超平面没有改变),函数间隔也按此比例改变,而几何间隔不变。

  • 间隔最大化
    支持向量机学习的基本想法是求解能够正确划分训练数据集并且集合间隔最大的分离超平面。对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的。这里的间隔最大化又称为硬间隔最大化(与将要讨论的训练数据集近似线性可分时的软间隔最大化相对应)。
    间隔最大化的直观解释是:队训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。

  1. 最大间隔分离超平面
    下面考虑如何求得一个几何间隔最大的分离超平面,即最大间隔分离超平面。具体地,这个问题可以表示为下面的约束最优化问题
    (9)maxw,bγ \max_{w,b}\gamma \tag{9}
    (10)s.t.yi(wwxi+bw)γ,i=1,2, ,N s.t. \quad y_i\bigg(\frac{w}{||w||}\cdot x_i+\frac{b}{||w||}\bigg)\geq\gamma,\quad i=1,2,\cdots,N \tag{10}
    即我们希望最大化超平面(w,b)(w,b)关于训练数据集的几何间隔γ\gamma,约束条件表示的是超平面(w,b)(w,b)关于每个训练样本点的几何间隔至少是γ\gamma
    考虑几何间隔和函数间隔的关系式(8),可将这个问题改写为
    (11)maxw,bγ^w \max_{w,b}\frac{\hat\gamma}{||w||} \tag{11}
    (12)s.t.yi(wxi+b)γ^,i=1,2, ,N s.t.\quad y_i(w\cdot x_i+b)\geq\hat\gamma,\quad i=1,2,\cdots,N \tag{12}
    函数间隔γ^\hat\gamma的取值并不影响最优化问题的解。事实上,假设将wwbb按比例改变为λw\lambda wλb\lambda b,这时函数间隔成为λγ^\lambda\hat\gamma。函数间隔的这一改变对上面最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,也就是说,它产生一个等价的最优化问题。这样,就可以取γ^=1\hat\gamma=1。将γ^=1\hat\gamma=1带入上面的最优化问题,注意到最大化1w\frac{1}{||w||}和最小化12w2\frac{1}{2}||w||^2是等价的,于是就得到下面的线性可分支持向量机的最优化问题
    (13)minw,b12w2 \min_{w,b} \frac{1}{2}||w||^2 \tag{13}
    (14)s.t.yi(wxi+b)10,i=1,2, ,N s.t.\quad y_i(w\cdot x_i+b)-1\geq0,\quad i=1,2,\cdots,N \tag{14}
    这是一个凸二次规划问题。
    凸优化问题是指约束最优化问题
    (15)minwf(w) \min_{w} \quad f(w) \tag{15}
    (16)s.t.gi(w)0,i=1,2, ,k s.t. \quad g_i(w)\leq 0, i=1,2,\cdots,k \tag{16}
    (17)hi(w)=0,i=1,2, ,l \quad h_i(w)=0, i=1,2,\cdots,l \tag{17}
    其中,目标函数f(w)f(w)和约束函数gi(w)g_i(w)都是RnR^n上的连续可微的凸函数,约束函数hi(w)h_i(w)RnR^n上的仿射函数。
    当目标函数f(w)f(w)是二次函数且约束函数gi(w)g_i(w)是仿射函数时,上述凸优化问题成为凸二次规划问题。
    如果求出了约束最优化问题(13)~(14)的解ww^*bb^*,那么就可以得到最大间隔分离超平面wx+b=0w^*\cdot x+b=0及分类决策函数f(x)=sign(wx+b)f(x)=sign(w^*\cdot x+b),即线性可分支持向量机模型。
    综上所述,就有下面的线性可分支持向量机的学习算法-最大间隔法。
    算法1(线性可分支持向量机学习算法-最大间隔法)
    输入:线性可分训练数据集T={(x1,y1),(x2,y2), ,(xN,yn)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_n)\},其中,xiX=Rn,yiY={1,+1},i=1,2, ,Nx_i\in\mathcal{X}=R^n, y_i\in\mathcal{Y}=\{-1,+1\}, i=1,2,\cdots,N
    输出:最大间隔分离超平面和分类决策函数。
    (1) 构造并求解约束最优化问题:
    minw,b12w2s.t.yi(wxi+b)10,i=1,2, ,N \begin{aligned} &\min_{w,b}\quad\frac{1}{2}||w||^2 \\ &s.t.\quad y_i(w\cdot x_i+b)-1\geq 0, \quad i=1,2,\cdots,N \end{aligned}
    求得最优解ww^*bb^*
    (2) 由此得到分离超平面:
    wx+b=0 w^*\cdot x+b^*=0
    分类决策函数
    f(x)=sign(wx+b) f(x)=sign(w^*\cdot x+b^*)

  2. 最大间隔分离超平面的存在唯一性
    线性可分训练数据集的最大间隔分离超平面是存在且唯一的。
    定理1(最大间隔分离超平面的存在唯一性) 弱训练数据集TT线性可分,则可将训练数据集中的样本点完全正确分开的最大间隔超平面存在且唯一。
    证明 (1) 存在性。由于训练数据集线性可分,所以算法1中的最优化问题(13)~(14)一定存在可行解。又由于目标函数有下界,所以最优化问题(13)~(14)必有解,记作(w,b)(w^*,b^*)。由于训练数据集中既有正类点又有负类点,所以(w,b)=(0,b)(w,b)=(0,b)不是最优化的可行解,因而最优解(w,b)(w^*,b^*)比满足w0w^*\neq0。由此得知分离超平面的存在性。
    (2) 唯一性。首先证明最优化问题(13)~(14)解中ww^*的唯一性。假设问题(13)~(14)存在两个最优解(w1,b1)(w_1^*,b_1^*)(w2,b2)(w_2^*,b_2^*)。显然w1=w2=c||w_1^*||=||w_2^*||=c,其中cc是一个常数。令w=w1+w22,b=b1+b22w=\frac{w_1^*+w_2^*}{2},b=\frac{b_1^*+b_2^*}{2},易知(w,b)(w,b)是问题(13)~(14)的可行解,从而有
    cw12w1+12w2=c c\leq||w||\leq\frac{1}{2}||w_1^*||+\frac{1}{2}||w_2^*||=c
    上式表明,式中的不等号可变为等号,即w=12w1+12w2||w||=\frac{1}{2}||w_1^*||+\frac{1}{2}||w_2^*||,从而有w1=λw2,λ=1w_1^*=\lambda w_2^*,|\lambda|=1。若λ=1\lambda=-1,则w=0w=0(w,b)(w,b)不是问题(13)~(14)的可行解,矛盾。因此必有λ=1\lambda=1,即
    w1=w2 w_1^*=w_2^*
    由此可以把两个最优解(w1,b1)(w_1^*,b_1^*)(w2,b2)(w_2^*,b_2^*)分别写成(w,b1)(w^*,b_1^*)(w,b2)(w^*,b_2^*)。再证b1=b2b_1^*=b_2^*。设x1x_1'x2x_2'是集合{xiyi=+1}\{x_i|y_i=+1\}中分别对应于(w,b1)(w^*,b_1^*)(w,b2)(w^*,b_2^*)使得问题的不等式等号成立的点,x1x_1''x2x_2''试剂盒{xiyi=1}\{x_i|y_i=-1\}中分别对应于(w,b1)(w^*,b_1^*)(w,b2)(w^*,b_2^*)使得问题的不等式等号成立的点,则由b1=12(wx1+wx1),b2=12(wx2+wx2)b_1^*=-\frac{1}{2}(w^*\cdot x_1'+w^*\cdot x_1''),b_2^*=-\frac{1}{2}(w^*\cdot x_2'+w^*\cdot x_2''),得
    b1b2=12[w(x1x2)+w(x1x2)] b_1^*-b_2^*=-\frac{1}{2}[w^*\cdot(x_1'-x_2')+w^*\cdot(x_1''-x_2'')]
    又因为
    wx2+b11=wx1+b1wx1+b21=wx2+b2 \begin{aligned} &w^*\cdot x_2'+b_1^*\geq1=w^*\cdot x_1'+b_1^* \\ &w^*\cdot x_1'+b_2^*\geq1=w^*\cdot x_2'+b_2^* \end{aligned}
    所以,w(x1x2)=0w^*\cdot(x_1'-x_2')=0。同理有w(x1x2)=0w^*\cdot(x_1''-x_2'')=0。因此,
    b1b2=0 b_1^*-b_2^*=0
    w1=w2w_1^*=w_2^*b1=b2b_1^*=b_2^*可知,两个最优解(w1,b1)(w_1^*,b_1^*)(w2,b2)(w_2^*,b_2^*)是相同的,解的唯一性得证。
    由问题(13)~(14)解的唯一性即得分离超平面是唯一的。
    (3) 分离超平面能将训练数据集中的两类点完全正确地分开。
    由解满足问题的约束条件即可得知。

  3. 支持向量和间隔边界
    在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量。支持向量是使约束条件式(14)等号成立的点,即
    yi(wxi+b)1=0 y_i(w\cdot x_i+b)-1=0
    yi=+1y_i=+1的正例点,支持向量在超平面
    H1:wx+b=1 H_1:w\cdot x+b=1
    上,对yi=1y_i=-1的负例点,支持向量在超平面
    H2:wx+b=1 H_2:w\cdot x+b=-1
    上。如下图所示,在H1H_1H2H_2上的点就是支持向量。
    统计学习方法读书笔记第七章:支持向量机
    注意到H1H_1H2H_2平行,并且没有实例点落在它们中间。在H1H_1H2H_2之间形成的一条长带,分离超平面与它们平行且位于它们*。长带的宽度,即H1H_1H2H_2之间的距离称为间隔。间隔依赖于分离超平面的法向量ww,等于2w\frac{2}{||w||}H1H_1H2H_2称为分隔边界。
    在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。若果移动支持向量将改变所求的解;但是如果在间隔边界以外移动其他实例点,甚至去掉这些点,则解是不会改变的。由于支持向量在确定分离超平面中起着决定性作用,所以将这种分类模型称为支持向量。支持向量的个数一般很少,所以支持向量机由很少的“重要的”训练样本确定。

  • 学习的对偶算法
    为了求解线性可分支持向量机的最优化问题(13)~(14),将它作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法。这样做的有点,一是对偶问题往往更容易求解;二是自然引入核函数,进而推广到非线性分类问题。
    首先构建拉格朗日系数。为此,对每一个不等式约束(14)引进拉格朗日乘子αi0,i=1,2, ,N\alpha_i\geq0,i=1,2,\cdots,N,定义拉格朗日函数:
    (18)L(w,b,α)=12w2i=1Nαiyi(wxi+n)+i=1nαi L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum_{i=1}^N\alpha_iy_i(w\cdot x_i+n)+\sum_{i=1}^n\alpha_i \tag{18}
    其中,α=(α1,α2, ,αN)T\alpha=(\alpha_1,\alpha_2,\cdots,\alpha_N)^T为拉格朗日乘子向量。
    根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
    maxαminw,bL(w,b,α) \max_\alpha\min_{w,b}L(w,b,\alpha)
    所以,为了得到对偶问题的解,需要先求L(w,b,α)L(w,b,\alpha)w,bw,b的极小,再求对α\alpha的极大。
    (1) 求minw,bL(w,b,α)\min_{w,b}L(w,b,\alpha)
    将拉格朗日函数L(w,b,α)L(w,b,\alpha)分别对w,bw,b求偏导数并令其等于0。
    wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0 \begin{aligned} &\triangledown_wL(w,b,\alpha)=w-\sum_{i=1}^N\alpha_iy_ix_i=0 \\ &\triangledown_bL(w,b,\alpha)=\sum_{i=1}^N\alpha_iy_i=0 \end{aligned}

    (19)w=i=1Nαiyixi w = \sum_{i=1}^N\alpha_iy_ix_i \tag{19}
    (20)i=1Nαiyi=0 \sum_{i=1}^N\alpha_iy_i=0 \tag{20}
    将式(19)带入拉格朗日函数(18),并利用式(20),即得
    L(w,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi((j=1Nαjyjxj)xi+b)+i=1Nα=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi \begin{aligned} L(w,b,\alpha)&=\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_iy_i\bigg(\bigg(\sum_{j=1}^N\alpha_jy_jx_j\bigg)\cdot x_i+b\bigg)+\sum_{i=1}^N\alpha \\ &=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\alpha_i \end{aligned}

    minw,bL(w,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi \min_{w,b}L(w,b,\alpha)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\alpha_i
    (2) 求minw,bL(w,b,α)\min_{w,b}L(w,b,\alpha)α\alpha的极大,即是对偶问题
    (21)maxα12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi \max_{\alpha}-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\alpha_i \tag{21}
    s.t.i=1Nαiyi=0α0,i=1,2, ,N \begin{aligned} s.t. \quad &\sum_{i=1}^N\alpha_iy_i=0 \\ &\alpha\geq0, \quad i=1,2,\cdots,N \end{aligned}
    将式(21)的目标函数由求极大转换成求极小,就得到下面与之等价的对偶最优化问题:
    (22)minα12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi \min_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\alpha_i \tag{22}
    (23)s.t.i=1Nαiyi=0 s.t.\quad\sum_{i=1}^N\alpha_iy_i=0 \tag{23}
    (24)αi0,i=1,2, ,N \alpha_i\geq0, \quad i=1,2,\cdots,N \tag{24}
    考虑原始最优化问题(13)~(14)和对偶最优化问题(22)~(24),原始问题满足定理C.2的条件,所以存在w,α,βw^*,\alpha^*,\beta^*,使ww^*是原始问题的解,α,β\alpha^*,\beta^*是对偶问题的解。这意味着求解原始问题(13)~(14)可以转换为求解对偶问题(22)~(24)。
    对线性可分训练数据集,假设对偶最优化问题(22)~(24)对α\alpha的解为α=(α1,α2, ,αN)\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*),可以由α\alpha^*求得原始最优化问题(13)~(14)对(w,b)(w,b)的解w,bw^*,b^*。有下面的定理。
    定理2α=(α1,α2, ,αN)\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)是对偶问题(22)~(24)的解,则存在下标jj,使得αj>0\alpha_j^*>0,并可按下式求得原始最优化问题(13)~(14)的解w,bw^*,b^*
    (25)w=i=1Nαiyixi w^*=\sum_{i=1}^N\alpha_i^*y_ix_i \tag{25}
    (26)b=yji=1Nαiyi(xixj) b^*=y_j-\sum_{i=1}^N\alpha_i^*y_i(x_i\cdot x_j) \tag{26}
    证明 根据定理C.3,KKT条件成立,即得
    (27)wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0αi(yi(wxi+b)1)=0,i=1,2, ,Nyi(wxi+b)10,i=1,2, ,Nαi0,i=1,2, ,N \begin{aligned} &\triangledown_wL(w^*,b^*,\alpha^*)=w^*-\sum_{i=1}^N\alpha_i^*y_ix_i=0 \tag{27} \\ &\triangledown_bL(w^*,b^*,\alpha^*) =-\sum_{i=1}^N\alpha_i^*y_i=0 \\ &\alpha_i^*(y_i(w^*\cdot x_i+b^*)-1)=0,\quad i=1,2,\cdots,N \\ &y_i(w^*\cdot x_i+b^*)-1\geq0,\quad i=1,2,\cdots,N \\ &\alpha_i^*\geq0,\quad i=1,2,\cdots,N \end{aligned}
    由此得
    w=iαiyixi w^*=\sum_i\alpha_i^*y_ix_i
    其中至少有一个αj>0\alpha_j^*>0(用反证法,假设α=0\alpha^*=0,由式(27)可知w=0w^*=0,而w=0w^*=0不是原始最优化问题(13)~(14)的解,产生矛盾),对此jj
    (28)yj(wxj+b)1=0 y_j(w^*\cdot x_j+b^*)-1=0 \tag{28}
    将式(25)带入式(28)并注意到yj2=1y_j^2=1,即得
    b=yji=1Nαiyi(xixj) b^*=y_j-\sum_{i=1}^N\alpha_i^*y_i(x_i\cdot x_j)
    由此定理可知,分离超平面可以写成
    (29)i=1Nαiyi(xxi)+bi=0 \sum_{i=1}^N\alpha_i^*y_i(x\cdot x_i)+b_i=0 \tag{29}
    分类决策函数可以写成
    (30)f(x)=sign(i=1Nαiyi(xxi)+b) f(x)=sign\bigg(\sum_{i=1}^N\alpha_i^*y_i(x\cdot x_i)+b^*\bigg) \tag{30}
    这就是说,分类决策函数只依赖于输入xx和训练样本输入的内积。式(30)称为线性可分支持向量机的对偶形式。
    综上所述,对于给定的现行可分训练数据集,可以首先求对偶问题(22)~(24)的解α\alpha^*;再利用式(25)和式(26)求得原始问题的解w,bw^*,b^*;从而得到分离超平面及分类决策函数。这种算法称为线性可分支持向量机的对偶学习算法,是线性可分支持向量机学习的基本算法。
    算法2(线性可分支持向量机学习算法)
    输入:现行可分训练集T={(x1,y1),(x2,y2), ,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},其中xiX=Rn,yiY={1,+1},i=1,2, ,Nx_i\in\mathcal{X}=R^n,y_i\in\mathcal{Y}=\{-1,+1\},i=1,2,\cdots,N
    输出:分离超平面和分类决策函数。
    (1) 构造并求解约束最优化问题
    minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t.i=1Nαiyi=0αi0,i=1,2, ,N \begin{aligned} &\min_\alpha\quad\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i \\ &s.t.\quad \sum_{i=1}^N\alpha_iy_i=0 \\ &\alpha_i\geq0, i=1,2,\cdots,N \end{aligned}
    求得最优解α=(α1,α2, ,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T
    (2) 计算
    w=i=1Nαiyixi w^*=\sum_{i=1}^N\alpha_i^*y_ix_i
    并选择α\alpha^*的一个正分量αj>0\alpha_j^*>0,计算
    b=yji=1Nαiyi(xixj) b^*=y_j-\sum_{i=1}^N\alpha_i^*y_i(x_i\cdot x_j)
    求得分离超平面
    wx+b=0 w^*\cdot x+b^*=0
    分类决策函数:
    f(x)=sign(wx+b) f(x)=sign(w^*\cdot x+b^*)
    在线性可分支持向量机中,由式(25)、式(26)可知,ww^*bb^*只依赖于训练数据中对应于αi>0\alpha_i^*>0的样本点(xi,yi)(x_i,y_i),而其他样本点对ww^*bb^*没有影响。我们将训练数据中对应于αi>0\alpha_i^*>0的实例点xiRnx_i\in R^n称为支持向量。
    定义4(支持向量) 考虑原始优化问题(13)~(14)及对偶最优化问题(22)~(24),将训练数据集中对应于αi>0\alpha_i^*>0的样本点xi,yix_i,y_i的实例xiRnx_i\in R^n称为支持向量。
    根据这一定义,支持向量一定在间隔边界上。由KKT互补条件可知,
    αi(yi(wxi+b)1)=0,i=1,2, ,N \alpha_i^*(y_i(w^*\cdot x_i+b^*)-1)=0,\quad i=1,2,\cdots,N
    对应于αi>0\alpha_i^*>0的实例xix_i,有
    yi(wxi+b)1=0 y_i(w^*\cdot x_i+b^*)-1=0

    wxi+b=±1 w^*\cdot x_i+b^*=\pm1
    xix_i一定在间隔边界上。这里的支持向量的定义与前面给出的支持向量的定义是一致的。

线性支持向量机与软间隔最大化

  • 线性支持向量机
    线性可分问题的支持向量机学习方法,对线性不可分训练数据是不适用的,因为这时上述方法中的不等式约束并不能都成立。怎么才能将它扩展到线性不可分问题呢?这就需要修改硬间隔最大化,使其称为软间隔最大化。
    假设给定一个特征空间上的训练数据集
    {(x1,y1),(x2,y2), ,(xN,yN)} \{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}
    其中,KaTeX parse error: Can't use function '\=' in math mode at position 49: …cal{Y}=\{+1,-11\̲=̲},i=1,2,\cdots,…xix_i为第ii个特征向量,yiy_ixix_i的类标记。再假设训练数据集不是线性可分的。通常情况是,训练数据中有一些特异点,将这些特异点除去后,剩下大部分的样本点组成的集合是线性可分的。
    线性不可分意味着某些样本点(xi,yi)(x_i,y_i)不能满足函数间隔大于等于1的约束条件(14)。为了解决这个问题,可以对每个样本点(xi,yi)(x_i,y_i)引进一个松弛变量ξ0\xi\geq0,使函数间隔加上松弛变量大于等于1。这样,约束条件变为
    yi(wxi+b)1ξi y_i(w\cdot x_i+b)\geq1-\xi_i
    同时,对每个松弛变量ξi\xi_i,支付一个代价ξi\xi_i。目标函数由原来的12w2\frac{1}{2}||w||^2变成
    (31)12w2+Ci=1Nξi \frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i \tag{31}
    这里,C>0C>0称为惩罚参数,一般由应用问题决定,CC值大时对误分类的惩罚增大,CC值小时对误分类的惩罚减小。最小化目标函数(31)包含两层含义:使12w2\frac{1}{2}||w||^2尽量小即间隔尽量大,同时使误分类点的个数尽量小,CC是调和二者的系数。
    有了上面的思路,可以和训练数据集线性可分时一样来考虑训练数据集线性不可分时的线性支持向量机学习问题。相应于硬间隔最大化,它称为软间隔最大化。
    线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题(原始问题):
    (32)minw,b,ξ12w2+Ci=1Nξi \min_{w,b,\xi}\quad\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i \tag{32}
    (33)s.t.yi(wxi+b)1ξi,i=1,2, ,N s.t.\quad y_i(w\cdot x_i+b)\geq1-\xi_i,\quad i=1,2,\cdots,N \tag{33}
    (34)ξi0,i=1,2, ,N \xi_i\geq0,\quad i=1,2,\cdots,N \tag{34}
    原始问题(32)~(34)是一个凸二次规划问题,因而关于(w,bξ)(w,b\xi)的解是存在的。可以证明ww的解是唯一的,但bb的解不唯一,bb的解存在于一个区间。
    设问题(32)~(34)的解是w,bw^*,b^*,于是可以得到分离超平面wx+b=0w^*\cdot x+b^*=0以及分类决策函数f(x)=sign(wx+b)f(x)=sign(w^*\cdot x+b^*)。称这样的模型为训练样本线性不可分时的线性支持向量机,简称为线性支持向量机。显然,线性支持向量机包含线性可分支持向量机。由于现实中训练数据集往往是线性不可分的,线性支持向量机具有更广的适用性。
    下面给出线性支持向量机的定义。
    定义5(线性支持向量机) 对于给定的线性不可分的训练数据集,通过求解图二次规划问题,即软间隔最大化问题(32)~(34),得到分离超平面为
    (35)wx+b=0 w^*\cdot x+b^*=0 \tag{35}
    以及相应的分类决策函数
    (36)f(x)=sign(wx+b) f(x)=sign(w^*\cdot x+b^*) \tag{36}
    称为线性支持向量机。

  • 学习的对偶算法
    原始问题(32)~(34)的对偶问题是
    (37)minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi \min_\alpha\quad\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i \tag{37}
    (38)s.t.i=1Nαiyi=0 s.t.\quad\sum_{i=1}^N\alpha_iy_i=0 \tag{38}
    (39)0αiC,i=1,2, ,N 0\leq\alpha_i\leq C,\quad i=1,2,\cdots,N \tag{39}
    原始最优化问题(32)~(34)的拉格朗日函数是
    (40)L(w,b,ξ,α,μ)12w2+Ci=1Nξii=1Nαi(yi(wxi+b)1+ξi)i=1Nμiξi L(w,b,\xi,\alpha,\mu)\equiv\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\alpha_i(y_i(w\cdot x_i+b)-1+\xi_i)-\sum_{i=1}^N\mu_i\xi_i \tag{40}
    其中,αi0,μi0\alpha_i\geq0,\mu_i\geq0
    对偶问题是拉格朗日函数的极大极小问题。首先求L(w,b,ξ,α,μ)L(w,b,\xi,\alpha,\mu)w,b,ξw,b,\xi的极小,由
    wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξiL(w,b,ξ,α,μ)=Cαiμi=0 \begin{aligned} &\triangledown_wL(w,b,\xi,\alpha,\mu)=w-\sum_{i=1}^N\alpha_iy_ix_i=0 \\ &\triangledown_bL(w,b,\xi,\alpha,\mu)=-\sum_{i=1}^N\alpha_iy_i=0 \\ &\triangledown_{\xi_i}L(w,b,\xi,\alpha,\mu)=C-\alpha_i-\mu_i=0 \end{aligned}

    (41)w=i=1Nαiyixi w=\sum_{i=1}^N\alpha_iy_ix_i \tag{41}
    (42)i=1Nαiyi=0 \sum_{i=1}^N\alpha_iy_i=0 \tag{42}
    (43)Cαiμi=0 C-\alpha_i-\mu_i=0 \tag{43}
    将式(41)~(43)带入式(40),得
    minw,b,ξL(w,b,ξ,α,μ)=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi \min_{w,b,\xi}L(w,b,\xi,\alpha,\mu)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\alpha_i
    再对minw,b,ξL(w,b,ξ,α,μ)\min_{w,b,\xi}L(w,b,\xi,\alpha,\mu)α\alpha的极大,即得对偶问题:
    (44)maxα12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi \max_\alpha\quad -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\alpha_i \tag{44}
    (45)s.t.i=1Nαiyi=0 s.t. \quad \sum_{i=1}^N\alpha_iy_i=0 \tag{45}
    (46)Cαiμi=0 C-\alpha_i-\mu_i=0 \tag{46}
    (47)αi0 \alpha_i\geq0 \tag{47}
    (48)μi0,i=1,2, ,N \mu_i\geq0, \quad i=1,2,\cdots,N \tag{48}
    将对偶最优化问题(44)~(48)进行变换;利用等式约束(46)消去μi\mu_i,从而只留下变量αi\alpha_i,并将约束(46)~(48)写成
    (49)0αiC 0\leq\alpha_i\leq C \tag{49}
    再将对目标函数求极大转换为求极小,于是得到对偶问题(37)~(39)。
    可以通过求解对偶问题而得到原始问题的解,进而确定分离超平面和决策函数。为此,就可以定理的形式叙述原始问题的最优解和对偶问题的最优解的关系。
    定理3α=(α1,α2, ,αN)\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)是对偶问题(37)~(39)的一个解,弱存在α\alpha^*的一个分量αj,0<αj<C\alpha_j^*,0<\alpha_j^*<C,则原始问题的解w,bw^*,b^*可按下式求得:
    (50)w=i=1Nαiyixi w^*=\sum_{i=1}^N\alpha_i^*y_ix_i \tag{50}
    (51)b=yji=1Nyiαi(xixj) b^*=y_j-\sum_{i=1}^Ny_i\alpha_i^*(x_i\cdot x_j) \tag{51}
    证明 原始问题是凸二次规划问题,解满足KKT条件。即得
    (52)wL(w,bξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαyi=0ξL(w,b,ξ,α,μ)=Cαμ=0 \begin{aligned} &\triangledown_wL(w^*,b^*\xi^*,\alpha^*,\mu^*)=w^*-\sum_{i=1}^N\alpha_i^*y_ix_i=0 \\ &\triangledown_bL(w^*,b^*,\xi^*,\alpha^*,\mu^*)=-\sum_{i=1}^N\alpha^*y_i=0 \\ &\triangledown_\xi L(w^*,b^*,\xi^*,\alpha^*,\mu^*)=C-\alpha^*-\mu^*=0 \tag{52} \end{aligned}
    (53)αi(yi(wxi+b)1+ξi)=0 \alpha_i^*(y_i(w^*\cdot x_i+b^*)-1+\xi_i^*)=0 \tag{53}
    (54)μiξi=0 \mu_i^*\xi_i^*=0 \tag{54}
    yi(wxi+b)1+ξi=0ξi0αi0μi0,i=1,2, ,N y_i(w^*\cdot x_i+b^*)-1+\xi_i^*=0 \\ \xi_i^*\geq0 \\ \alpha_i^*\geq0\\ \mu_i^*\geq0,\quad i=1,2,\cdots,N
    由式(52)易知式(50)成立。再由式(53)~(54)可知,弱存在αi,0<αj<C\alpha_i^*,0<\alpha_j^*<C,则yi(wxi+b)1=0y_i(w^*\cdot x_i+b^*)-1=0。由此即得式(51)。
    由此定理可知,分离超平面可以写成
    (55)i=1Nαiyi(xxi)+b=0 \sum_{i=1}^N\alpha_i^*y_i(x\cdot x_i)+b^*=0 \tag{55}
    分类决策函数可以写成
    (56)f(x)=sign(i=1Nαiyi(xxi)+b) f(x)=sign\bigg(\sum_{i=1}^N\alpha_i^*y_i(x\cdot x_i)+b^*\bigg) \tag{56}
    式(56)为线性支持向量机的对偶形式。
    综合前面的结果,有下面的算法。
    算法3(线性支持向量机学习算法)
    输入:训练数据集T={(x1,x2),(x2,y2), ,(xN,yN)}T=\{(x_1,x_2),(x_2,y_2),\cdots,(x_N,y_N)\},其中,xiX=Rn,yiY={1,+1},i=1,2, ,Nx_i\in\mathcal{X}=R^n,y_i\in\mathcal{Y}=\{-1,+1\},i=1,2,\cdots,N
    输出:分离超平面和分类决策函数。
    (1) 选择惩罚参数C>0C>0,构造并求解凸二次规划问题
    minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t.i=1Nαiyi=00αiC,i=1,2, ,N \begin{aligned} &\min_\alpha\quad\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i \\ &s.t.\quad \sum_{i=1}^N\alpha_iy_i=0 \\ &\qquad\quad 0\leq\alpha_i\leq C,\quad i=1,2,\cdots,N \end{aligned}
    求得最优解α=(α1,α2, ,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T
    (2) 计算w=i=1Nαiyixiw^*=\sum_{i=1}^N\alpha_i^*y_ix_i
    选择α\alpha^*的一个分量αj\alpha_j^*适合条件0<αj<C0<\alpha_j^*<C,计算
    b=yii=1Nyiαi(xixj) b^*=y_i-\sum_{i=1}^Ny_i\alpha_i^*(x_i\cdot x_j)
    (3) 求得分离超平面
    wx+b=0 w^*\cdot x+b^*=0
    分类决策函数:
    f(x)=sign(wx+b) f(x)=sign(w^*\cdot x+b^*)
    步骤(2)中,对任一适合条件0<αi<C0<\alpha_i^*<Cαi\alpha_i^*,按式(51)都可求出bb^*,但是由于原始问题(32)~(34)对bb的解并不唯一,所以实际计算时可以取在所有符合条件的样本点上的平均值。

  • 支持向量
    在线性不可分的情况下,将对偶问题(37)~(39)的解α=(α1,α2, ,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T中对应于αi>0\alpha_i^*>0的样本点(xi,yi)(x_i,y_i)的实例xix_i称为支持向量(软间隔的支持向量)。如图所示,这时的支持向量要比线性可分时的情况复杂一些。途中,分离超平面由实线表示,间隔边界由虚线表示,正例点由“\circ”表示,负例点由“×\times”表示。图中还标出了实例xix_i到间隔边界的距离ξiw\frac{\xi_i}{||w||}
    统计学习方法读书笔记第七章:支持向量机
    软间隔的支持向量xix_i或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧。若αi<C\alpha_i^*<C,则ξi=0\xi_i=0,支持向量xix_i恰好落在间隔边界上;若αi=C,0<ξi<1\alpha_i^*=C,0<\xi_i<1,则分类正确,xix_i在间隔边界与分离超平面之间;若αi=C,ξi=1\alpha_i^*=C,\xi_i=1,则xix_i在分离超平面上;若αi=C,ξi>1\alpha_i^*=C,\xi_i>1,则xix_i位于分离超平面误分一侧。

  • 合页损失函数
    对于线性支持向量机学习来说,其模型为分离超平面wx+b=0w^*\cdot x+b^*=0及决策函数f(x)=sign(wx+b)f(x)=sign(w^*\cdot x+b^*),其学习策略为软间隔最大化,学习算法为凸二次规划。
    线性支持向量机学习还有另外一种解释,就是最小化以下目标函数:
    (57)i=1N[1yi(wxi+b)]++λw2 \sum_{i=1}^N[1-y_i(w\cdot x_i+b)]_{+}+\lambda||w||^2 \tag{57}
    目标函数的第1项是经验损失或经验风险,函数
    (58)L(y(wx+b))=[1y(wx+b)]+ L(y(w\cdot x+b))=[1-y(w\cdot x+b)]_{+} \tag{58}
    称为合页损失函数。下表"+"表示以下取正值的函数。
    [z]+={z,z>00,z0 [z]_+ =\left\{ \begin{array}{ll} z, &z>0 \\ 0, &z\leq0 \\ \end{array} \right.
    这就是说,当样本点(xi,yi)(x_i,y_i)被正确分类且函数间隔(确信度)yi(wxi+b)y_i(w\cdot x_i+b)大于1时,损失是0,否则损失是1yi(wxi+b)1-y_i(w\cdot x_i+b),注意到在上图中的实例点x4x_4被正确分类,但损失不是0。目标函数的第二项是系数为λ\lambdawwL2L_2范数,是正则化项。
    定理4 线性支持向量机原始最优化问题:
    (60)minw,b,ξ12w2+Ci=1Nξi \min_{w,b,\xi}\quad\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i \tag{60}
    (61)s.t.yi(wxi+b)1ξi,i=1,2, ,N s.t.\quad y_i(w\cdot x_i+b)\geq1-\xi_i,\quad i=1,2,\cdots,N \tag{61}
    (62)ξi0,i=1,2, ,N \xi_i\geq0,\quad i=1,2,\cdots,N \tag{62}
    等价于最优化问题
    (63)minw,bi=1N[1yi(wxi+b)]++λw2 \min_{w,b}\quad \sum_{i=1}^N[1-y_i(w\cdot x_i+b)]_++\lambda||w||^2 \tag{63}
    证明 可将最优化问题(63)写成问题(60)~(62)。令
    (64)1yi(wxi+b)=ξi,ξi0 1-y_i(w\cdot x_i+b)=\xi_i,\quad \xi_i\geq0 \tag{64}
    yi(wxi+b)1y_i(w\cdot x_i+b)\leq1。于是w,b,ξiw,b,\xi_i满足约束条件(61)~(62)。由式(64)有,[1yi(wxi+b)]+=[ξi]+=ξi[1-y_i(w\cdot x_i+b)]_+=[\xi_i]_+=\xi_i,所以最优化问题(63)可写成
    minw,bi=1Nξi+λw2 \min_{w,b}\quad \sum_{i=1}^N\xi_i+\lambda||w||^2
    若取λ=12C\lambda=\frac{1}{2C},则
    minw,b1C(12w2+Ci=1Nξi) \min_{w,b}\quad \frac{1}{C}\bigg(\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i\bigg)
    与式(60)等价。
    反之,也可将最优化问题(60)~(62)表示成问题(63)。
    合页损失函数的图形如图所示,横轴是函数间隔y(wx+b)y(w\cdot x+b),纵轴是损失。由于函数形状像一个合页,故名合页损失函数。
    途中还画出0-1损失函数,可以认为它是二类分类问题的真正的损失函数,而合页损失函数是0-1损失函数的上界。由于0-1损失函数不是连续可导的, 优化由其构成的目标函数比较困难,可以认为线性支持向量机是优化由0-1损失函数的上界(合页损失函数)构成的目标函数。这时的上界损失函数又称为代理损失函数。
    统计学习方法读书笔记第七章:支持向量机
    上图中虚线显示的是感知机的损失函数[yi(wxi+b)]+[y_i(w\cdot x_i+b)]_+。这时,当样本点(xi,yi)(x_i,y_i)被正确分类时,损失是0,否则损失是yi(wxi+b)-y_i(w\cdot x_i+b)。相比之下,合页损失函数不仅要分类正确,而且确信度足够高时损失才是0。也就是说,合页损失函数对学习有更高的要求。

非线性支持向量机与核函数

对解线性分类问题,线性分类支持向量机是一种非常有效的方法。但是,有时分类问题是非线性的,这时可以使用非线性支持向量机。本节叙述非线性支持向量机,其主要特点是是利用核技巧。为此,先要介绍核技巧。核技巧不仅应用于支持向量机,而且应用于其他统计学习问题。

  • 核技巧
  1. 非线性分类问题
    非线性分类问题是指通过非线性模型才能很好地进行分类的问题。先看一个例子:如下左图,是一个分类问题,图中“\bullet”表示正实例点,“×\times”表示负实例点。由图可见,无法用直线(线性模型)将正负实例正确分开,但可以用一条椭圆曲线(非线性模型)将它们正确分开。
    一般来说,对给定的一个训练数据集KaTeX parse error: Expected 'EOF', got '\cdos' at position 25: …y_1),(x_2,y_2),\̲c̲d̲o̲s̲,(x_N,y_N)\},其中,实例xix_i属于输入空间,xX=Rnx_\in\mathcal{X}=R^n,对应的标记有两类yiY={1,+1},i=1,2, ,Ny_i\in\mathcal{Y}=\{-1,+1\},i=1,2,\cdots,N。如果能用RnR^n中的一个超曲面将正负例正确分开,则称这个问题为非线性可分问题。
    统计学习方法读书笔记第七章:支持向量机
    非线性问题往往不好求解,所以希望能用解线性分类问题的方法解决这个问题。所采取的方法是进行一个非线性变换,将非线性问题变换为线性问题,通过解变换后的线性问题的方法求解原来的非线性问题。对上图所示的例子,通过变换,将左图中椭圆变化成右图中的直线,将非线性分类问题变换为线性分类问题。
    设原空间为XR2,x=(x(1),x(2))TX\mathcal{X}\subset R^2,x=(x^{(1)},x^{(2)})^T\in\mathcal{X},新空间为ZR2,z=(z(1),z(2))TZZ\subset R^2,z=(z^{(1)},z^{(2)})^T\in Z,定义从原空间到新空间的变换(映射):
    z=ϕ(x)=((x(1))2,(x(2))2)T z=\phi(x)=((x^{(1)})^2,(x^{(2)})^2)^T
    经过变换z=ϕ(x)z=\phi(x),原空间XR2\mathcal{X}\subset R^2变换为新空间ZR2Z\subset R^2,原空间中的点相应地变换为新空间中的点,原空间中的椭圆
    w1(x(1))2+w2(x(2))2+b=0 w_1(x^{(1)})^2+w_2(x^{(2)})^2+b=0
    变换成为新空间中的直线
    w1z(1)+w2z(2)+b=0 w_1z^{(1)}+w_2z^{(2)}+b=0
    在变换后的新空间里,直线w1z(1)+w2z(2)+b=0w_1z^{(1)}+w_2z^{(2)}+b=0可以将变换后的正负实例点正确分尅。这样,原空间的非线性可分问题就变成了新空间的线性可分问题。
    上面的例子说明,用线性分类方法求解非线性分类问题分为两步:首先使用一个变换将原空间的数据映射到新空间;然后在新空间里用线性分类学习方法从训练数据中学习分类模型。核技巧就属于这样的方法。
    核技巧应用到支持向量机,其基本想法就是通过一个非线性变换将输入空间(欧式空间RnR^n或离散集合)对应于一个特征空间(希尔伯特空间H\mathcal{H}),使得在输入空间RnR^n中的超曲面模型对应于特征空间H\mathcal{H}中的超平面模型(支持向量机)。这样,分类问题的学习任务通过在特征空间中求解线性支持向量机就可以完成。

  2. 核函数的定义
    定义6(核函数)X\mathcal{X}是输入空间(欧式空间RnR^n的子集或离散集合),又设H\mathcal{H}为特征空间(希尔伯特空间),如果存在一个从X\mathcal{X}H\mathcal{H}的映射
    (65)ϕ(x):xH \phi(x):\mathcal{x}\rightarrow\mathcal{H} \tag{65}
    使得对所有x,zXx,z\in\mathcal{X},函数K(x,z)K(x,z)满足条件
    (66)K(x,z)=ϕ(x)ϕ(z) K(x,z)=\phi(x)\cdot\phi(z) \tag{66}
    则称K(x,z)K(x,z)为核函数,ϕ(x)\phi(x)为映射函数,式中ϕ(x)ϕ(z)\phi(x)\cdot\phi(z)ϕ(x)\phi(x)ϕ(z)\phi(z)的内积。
    核技巧的想法是,在学习与预测中只定义核函数K(x,z)K(x,z),而不显式地定义映射函数ϕ\phi。通常,直接计算K(x,z)K(x,z)比较容易,而通过ϕ(x)\phi(x)ϕ(z)\phi(z)计算K(x,z)K(x,z)并不容易。注意,ϕ\phi是输入控件RnR^n到特征空间H\mathcal{H}的映射,特征空间H\mathcal{H}一般是高维的,甚至是无穷维的。可以看到,对于给定的核K(x,z)K(x,z),特征空间H\mathcal{H}和映射函数ϕ\phi的取法并不唯一,可以取不同的特征空间,即便是在同意特征空间里也可以取不同的映射。

  3. 核技巧在支持向量机中的应用
    我们注意到在线性支持向量机的对偶问题中,吴坤是目标函数还是决策函数(分离超平面)都只涉及输入实例与实例之间的内积。在对偶问题的目标函数(37)中的内积xixjx_i\cdot x_j可以用核函数K(xi,yi)=ϕ(xi)ϕ(xj)K(x_i,y_i)=\phi(x_i)\cdot\phi(x_j)来代替。此时对偶问题的目标函数成为
    (67)W(α)=12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi W(\alpha)=\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i \tag{67}
    同样,分类决策函数中的内积也可以用核函数代替,而分类决策函数式成为
    (68)f(x)=sign(i=1Nsαiyiϕ(xi)ϕ(x)+b)=sign(i=1NsαiyiK(xi,x)+b) f(x)=sign\bigg(\sum_{i=1}^{N_s}\alpha_i^*y_i\phi(x_i)\cdot\phi(x)+b^*\bigg)=sign\bigg(\sum_{i=1}^{N_s}\alpha_i^*y_iK(x_i,x)+b^*\bigg) \tag{68}
    这等价于经过映射函数ϕ\phi将原来的输入空间变换到一个新的特征空间,将输入空间中的内积xixjx_i\cdot x_j变换为特征空间中的内积ϕ(xi)ϕ(xj)\phi(x_i)\cdot\phi(x_j),在新的特征空间里从训练样本中学习线性支持向量机。当映射函数是非线性函数时,学习到的含有核函数的支持向量机是非线性分类模型。
    也就是说,在核函数K(x,z)K(x,z)给定的条件下,可以利用解线性分类问题的方法求解非线性分类问题的支持向量机。学习是隐式地在特征空间进行的,不需要显式地定义特征空间和映射函数。这样的技巧称为核技巧,它是巧妙地利用线性分类方法与核函数解决非线性问题的技术。在实际应用中,往往依赖领域只是直接选择核函数,核函数选择的有效性需要通过实验验证。

  • 正定核
    已知映射函数ϕ\phi,可以通过ϕ(x)\phi(x)ϕ(z)\phi(z)的内积求得核函数K(x,z)K(x,z)。不用构造映射ϕ(x)\phi(x)能否直接判断一个给定的函数K(x,z)K(x,z)是不是核函数?或者说,函数K(x,z)K(x,z)满足什么条件才能称为核函数?
    本节叙述正定核的充要条件。通常所说的核函数就是正定核函数。为证明此定理先介绍有关的预备知识。
    假设K(x,z)K(x,z)是定义在X×X\mathcal{X}\times\mathcal{X}上的对称函数,并且对任意的x1,x2, ,xmXx_1,x_2,\cdots,x_m\in\mathcal{X}K(x,z)K(x,z)关于x1,x2, ,xmx_1,x_2,\cdots,x_m的Gram矩阵是半正定的。可以依据函数K(x,z)K(x,z),构成一个希尔伯特空间,其步骤是:首先定义映射ϕ\phi并构成向量空间S\mathcal{S};然后在S\mathcal{S}上定义内积构成内积空间;最后将S\mathcal{S}完备化构成希尔伯特空间。
  1. 定义映射,构成向量空间S\mathcal{S}
    先定义映射
    (69)ϕ:xK(,x) \phi:x\rightarrow K(\cdot,x) \tag{69}
    根据这一映射,对任意xiX,αiR,i=1,2, ,mx_i\in\mathcal{X},\alpha_i\in R,i=1,2,\cdots,m,定义线性组合
    (70)f()=i=1mαiK(,x) f(\cdot)=\sum_{i=1}^m\alpha_iK(\cdot,x) \tag{70}
    考虑由线性组合为元素的集合S\mathcal{S}。由于集合S\mathcal{S}对加法和数乘运算是封闭的,所以S\mathcal{S}构成一个向量空间。

  2. S\mathcal{S}上定义内积,使其称为内积空间
    S\mathcal{S}上定义一个运算*:对任意f,gSf,g\in\mathcal{S}
    (71)f()=i=1mαiK(,xi) f(\cdot)=\sum_{i=1}^m\alpha_iK(\cdot,x_i) \tag{71}
    (72)g()=i=1lβjK(,zj) g(\cdot)=\sum_{i=1}^l\beta_jK(\cdot,z_j) \tag{72}
    定义运算*
    (73)fgi=1mj=1lαiβjK(xi,zj) f*g\cdot\sum_{i=1}^m\sum_{j=1}^l\alpha_i\beta_jK(x_i,z_j) \tag{73}
    证明运算*是空间S\mathcal{S}的内积。为此要证:
    (1) (74)(cf)g=c(fg),cR(cf)*g=c(f*g),\quad c\in R \tag{74}
    (2) (75)(f+g)h=fh+gh,hS(f+g)*h=f*h+g*h,\quad h\in\mathcal{S} \tag{75}
    (3) (76)fg=gff*g=g*f \tag{76}
    (4) (78)ff0,ff=0f=0f*f\geq0,\quad f*f=0\Leftrightarrow f=0 \tag{78}
    其中,(1)~(3)由式(70)~式(72)及K(x,z)K(x,z)的对称性容易得到。现证(4)之式(77)。由式(70)及式(73)可得:
    ff=i,j=1mαiαjK(xi,xj) f*f=\sum_{i,j=1}^m\alpha_i\alpha_jK(x_i,x_j)
    由Gram矩阵的半正定性知上式右端非负,即ff0f*f\geq0
    再证(4)之式(78)。充分性显然。为证必要性,首先证明不等式:
    (79)fg2(ff)(gg) |f*g|^2\leq(f*f)(g*g) \tag{79}
    f,gS,λRf,g\in\mathcal{S},\lambda\in R,则f+λgSf+\lambda g\in\mathcal{S},于是,
    (f+λg)(f+λg)0 (f+\lambda g)*(f+\lambda g)\geq0
    ff+2λ(fg)+λ2(gg)0 f*f+2\lambda(f*g)+\lambda^2(g*g)\geq0
    其左端是λ\lambda的二次三项式,非负,其判别式小于等于0,即
    (fg)2(ff)(gg)0 (f*g)^2-(f*f)(g*g)\leq0
    于是式(79)得证。现证若ff=0f*f=0,则f=0f=0。事实上,若
    f()=i=1mαiK(,xi) f(\cdot)=\sum_{i=1}^m\alpha_iK(\cdot,x_i)
    则按运算*的定义式(73),对任意的xXx\in\mathcal{X},有
    K(,x)f=i=1mαiK(x,xi)=f(x) K(\cdot,x)*f=\sum_{i=1}^m\alpha_iK(x,x_i)=f(x)
    于是,
    (80)f(x)2=K(,x)f2 |f(x)|^2=|K(\cdot,x)*f|^2 \tag{80}
    由式(70)和式(77)有
    K(,x)f2(K(,x)K(,x))(ff)=K(x,x)(ff) |K(\cdot,x)*f|^2\leq(K(\cdot,x)*K(\cdot,x))(f*f)=K(x,x)(f*f)
    由式(80)有
    f(x)2K(x,x)(ff) |f(x)|^2\leq K(x,x)(f*f)
    此式表明,当ff=0f*f=0时,对任意的xx都有f(x)=0|f(x)|=0
    至此,证明了*为向量空间S\mathcal{S}的内积。赋予内积的向量空间为内积空间。因此S\mathcal{S}是一个内积空间。既然*S\mathcal{S}的内积运算,那么仍然用\cdot表示,即若
    f()=i=1mαiK(,xi)g()==j=1lβjK(,zj) f(\cdot)=\sum_{i=1}^m\alpha_iK(\cdot, x_i)\quad g(\cdot)==\sum_{j=1}^l\beta_jK(\cdot,z_j)

    (81)fg=i=1mj=1lαiβjK(xi,zj) f\cdot g=\sum_{i=1}^m\sum_{j=1}^l\alpha_i\beta_jK(x_i,z_j) \tag{81}

  3. 将内积空间S\mathcal{S}完备化为希尔伯特空间
    现在将内积空间S\mathcal{S}完备化。由式(81)定义的内积可以得到范数
    (82)f=ff ||f||=\sqrt{f\cdot f} \tag{82}
    因此,S\mathcal{S}是一个赋范向量空间。根据泛函分析理论,对于不完备的赋范向量空间S\mathcal{S},一定可以使之完备化,得到完备的赋范向量空间H\mathcal{H}。一个内积空间,当作为一个赋范向量空间是完备的时候,就是希尔伯特空间。这样,就得到了希尔伯特空间H\mathcal{H}
    这一希尔伯特空间H\mathcal{H}称为再生核希尔伯特空间。这时由于核KK具有再生性,即满足
    (83)K(,x)f=f(x) K(\cdot,x)\cdot f=f(x) \tag{83}

    (84)K(,x)K(,z)=K(x,z) K(\cdot,x)\cdot K(\cdot,z)=K(x,z) \tag{84}
    称为再生核。

  4. 正定核的充要条件
    定理5(正定核的充要条件)K:X×XRK:\mathcal{X}\times\mathcal{X}\rightarrow R是对称函数,则K(x,z)K(x,z)为正定核函数的充要条件是对任意xiX,i=1,2, ,mx_i\in\mathcal{X},i=1,2,\cdots,mK(x,z)K(x,z)对应的Gram矩阵:
    (85)K=[K(xi,xj)]m×m K=[K(x_i,x_j)]_{m\times m} \tag{85}
    是半正定矩阵。
    证明 必要性。由于K(x,z)K(x,z)X×X\mathcal{X}\times\mathcal{X}上的正定核,所以存在从X\mathcal{X}到希尔伯特空间H\mathcal{H}的映射ϕ\phi,使得
    K(x,z)=ϕ(x)ϕ(z) K(x,z)=\phi(x)\cdot\phi(z)
    于是,对任意x1,x2, ,xmx_1,x_2,\cdots,x_m,构造K(x,z)K(x,z)关于x1,x2, ,xmx_1,x_2,\cdots,x_m的Gram矩阵
    [Kij]m×m=[K(xi,xj)]m×m [K_{ij}]_{m\times m}=[K(x_i,x_j)]_{m\times m}
    对任意c1,c2, ,cmRc_1,c_2,\cdots,c_m\in R,有
    i,j=1mcicjK(xi,xj)=i,j=1mcicj(ϕ(xi)ϕ(xj))=(iciϕ(xi))(jcjϕ(xj))=iciϕ(xi)20 \begin{aligned} \sum_{i,j=1}^mc_ic_jK(x_i,x_j)&=\sum_{i,j=1}^mc_ic_j(\phi(x_i)\cdot\phi(x_j)) \\ &=\bigg(\sum_ic_i\phi(x_i)\bigg)\cdot\bigg(\sum_jc_j\phi(x_j)\bigg)=||\sum_ic_i\phi(x_i)||^2\geq0 \end{aligned}
    表明K(x,z)K(x,z)关于x1,x2, ,xmx_1,x_2,\cdots,x_m的Gram矩阵是半正定的。
    充分性。已知对称函数K(x,z)K(x,z)对任意x1,x2, ,xmXx_1,x_2,\cdots,x_m\in\mathcal{X}K(x,z)K(x,z)关于x1,x2, ,xmx_1,x_2,\cdots,x_m的Gram矩阵是半正定的。根据前面的结果,对给定的K(x,z)K(x,z),可以构造从X\mathcal{X}到某个希尔伯特空间H\mathcal{H}的映射:
    (86)ϕ:xK(,x) \phi:x\rightarrow K(\cdot,x) \tag{86}
    由式(83)可知,
    K(,x)f=f(x) K(\cdot,x)\cdot f=f(x)
    并且
    K(,x)K(,z)=K(x,z) K(\cdot,x)\cdot K(\cdot,z)=K(x,z)
    由式(86)即得
    K(x,z)=ϕ(x)ϕ(z) K(x,z)=\phi(x)\cdot\phi(z)
    表明K(x,z)K(x,z)X×X\mathcal{X}\times\mathcal{X}上的核函数。
    定理给出了正定核的充要条件,因此可以作为正定核,即核函数的另一定义。
    定义7(正定核的等价定义)XRn\mathcal{X}\subset R^nK(x,z)K(x,z)是定义在X×X\mathcal{X}\times\mathcal{X}上的对称函数,如果对任意xiX,i=1,2, ,mx_i\in\mathcal{X},i=1,2,\cdots,mK(x,z)K(x,z)对应的Gram矩阵
    (87)K=[K(xi,xj)]m×m K=[K(x_i,x_j)]_{m\times m} \tag{87}
    是半正定矩阵,则称K(x,z)K(x,z)是正定核。
    这一定义在构造核函数时很有用,但对于一个具体函数K(x,z)K(x,z)来说,检验它是否为正定核函数并不容易,因为要求对任意有限输入集{x1,x2, ,xm}\{x_1,x_2,\cdots,x_m\}验证KK对应的Gram矩阵是否为半正定的。在实际问题中往往应用已有的核函数。另外,由Mercer定理可以得到Mercer核,正定核比Mercer核更具一般性。下面介绍一些常用的核函数。

  • 常用核函数
  1. 多项式核函数
    (88)K(x,z)=(xz+1)p K(x,z)=(x\cdot z+1)^p \tag{88}
    对应的支持向量机是一个pp次多项式分类器。在此情形下,分类决策函数成为
    (89)f(x)=sign(i=1Niαiyi(xix+1)p+b) f(x)=sign\bigg(\sum_{i=1}^{N_i}\alpha_i^*y_i(x_i\cdot x+1)^p+b^*\bigg) \tag{89}

  2. 高斯核函数
    (90)K(x,z)=exp(xz22σ2) K(x,z)=\exp\bigg(-\frac{||x-z||^2}{2\sigma^2}\bigg) \tag{90}
    对应的支持向量机是高斯径向基函数分类器。在此情形下,分类决策函数成为
    (91)f(x)=sign(i=1Niαiyiexp(xz22σ2)+b) f(x)=sign\bigg(\sum_{i=1}^{N_i}\alpha_i^*y_i\exp\bigg(-\frac{||x-z||^2}{2\sigma^2}\bigg)+b^*\bigg) \tag{91}

  3. 字符串核函数
    核函数不仅可以定义在欧式空间上,还可以定义在离散数据的集合上。比如,字符串核是定义在字符串集合上的核函数。字符串核函数在文本分类、信息检索、生物信息学等方面都有应用。
    考虑一个有限字符表Σ\Sigma。字符串ss是从Σ\Sigma中取出有限个字符的序列,包括空字符串。字符串ss的长度用s|s|表示,它的元素记作s(1)s(2)s(s)s(1)s(2)\cdots s(|s|)。两个字符串sstt的连接记作stst。所有长度为nn的字符串的集合记作Σn\Sigma^n,所有字符串的集合记作Σ=n=0Σn\Sigma^*=\bigcup_{n=0}^\infty\Sigma^n
    考虑字符串ss的子串uu。给定一个指标序列i=(i1,i2, ,iu),ii1<i2<<iusi=(i_1,i_2,\cdots,i_{|u|}),i\leq i_1<i_2<\cdots<i_{|u|}\leq|s|ss的子串定义为u=s(i)=s(i1)s(i2)s(iu)u=s(i)=s(i_1)s(i_2)\cdots s(i_{|u|}),其长度记作l(i)=iui1+1l(i)=i_{|u|}-i_1+1。如果ii是连续的,则l(i)=ul(i)=|u|;否则,l(i)>ul(i)>|u|
    假设S\mathcal{S}是长度大于或等于nn字符串的集合,ssS\mathcal{S}的元素。现在建立字符串集合S\mathcal{S}到特征空间Hn=RΣn\mathcal{H}_n=R^{\Sigma^n}的映射ϕn(s)\phi_n(s)RΣnR^{\Sigma^n}表示定义在Σn\Sigma^n上的实数空间,其每一维对应一个字符串uΣnu\in\Sigma^n,映射ϕn(s)\phi_n(s)将字符串ss对应于空间RΣnR^{\Sigma^n}的一个向量,其在uu维上的取值为
    (92)[ϕn(s)]u=i:s(i)=uλl(i) [\phi_n(s)]_u=\sum_{i:s(i)=u}\lambda^{l(i)} \tag{92}
    这里,0<λ10<\lambda\leq1是一个衰减参数,l(i)l(i)表示字符串ii的长度,求和在ss中所有与uu相同的子串上进行。
    例如,假设Σ\Sigma为英文字符集,nn为3,S\mathcal{S}为长度大于或等于3的字符串的集合。考虑将字符集S\mathcal{S}映射到特征空间H3H_3H3H_3的一维对应于字符串asdasd。这时,字符串"NasdaqNasdaq"与“lasslass dasdas”在这一维上的值分别是[ϕ3(Nasdaq)]asd=λ3[\phi_3(Nasdaq)]_{asd}=\lambda^3[ϕ3(lassdas)]asd=2λ5[\phi_3(lass\square das)]_{asd}=2\lambda^5\square为空格)。在第1个字符串里,asdasd是连续的子串。在第2个字符串里,asdasd是长度为5的不连续子串,共出现2次。
    两个字符串sstt上的字符串核函数是基于映射ϕn\phi_n的特征空间中的内积:
    (93)kn(s,t)=uΣn[ϕn(s)]u[ϕn(t)]u=uΣn(i,j):s(i)=t(j)=uλ(l(i))λl(j) k_n(s,t)=\sum_{u\in\Sigma^n}[\phi_n(s)]_u[\phi_n(t)]_u=\sum_{u\in\Sigma^n}\sum_{(i,j):s(i)=t(j)=u}\lambda^{(l(i))}\lambda^{l(j)} \tag{93}
    字符串核函数kn(s,t)k_n(s,t)给出了字符串sstt中长度等于nn的所有子串组成的特征向量的余弦相似度。直观上,两个字符串相同的子串越多,它们就越相似,字符串核函数的值就越大。字符串核函数可以由动态规划快速地计算。

  • 非线性支持向量分类机
    如上所述,利用核技巧,可以讲线性分类的学习方法应用到非线性分类问题中去。将线性支持向量机扩展到非线性支持向量机,只需将线性支持向量机对偶形式中的内积换成核函数。
    定义8(非线性支持向量机) 从非线性分类训练集,通过核函数与软间隔最大化,或凸二次规划(95)~(97),学习得到的分类决策函数
    (94)f(x)=sign(i=1NαiyiK(x,xi)+b) f(x)=sign\bigg(\sum_{i=1}^N\alpha_i^*y_iK(x,x_i)+b^*\bigg) \tag{94}
    称为非线性支持向量,K(x,z)K(x,z)是正定核函数。
    下面叙述非线性支持向量机学习算法。
    算法4(非线性支持向量机学习算法)
    输入:训练数据集T={(x1,y1),(x2,y2), ,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},其中xiX=Rn,yiY={1,+1},i=1,2, ,Nx_i\in\mathcal{X}=R^n,y_i\in\mathcal{Y}=\{-1,+1\},i=1,2,\cdots,N
    输出:分类决策函数。
    (1) 选取适当的核函数K(x,z)K(x,z)和适当的参数CC,构造并求解最优化问题
    (95)minα12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi \min_{\alpha}\quad\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i \tag{95}
    (96)s.t.i=1Nαiyi=0 s.t.\quad \sum_{i=1}^N\alpha_iy_i=0 \tag{96}
    (97)0αiC,i=1,2, ,N 0\leq\alpha_i\leq C,\quad i=1,2,\cdots,N \tag{97}
    求得最优解α=(α1,α2, ,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T
    (2) 选择α\alpha^*的一个正分量0<αj<C0<\alpha_j^*<C,计算
    b=yji=1NαiyiK(xixj) b^*=y_j-\sum_{i=1}^N\alpha_i^*y_iK(x_i\cdot x_j)
    (3) 构造决策函数:
    f(x)=sign(i=1NαiyiK(xxi)+b) f(x)=sign\bigg(\sum_{i=1}^N\alpha_i^*y_iK(x\cdot x_i)+b^*\bigg)
    K(x,z)K(x,z)是正定核函数时,问题(95)~(97)是凸二次规划问题,解是存在的。