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

支持向量机SVM

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

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

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

线性可分SVM

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

定义 线性可分SVM

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


函数间隔与几何间隔

函数间隔

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

定义 函数间隔

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

几何间隔

        下图给出了超平面( w , b ) (w,b)(w,b)及其法向量w ww在这里插入图片描述
        点A AA表示某一实例x i x_ixi,其类标记为y i = + 1 y_i=+1yi=+1。点A AA与超平面的距离由线段A B ABAB给出,记作γ i \gamma_iγi
γ i = w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ \gamma_i=\frac{w}{||w||}·x_i+\frac{b}{||w||}γi=wwxi+wb
其中∣ ∣ w ∣ ∣ ||w||ww wwL 2 L_2L2范数。这是点A AA在正侧的时候,如果在负一侧,则:
γ i = − w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ \gamma_i=-\frac{w}{||w||}·x_i+\frac{b}{||w||}γi=wwxi+wb
        一般地,当样本点被超平面正确分类时,点x i x_ixi与超平面的距离是:
γ i = y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) \gamma_i=y_i\left(\frac{w}{||w||}·x_i+\frac{b}{||w||}\right)γi=yi(wwxi+wb),由此可得几何间隔的概念。


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


间隔最大化

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

最大间隔分离超平面

        求得一个几何间隔最大的分离超平面,可以表示为下面的约束最优化问题
max ⁡ w , b γ (9) \max_{w,b} \;\;\; \gamma \tag 9w,bmaxγ(9)
s . t . y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) ≥ γ , 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}s.t.yi(wwxi+wb)γ,i=1,2,...,N(10)
即我们希望最大化超平面( w , b ) (w,b)(w,b)关于训练数据集的几何间隔γ \gammaγ,约束条件表示的是超平面( w , b ) (w,b)(w,b)关于每个训练样本点几何间隔至少是γ \gammaγ
        考虑几何间隔和函数间隔的关系式(8),可将这个问题改写为:
max ⁡ w , b γ ^ ∣ ∣ w ∣ ∣ 1 (1) \max_{w,b} \;\;\; \frac{\hat{\gamma}}{||w||} \tag 11w,bmaxwγ^1(1)
s . t . y i ( w ⋅ x i + b ) ≥ γ ^ , i = 1 , 2 , . . . , N (12) s.t. \;\;\;\; y_i(w·x_i+b)\geq \hat{\gamma},\;\;\;i=1,2,...,N \tag{12}s.t.yi(wxi+b)γ^,i=1,2,...,N(12)
        函数间隔γ ^ \hat{\gamma}γ^的取值并不影响最优化问题的解,这样可以取γ ^ = 1 \hat{\gamma}=1γ^=1,将γ ^ = 1 \hat{\gamma}=1γ^=1代入上面的最优化问题,且有最大化1 ∣ ∣ w ∣ ∣ \frac{1}{||w||}w1和最小化 1 2 ∣ ∣ w ∣ ∣ 2 \frac12||w||^221w2是等价的,于是可以得到下面的线性可分SVM学习的最优化问题
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 (13) \min_{w,b} \;\;\; \frac12||w||^2\tag {13}w,bmin21w2(13)
s . t . y i ( w ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , . . . , N (14) s.t. \;\;\;\; y_i(w·x_i+b) -1\geq 0,\;\;\;i=1,2,...,N \tag{14}s.t.yi(wxi+b)10,i=1,2,...,N(14)
这是一个凸二次规划问题。
        凸优化问题是指约束最优化问题
min ⁡ w f ( w ) (15) \min_w\;\;\;f(w) \tag{15}wminf(w)(15)
s . t . g i ( w ) ≤ 0 , i = 1 , 2 , . . . , k (16) s.t. \;\;\;\; g_i(w) \leq 0,\;\;\;i=1,2,...,k \tag{16}s.t.gi(w)0,i=1,2,...,k(16)
h i ( w ) = 0 , i = 1 , 2 , . . . , l (17) \;\;\;\;\;\;\;\;\; h_i(w) = 0,\;\;\;i=1,2,...,l \tag{17}hi(w)=0,i=1,2,...,l(17)
其中,目标函数f ( w ) f(w)f(w)和约束函数g i ( w ) g_i(w)gi(w)都是R n R^nRn上的连续可微的凸函数,约束函数h i ( w ) h_i(w)hi(w)R n R^nRn上的仿射函数。

        当目标函数f ( w ) f(w)f(w)是二次函数且约束函数g i ( w ) g_i(w)gi(w)是仿射函数时,上述凸最优化问题称为凸二次规划问题。

        如果求出来约束最优化问题(13)~(14)的解w ∗ , b ∗ w^*,b^*w,b,就可以得到最大间隔分离超平面w ∗ ⋅ x + b ∗ = 0 w^*·x+b^*=0wx+b=0及分类决策函数f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x)=sign(w^*·x+b^*)f(x)=sign(wx+b),即线性可分SVM。


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

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

(1)构造并求解指约束最优化问题
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 \min_{w,b} \;\;\; \frac12||w||^2w,bmin21w2
s . t . y i ( w ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , . . . , N s.t. \;\;\;\; y_i(w·x_i+b) -1\geq 0,\;\;\;i=1,2,...,Ns.t.yi(wxi+b)10,i=1,2,...,N
求得最优解w ∗ , b ∗ w^*,b^*w,b

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

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

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

支持向量和间隔边界

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


学习的对偶算法

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


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

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


算法 线性可分SVM学习算法

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

(1)构造并求解约束最优化问题
min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α 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αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi
s . t . ∑ i = 1 N α i y i = 0 s.t. \;\;\;\;\sum_{i=1}^N\alpha_iy_i=0s.t.i=1Nαiyi=0
α i ≥ 0 , i = 1 , 2 , . . . , N \;\;\;\;\;\alpha_i\geq 0,\;\;\;i=1,2,...,Nαi0,i=1,2,...,N
求得最优解α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^Tα=(α1,α2,...,αN)T

(2)计算
w ∗ = ∑ i = 1 N α i ∗ y i x i w^* = \sum_{i=1}^N\alpha_i^*y_ix_iw=i=1Nαiyixi
并选择α ∗ \alpha^*α的一个正分量α j ∗ > 0 \alpha_j^*>0αj>0,计算
b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^* = y_j-\sum_{i=1}^N\alpha_i^*y_i(x_i·x_j)b=yji=1Nαiyi(xixj)

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


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

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

w ∗ ⋅ x i + b ∗ = ± 1 w^*·x_i+b^*=\pm1wxi+b=±1
x i x_ixi一定在间隔边界上,与之前的定义一致。


版权声明:本文为qq_33151035原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。