统计学习方法(机器学习)——7.1、支持向量机(线性可分支持向量机与硬间隔最大化)

支持向量机SVM

        SVM是一种二类分类模型,其基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机。SVM的学习策略就是间隔最大化,可以形式化为一个求解凸二次规划问题,也等价于正则化的合页损失函数最小化问题。
        支持向量机SVM由简至繁分别为:线性可分的SVM、线性SVM及非线性SVM。简单模型是复杂模型的基础,也是复杂模型的特殊情况。

  • 当训练数据集线性可分时,通过硬间隔最大化学习线性可分SVM;
  • 当训练数据集近似线性可分时,通过软间隔最大化学习线性SVM;
  • 当训练数据集线性不可分时,通过使用核技巧及软间隔最大化,学习非线性SVM。

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

线性可分SVM

        假设输入空间与特征空间是两个不同的空间。线性可分SVM、线性SVM假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量。非线性SVM利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量。这样,输入都由输入空间转换到特征空间,SVM的学习是在特征空间中进行的。
        假设给定一个线性可分的训练数据集
T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1, y_1),(x_2,y_2),...,(x_N,y_N)\}
学习的目标是在特征空间中找到一个分离超平面,能将实例分到不同的类。分离超平面对应方程wx+b=0w·x+b=0,它由法向量ww和截距bb决定,可以用(w,b)(w,b)来表示。法向量指向的一侧为正类,另一侧为负类。
        一般地,当训练集线性可分时,存在无穷多个分离超平面可以将两类数据正确分开。感知机利用误分类最小的策略,求得分离超平面,但此时的解有无穷多个。线性可分SVM利用间隔最大化最优分离超平面,此时的解是唯一的。

定义 线性可分SVM

        给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为:
wx+b=0(1)w^*·x+b^*=0 \tag1
以及相应的分类决策函数
f(x)=sign(wx+b)(2)f(x)=sign(w^*·x+b^*) \tag2


函数间隔与几何间隔

函数间隔

        一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。在超平面wx+b=0w·x+b=0确定的情况下,wx+b|w·x+b|能够相对地表示点xx距离超平面的远近,wx+bw·x+b与类标记yy的符号是否一致能够表示分类是否正确,所以可以综合两者来表示分类的正确性及确信度,这就是函数间隔。

定义 函数间隔

        对于给定的训练数据集TT和超平面(w,b)(w,b),定义超平面(w,b)(w,b)关于样本点(xi,yi)(x_i,y_i)的函数间隔为:
γi^=yi(wxi+b)(3)\hat{\gamma_i}=y_i(w·x_i+b) \tag3
定义超平面(w,b)(w,b)关于训练数据集TT的函数间隔为超平面到训练集中所有样本点的函数间隔最小值,即:
γ^=mini=1,2,...,Nγi^(4)\hat{\gamma}=\min\limits_{i=1,2,...,N}\hat{\gamma_i} \tag4
        函数间隔可以表示分类预测的正确性及确信度。但选择分离超平面时,只有函数间隔还不够,因为只要成比例地改变wwbb,函数间隔也会成比例地改变,但是超平面本身并未改变。可以对分离超平面的法向量ww加上某些约束,如规范化,w=1||w||=1,使得间隔是确定的。此时函数间隔就变成了几何间隔。

几何间隔

        下图给出了超平面(w,b)(w,b)及其法向量ww统计学习方法(机器学习)——7.1、支持向量机(线性可分支持向量机与硬间隔最大化)
        点AA表示某一实例xix_i,其类标记为yi=+1y_i=+1。点AA与超平面的距离由线段ABAB给出,记作γi\gamma_i
γi=wwxi+bw\gamma_i=\frac{w}{||w||}·x_i+\frac{b}{||w||}
其中w||w||wwL2L_2范数。这是点AA在正侧的时候,如果在负一侧,则:
γi=wwxi+bw\gamma_i=-\frac{w}{||w||}·x_i+\frac{b}{||w||}
        一般地,当样本点被超平面正确分类时,点xix_i与超平面的距离是:
γi=yi(wwxi+bw)\gamma_i=y_i\left(\frac{w}{||w||}·x_i+\frac{b}{||w||}\right),由此可得几何间隔的概念。


定义 几何间隔
        对于给定的训练数据集和超平面,定义超平面(w,b)(w,b)关于样本点(xi,yi)(x_i,y_i)的几何间隔为
γi=yi(wwxi+bw)(5)\gamma_i=y_i\left(\frac{w}{||w||}·x_i+\frac{b}{||w||}\right) \tag5
         定义超平面(w,b)(w,b)关于训练数据集TT的几何间隔为超平面到训练集中所有样本点的几何间隔最小值,即:
γ=mini=1,2,...,Nγi^(6){\gamma}=\min\limits_{i=1,2,...,N}\hat{\gamma_i} \tag6
         超平面(w,b)(w,b)关于样本点(xi,yi)(x_i,y_i)的几何间隔一般是实例点到超平面的带符号距离,当样本点被正确分类时就是实例点到超平面的距离。
         函数间隔和几何间隔有以下关系:
γi=γi^w(7)\gamma_i=\frac{\hat{\gamma_i}}{||w||}\tag7
γ=γ^w(8)\gamma=\frac{\hat{\gamma}}{||w||}\tag8
如果w=1||w||=1,函数间隔和几何间隔相等。如果wbw、b成比例地改变(超平面不会改变),函数间隔会成比例改变,而几何间隔不变。


间隔最大化

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

最大间隔分离超平面

        求得一个几何间隔最大的分离超平面,可以表示为下面的约束最优化问题
maxw,b      γ(9)\max_{w,b} \;\;\; \gamma \tag 9
s.t.        yi(wwxi+bw)γ,      i=1,2,...,N(10)s.t. \;\;\;\; y_i \left(\frac{w}{||w||}·x_i+\frac{b}{||w||}\right)\geq \gamma,\;\;\;i=1,2,...,N \tag{10}
即我们希望最大化超平面(w,b)(w,b)关于训练数据集的几何间隔γ\gamma,约束条件表示的是超平面(w,b)(w,b)关于每个训练样本点几何间隔至少是γ\gamma
        考虑几何间隔和函数间隔的关系式(8),可将这个问题改写为:
maxw,b      γ^w1(1)\max_{w,b} \;\;\; \frac{\hat{\gamma}}{||w||} \tag 11
s.t.        yi(wxi+b)γ^,      i=1,2,...,N(12)s.t. \;\;\;\; y_i(w·x_i+b)\geq \hat{\gamma},\;\;\;i=1,2,...,N \tag{12}
        函数间隔γ^\hat{\gamma}的取值并不影响最优化问题的解,这样可以取γ^=1\hat{\gamma}=1,将γ^=1\hat{\gamma}=1代入上面的最优化问题,且有最大化1w\frac{1}{||w||}和最小化 12w2\frac12||w||^2是等价的,于是可以得到下面的线性可分SVM学习的最优化问题
minw,b      12w2(13)\min_{w,b} \;\;\; \frac12||w||^2\tag {13}
s.t.        yi(wxi+b)10,      i=1,2,...,N(14)s.t. \;\;\;\; y_i(w·x_i+b) -1\geq 0,\;\;\;i=1,2,...,N \tag{14}
这是一个凸二次规划问题。
        凸优化问题是指约束最优化问题
minw      f(w)(15)\min_w\;\;\;f(w) \tag{15}
s.t.        gi(w)0,      i=1,2,...,k(16)s.t. \;\;\;\; g_i(w) \leq 0,\;\;\;i=1,2,...,k \tag{16}
                  hi(w)=0,      i=1,2,...,l(17)\;\;\;\;\;\;\;\;\; h_i(w) = 0,\;\;\;i=1,2,...,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)的解w,bw^*,b^*,就可以得到最大间隔分离超平面wx+b=0w^*·x+b^*=0及分类决策函数f(x)=sign(wx+b)f(x)=sign(w^*·x+b^*),即线性可分SVM。


算法 线性可分SVM学习算法——最大间隔法

输入:线性可分的训练集T={(x1,y1),(x2,y2),...,(xN,yn=N))}T=\{(x_1, y_1), (x_2, y_2), ..., (x_N, y_n=N))\},其中XX=RnX\in \mathcal{X} =R^nyiY={+1,1},    i=1,2,...,Ny_i\in \mathcal{Y}=\{+1,-1\},\;\;i=1,2,...,N
输出:最大间隔分离超平面和分类决策函数。

(1)构造并求解指约束最优化问题
minw,b      12w2\min_{w,b} \;\;\; \frac12||w||^2
s.t.        yi(wxi+b)10,      i=1,2,...,Ns.t. \;\;\;\; y_i(w·x_i+b) -1\geq 0,\;\;\;i=1,2,...,N
求得最优解w,bw^*,b^*

(2)由此得到分离超平面:
wx+b=0w^*·x+b^*=0
分类决策函数:
f(x)=sign(wx+b)f(x)=sign(w^*·x+b^*)

最大间隔分离超平面的存在唯一性

        若训练集TT线性可分,则可将训练数据集中的样本点完全正确分开的最大间隔分离超平面存在且唯一。

支持向量和间隔边界

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


学习的对偶算法

        为了求解线性可分SVM的最优化问题(13)(14)
minw,b      12w2(13)\min_{w,b} \;\;\; \frac12||w||^2\tag {13}
s.t.        yi(wxi+b)10,      i=1,2,...,N(14)s.t. \;\;\;\; y_i(w·x_i+b) -1\geq 0,\;\;\;i=1,2,...,N \tag{14}
将它作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,即线性可分SVM的对偶算法。这样做的优点,一是对偶问题往往更容易求解;二是自然引入核函数,进而推广到非线性分类问题。转换后的对偶问题为:
minα      12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi(18)\min_{\alpha} \;\;\; \frac12\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)-\sum_{i=1}^N\alpha_i\tag {18}
s.t.        i=1Nαiyi=0(19)s.t. \;\;\;\;\sum_{i=1}^N\alpha_iy_i=0 \tag{19}
αi0,      i=1,2,...,N(20)\alpha_i\geq 0,\;\;\;i=1,2,...,N \tag{20}
        对于线性可分训练数据集,假设对偶最优化问题(18)~(20)对α\alpha 的解为α=(α1,α2,...,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T,可以由α\alpha^*求得原始最优化问题(13)~(14)对(w,b)(w,b)的解w,bw^*,b^*


定理
        设α=(α1,α2,...,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T是对偶最优化问题(18)~(20)对 α\alpha 的解,则存在下标jj,使得αj>0\alpha_j^*>0,并可按下式求得原始最优化问题(13)~(14)的解w,bw^*,b^*:
w=i=1Nαiyixi(21)w^* = \sum_{i=1}^N\alpha_i^*y_ix_i \tag{21}
b=yji=1Nαiyi(xixj)(22)b^* = y_j-\sum_{i=1}^N\alpha_i^*y_i(x_i·x_j) \tag{22}

        由定理可知,分离超平面可以写成
i=1Nαiyi(xxi)+b=0(23)\sum_{i=1}^N\alpha_i^*y_i(x·x_i)+b^*=0 \tag{23}
f(x)=sign(i=1Nαiyi(xxi)+b)(24)f(x)=sign \left(\sum_{i=1}^N\alpha_i^*y_i(x·x_i)+b^*\right) \tag{24}
也就是说,分类决策函数只依赖于输入xx和训练样本输入的内积,式(24)称为线性可分SVM的对偶形式。


算法 线性可分SVM学习算法

输入:线性可分的训练集T={(x1,y1),(x2,y2),...,(xN,yn=N))}T=\{(x_1, y_1), (x_2, y_2), ..., (x_N, y_n=N))\},其中XX=RnX\in \mathcal{X} =R^nyiY={+1,1},    i=1,2,...,Ny_i\in \mathcal{Y}=\{+1,-1\},\;\;i=1,2,...,N
输出:分离超平面和分类决策函数。

(1)构造并求解约束最优化问题
minα      12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi\min_{\alpha} \;\;\; \frac12\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)-\sum_{i=1}^N\alpha_i
s.t.        i=1Nαiyi=0s.t. \;\;\;\;\sum_{i=1}^N\alpha_iy_i=0
          αi0,      i=1,2,...,N\;\;\;\;\;\alpha_i\geq 0,\;\;\;i=1,2,...,N
求得最优解α=(α1,α2,...,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T

(2)计算
w=i=1Nαiyixiw^* = \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·x_j)

(3)求得分离超平面
wx+b=0w^*·x+b^*=0
分类决策函数:
f(x)=sign(wx+b)f(x)=sign(w^*·x+b^*)


        在线性可分SVM中,wbw^*、b^*只依赖于训练数据中对应于αi>0\alpha_i^*>0的样本点(xi,yi)(x_i,y_i),而其它样本点对ww^*bb^*没有影响,将训练数据中对应于αi>0\alpha_i^*>0 的实例点xiRnx_i \in R^n称为支持向量。

定义 支持向量
        考虑原始最优化问题(13)(14)及对偶最优化问题(18)~(20),将训练集中对应于αi>0\alpha_i^*>0的样本点 (xi,yi)(x_i,y_i) 的实例xiRnx_i\in R^n称为支持向量。
        根据这一定义,支持向量一定在间隔边界上。由KKT互补条件知,
αi(yi(wxi+b)1)=0,        i=1,2,...,N\alpha_i^*(y_i(w^*·x_i+b^*)-1)=0,\;\;\;\;i=1,2,...,N
        对应于αi>0\alpha_i^*>0 的实例点xix_i,有
yi(wxi+b)1=0y_i(w^*·x_i+b^*)-1=0

wxi+b=±1w^*·x_i+b^*=\pm1
xix_i一定在间隔边界上,与之前的定义一致。