第7章 支持向量機(SVM)

第7章 支持向量機(SVM)

背景

​ 支持向量機由簡至繁可分爲:線性可分支持向量機(linear support vector machine in linearly separable case)、線性支持向量機(linear support vector machine)、非線性支持向量機(non-linear support vector machine)。當訓練數據線性可分時,通過硬件個最大化學習一個線性分類器,即線性可分支持向量機,又稱應間隔支持向量機;當訓練數據近似線性可分時,通過軟間隔最大化,學習一個線性分類器,即線性支持向量機,又稱軟間隔支持向量機;當訓練數據線性不可分時,通過核技巧(kernel trick)及軟間隔最大化,學習非線性支持向量機。

1、線性可分支持向量機

1.1 基本定義
  • ​ 線性可分支持向量機

    ​ 給定線性可分數據集,通過間隔最大化或等價地求解相應的凸二次規劃問題學習得到分離超平面: wx+b=0w^*x+b=0 以及相應的分隔函數: f(x)=sign(wx+b)f(x) = sign(w^*x+b)

  • 函數間隔

    ​ 對於給定的數據集TT和超平面(w,b)(w, b), 定義函數間隔爲:
    γ^=yi(w×xi+b) \hat\gamma = y_i(w\times x_i+b)
    最小函數間隔函數:γ^=mini=1,..nγ^i\hat\gamma = \min_{i = 1, .. n}{\hat \gamma_i}

  • 幾何間隔

    ​ 對於給定的數據集TT和超平面(w,b)(w, b), 定義幾何間隔爲:
    γ=yi(ww.xi+bw) \gamma = y_i(\dfrac{w}{||w||} . x_i + \dfrac{b}{||w||})
    最小几何間隔:γ^=mini=1,..Nγ^i\hat\gamma = min_{i = 1, .. N}{\hat \gamma_i}

:函數間隔和幾何間隔的數學關係:
γ=γ^w \gamma = \dfrac{\hat \gamma}{||w||}

  • 支持向量和間隔邊界

    線性可分條件下,訓練數據集樣本點與分離超平面距離最近的樣本點實例稱爲支持向量。支持向量點滿足:yi(w.xi+b)1=0y_i(w . x_i +b) - 1 = 0,其中,對於yi=1y_i= 1的正樣例,滿足H1:w.x+b=1H_1 : w.x+b = 1,對於yi=1y_i= -1的負樣例,滿足H2:w.x+b=1H_2 : w.x + b = -1, 在H1H_1H2H_2上的點都是支持向量,二者的距離爲2w\dfrac{2}{||w||},稱間隔邊界。

1.2 最大間隔分離超平面

maxw,b γ   st.  yi(ww.xi+bw)γ \max_{w, b} \ {\gamma} \ \ \ st. \ \ y_i(\dfrac{w}{||w||} . x_i + \dfrac{b}{||w||}) \geq \gamma

約束條件表明:超平面(w,b)(w, b)關於每個訓練樣本的幾何間隔至少是γ\gamma

根據函數間隔和幾何間隔的關係,最大間隔分離超平面也可以表示爲:
maxw,b γ^w   st.  yi(w.xi+b)γ^ \max_{w, b} \ {\dfrac{\hat \gamma}{||w||}} \ \ \ st. \ \ y_i(w . x_i +b) \geq \hat \gamma
由於γ^\hat \gamma對最優化的影響在於同等放縮(w,b)(w, b),所以最優化時問題轉化爲求解最大值1w\dfrac{1}{||w||},等價地,最優化問題轉化爲求解最小值12w2\dfrac{1}{2}||w||^2,即有:
minw,b12w2   st.yi(w.xi+b)10(*) \min_{w, b}{\dfrac{1}{2}||w||^2} \ \ \ st. y_i(w.x_i+b) - 1 \geq 0 \tag{*}
(*)爲凸二次規劃問題,對應的超平面(w,b)(w, b)存在且唯一
minwf(w)st.gi(w)0  i=1,2,...,khi(w)=0   i=1,2,...,l \min_{w}{f(w)} \\ st.g_i(w) \leq 0 \ \ i = 1, 2, ..., k \\ h_i(w) = 0 \ \ \ i = 1, 2, ..., l

1.3 對偶算法與KKT條件

(*)構造 拉格朗日函數,對每一個不等式約束引入拉格朗日乘子, αi0,i=1,2,...,N\alpha_i \geq 0,i = 1, 2, ..., N 定義拉格朗日函數:
L(w,b,α)=12w2i=1Nαiyi(w.xi+b)+i=1Nαi(1) L(w, b, \alpha) = \dfrac{1}{2}||w||^2 - \sum_{i=1}^N\alpha_iy_i(w.x_i+b)+\sum_{i=1}^N\alpha_i \tag1
其中,α=(α1,α2,...,αN)T\alpha = (\alpha_1, \alpha_2, ..., \alpha_N)^T,根據拉格朗日對偶性,原始問題的對偶問題是極大極小問題:
maxαminw,bL(w,b,α) \max_\alpha\min_{w,b}L(w,b,\alpha)
所以,爲了得到對偶問題的解,需要先求L(w,b,a)L(w,b,a)w,bw, b的極小值,再求對α\alpha的極大值。

(1)求minw,bL(w,b,a)\min_{w,b}L(w,b,a)
wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0(2) \nabla_wL(w,b,\alpha) = w - \sum_{i=1}^N\alpha_iy_ix_i = 0 \\ \nabla_bL(w,b,\alpha) = -\sum_{i=1}^N\alpha_iy_i=0 \tag2
將(2)帶入(1)得:
L(w,b,α)=12i=1Nj=1Nαiαjyiyj(xi.xj)+i=1Nαi L(w,b,\alpha) = - \dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i.x_j)+\sum_{i=1}^N\alpha_i
(2)求minw,bL(w,b,α)\min_{w,b}L(w,b,\alpha)α\alpha的極大,即是對偶問題
maxα12i=1Nj=1Nαiαjyiyj(xi.xj)+i=1Nαis.t.   i=1Nαiyi=0αi0,   i=1,2,...,N(3) \max_{\alpha}-\dfrac{1}{2}\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. \ \ \ \sum_{i=1}^N\alpha_iy_i=0 \\ \alpha_i \geq 0, \ \ \ i = 1, 2, ..., N \tag3
將(3)式目標函數由求極大轉換轉換爲求極小,則等價對偶最優化問題:
minα12i=1Nj=1Nαiαjyiyj(xi.xj)i=1Nαis.t.   i=1Nαiyi=0αi0,   i=1,2,...,N(4) \min_{\alpha}\dfrac{1}{2}\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. \ \ \ \sum_{i=1}^N\alpha_iy_i=0\\ \alpha_i \geq 0, \ \ \ i = 1, 2, ..., N\tag4
因此,原始w,bw,b的最優化轉換爲先求解α\alpha的最優化,設(4)條件下的最優化解爲α\alpha^*,其中α=(α1,α2,...,αN)T\alpha^*=(\alpha_1^*, \alpha_2^*, ..., \alpha_N^*)^T,則(w,b)(w, b)的最優解爲(w,b)(w^*,b^*)
w=i=1Nαiyixib=yjwxi=yji=1Nαyi(xi.xj) w^* = \sum_{i=1}^N\alpha_i^*y_ix_i \\ b^* = y_j-w^*x_i = y_j - \sum_{i=1}^N\alpha^*y_i(x_i.x_j)

1.4 KKT條件:

wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0αi(yi(w.xi+b)1)=0yi(w.xi+b)10   i=1,2,...,Nαi0   i=1,2,...,N(5) \nabla_wL(w^*,b^*,\alpha^*) = w^* - \sum_{i=1}^N\alpha_i^*y_ix_i = 0 \\ \nabla_bL(w^*,b^*,\alpha^*) = -\sum_{i=1}^N\alpha_i^*y_i=0 \\ \alpha_i^*(y_i(w^*.x_i+b^*) - 1) = 0 \\ y_i(w^*.x_i+b^*) - 1 \geq 0 \ \ \ i = 1, 2, ..., N \\ \alpha_i^* \geq 0 \ \ \ i = 1, 2, ..., N \\ \tag5

2、線性支持向量機

線性可分的學習方法對線性不可分的訓練是不適用的,因爲此時的不等式越是並不成立,需要將硬間隔最大化修改爲軟間隔最大化。

此時對應的凸二次規劃問題(原始問題):
minw,b,ξ12w2+Ci=1Nξiξi0   i=1,2,...,Ns.t.   yi(wi.x+b)1ξii=1,2,...,N(6) \min_{w, b,\xi}\dfrac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i \\ \xi_i \geq 0 \ \ \ i = 1, 2, ..., N \\ s.t. \ \ \ y_i(w_i.x+b) \geq 1 - \xi_i i = 1, 2, ...,N \\ \tag6

2.1 定義

對於給定的線性不可分的訓練數據集,通過求解凸二次規劃問題,即軟間隔最大化,得到分離超平面:w.x+b=0w^* .x +b^* = 0,對應的分類決策函數:f(x)=sign(w.x+b)f(x) = sign(w^*.x+b^*),稱爲線性支持向量機。

原始問題的對偶問題:
minα12w2i=1Nαis.t.   i=1Nαiyi=0  i=1,2,...,N0αiC  i=1,2,...,N(7) \min_\alpha\dfrac{1}{2}||w||^2-\sum_{i=1}^N\alpha_i \\ s.t. \ \ \ \sum_{i=1}^N\alpha_iy_i = 0 \ \ i = 1, 2, ..., N\\ 0 \leq \alpha_i \leq C \ \ i = 1, 2, ..., N\\ \tag7
原始問題的最優化拉格朗日目標函數:
L(w,b,ξ,α,μ)=12w2+Ci=1Nξii=1Nαi(yi(w.xi+b)+ξi1))i=1Nμiξi L(w, b, \xi, \alpha, \mu) = \dfrac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\alpha_i(y_i(w.x_i+b) + \xi_i - 1))-\sum_{i=1}^N\mu_i\xi_i
其中αi0,μi0\alpha_i \geq 0, \mu_i \geq 0

對偶問題是拉格朗日目標函數的極大極小問題即:
maxαminw,b,ξL(w,b,ξ,α,μ)=maxαminw,b,ξ(12w2+Ci=1Nξii=1Nαi(yi(w.xi+b)+ξi1))i=1Nμiξi)(8) \max_{\alpha}\min_{w, b, \xi} L(w, b, \xi, \alpha, \mu) = \max_{\alpha}\min_{w, b, \xi} (\dfrac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\alpha_i(y_i(w.x_i+b) + \xi_i - 1))-\sum_{i=1}^N\mu_i\xi_i) \tag8
對極小化拉格朗日目標函數minw,b,ξL(w,b,ξ,α,μ)\min_{w, b, \xi}L(w,b, \xi, \alpha, \mu)求對應偏導數:
wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξiL(w,b,ξ,α,μ)=Cαiμi=0(9) \nabla_wL(w,b,\xi,\alpha, \mu) = w - \sum_{i=1}^N\alpha_iy_ix_i = 0 \\ \nabla_bL(w,b,\xi, \alpha, \mu) = -\sum_{i=1}^N\alpha_iy_i=0 \\ \nabla_{\xi_i}L(w,b,\xi, \alpha, \mu) = C - \alpha_i-\mu_i = 0 \tag9
將(9)迴帶入(8)式, 再對minw,b,ξL(w,b,ξ,α,μ)\min_{w, b, \xi}L(w,b, \xi, \alpha, \mu)中的α\alpha求極大,得對偶問題:
maxα12i=1Nj=1Nαiαjyiyj(xi.xj)+i=1Nαis.t.  i=1Nαiyi=0Cαiμi=0αi0μi0(10) \max_\alpha\dfrac{1}{2}\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. \ \ \sum_{i=1}^N\alpha_iy_i = 0 \\ C - \alpha_i - \mu_i = 0 \\ \alpha_i \geq 0 \\ \mu_i \geq 0 \\ \tag{10}
將(9)式Cαiμi=0C - \alpha_i - \mu_i = 0帶入(10)式,求解只含αi\alpha_i的z最優化問題,滿足:0αiC0 \leq \alpha_i \leq C

α=(α1,α2,...,αN)T\alpha^*= (\alpha_1^*, \alpha_2^*, ..., \alpha_N^*)^T是原始問題的對偶問題(7)的一個解,則原始問題的解(w,b)(w^*, b^*)爲:
w=i=1Nαiyixib=yjwxj=yji=1Nαiyi(xi.xj) w^* = \sum_{i=1}^N\alpha_i^*y_ix_i \\ b^* = y_j - w^*x_j = y_j - \sum_{i=1}^N\alpha_i^*y_i(x_i.x_j)

2.2 KKT條件:

wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξL(w,b,ξ,α,μ)=Cαμ=0αi(yi(w.xi+b)+ξi1)=0μiξi=0yi(w.xi+b)+ξi10ξi0αi0μi0(11) \nabla_wL(w^*,b^*,\xi^*,\alpha^*, \mu^*) = w^* - \sum_{i=1}^N\alpha_i^*y_ix_i = 0 \\ \nabla_bL(w^*,b^*,\xi^*,\alpha^*, \mu^*) = -\sum_{i=1}^N\alpha_i^*y_i=0 \\ \nabla_{\xi}L(w^*,b^*,\xi^*,\alpha^*, \mu^*) = C - \alpha^*-\mu^* = 0 \\ \alpha_i^*(y_i^*(w^*.x_i+b^*) + \xi_i^* - 1) = 0 \\ \mu_i^* \xi_i^* = 0 \\ y_i^*(w^*.x_i+b^*) + \xi_i^* - 1 \geq 0 \\ \xi_i^* \geq 0 \\ \alpha_i^* \geq 0 \\ \mu_i \geq 0 \\ \tag{11}

由此所得的分離超平面:wx+b=i=1Nαiyi(x.xi)+b=0w^*x+b = \sum_{i=1}^N\alpha_i^*y_i(x.x_i) +b^* = 0

分類決策函數:f(x)=sign(wx+b)=sign(i=1Nαiyi(x.xi)+b)f(x) = sign(w^*x+b) = sign(\sum_{i=1}^N\alpha_i^*y_i(x.x_i) +b^*)

【注】:對於線性支持向量機學習策略,ww^*是唯一的,bb^*可以有多個,實際中取NNbb^*的均值。

2.3 支持向量:
1572080109513

圖中,正例用"oo“表示,負例用”×\times"表示,實例到邊間的距離爲:ξiw\dfrac{\xi_i}{||w||}

軟間隔支持向量xix_i或者在間隔邊界上,或者在間隔邊界和分離超平面之間,或者在分離超平面誤分類一側,存在如下關係:

  • 0<αi<C0 < \alpha_i <C,ui0u_i \neq 0,ξi=0\xi_i=0,則支持向量落在間隔邊界上;
  • αi=C\alpha_i = Cμi=0\mu_i = 0, 若0<ξi<10 < \xi_i <1,則分類正確,支持向量落在間隔邊界和分離超平面之間;
  • αi=C\alpha_i = Cμi=0\mu_i = 0, 若ξi=1\xi_i =1,則支持向量恰好落在分離超平面上;
  • αi=C\alpha_i = Cμi=0\mu_i = 0, 若ξi>1\xi_i > 1,則支持向量位於分離超平面誤分類一側;
2.4 另一種解釋:

線性支持向量機學習相當於最小化下列函數:
i=1N[1yi(w.xi+b)]++λw2(12) \sum_{i=1}^N[1-y_i(w.x_i+b)]_+ + \lambda ||w||^2 \tag{12}
目標函數的第一項是經驗損失或經驗風險,記L(y(w.x+b))=[1y(w.x+b)]+L(y(w.x+b)) = [1-y(w.x+b)]_+爲合頁損失,其中z+=max(0,z)z_+ =\max(0, z)

因此有,當樣本點被正確分類且函數間隔y(w.x+b)y(w.x+b)大於1時,損失爲0,注意,位於分離超平面誤分類一側的點能夠被正確分類,但是損失不爲0;目標函數的第二項是係數爲λ\lambdawwL2L_2範數,爲正則化項。

ξi=1yi(w.xi+b)\xi_i = 1 - y_i(w.x_i+b),則線性支持向量機的原始最優化問題(6)等價於最優化問題(12),其中λ=12C\lambda = \dfrac{1}{2C}

合頁損失和0-1損失函數的圖示如下圖,其中虛線爲感知機損失函數[yi(w.xi+b)]+[y_i(w.x_i+b)]_+

1572099509817 由於0-1損失函數不是連續可導的,直接優化由其構成的損失函數比較困難,可認爲線性支持向量機的合頁損失函數是0-1損失的上界,此時的上界損失又稱代理損失函數(surrogate loss function)。

3、非線性支持向量機與核函數

3.1 核技巧

對給定的訓練數據集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)\},其中xix_i屬於輸入空間,yi[+1,1]y_i \in [+1, -1],如果能用RNR^N的一個超曲面將正負樣例正確地分開,則稱這個問題爲非線性可分問題。非線性可分問題的求解思路是對輸入進行非線性變換,將非線性問題轉換爲線性問題。

用線性分類方法求解非線性分類問題分兩步:首先使用一個變換將原空間映射到新空間;然後再新空間使用線性分類方法,從訓練數據中學習分類模型。核技巧就屬於這種方法。

核技巧應用到支持向量機,其基本思想是通過一個非線性變換將輸入空間(歐式空間R\mathcal{R})對應於一個特種空間(希爾伯特空間H\mathcal{H})。

3.2 核函數

X\mathcal{X}是輸入空間(歐式空間R\mathcal {R},設H\mathcal {H}爲特徵空間(希爾伯特空間),如果存在一個X\mathcal {X}H\mathcal {H}的映射 ϕ(x):XH\phi(x):\mathcal {X} \rightarrow \mathcal {H},使得對所有x,zXx,z \in \mathcal {X} 函數K(x,z)K(x, z)滿足條件:K(x,z)=ϕ(x).ϕ(z)K(x,z) = \phi(x).\phi(z),則稱K(x,z)K(x,z)爲核函數,ϕ(x)\phi(x)爲映射函數。

【注】:ϕ\phi是輸入空間X\mathcal {X}到特徵空間H\mathcal {H}的映射,特徵空間H\mathcal {H}一般是高維的,甚至是無窮的,對於給定的核函數K(x,z)K(x, z),特徵映射ϕ\phi並不唯一。

:設輸入空間爲R2\mathcal R^2,核函數爲K(x,z)=(x.z)2K(x,z) = (x.z)^2,試找出相關的特徵空間H\mathcal H和特徵映射ϕ(x)\phi(x):RHR\rightarrow \mathcal H

取特徵空間H=R3\mathcal H = \mathcal R^3,記x=(x(1),x(2))Tx=(x^{(1)}, x^{(2)})^Tz=(z(1),z(2))Tz = (z^{(1)}, z^{(2)})^T,則:

K(x,z)=(x.z)2=(x(1)z(1)+x(2)z(2))2=(x(1)z(1))2+2.x(1)z(1)x(2)z(2)+(x(2)z(2))2K(x,z) = (x.z)^2 = (x^{(1)}z^{(1)} + x^{(2)}z^{(2)})^2 = (x^{(1)}z^{(1)})^2+2.x^{(1)}z^{(1)}x^{(2)}z^{(2)}+(x^{(2)}z^{(2)})^2

取映射:ϕ(x)=((x(1))2,2.x(1)x(2),(x(2))2)T\phi(x)= ((x^{(1)})^2, \sqrt2.x^{(1)}x^{(2)}, (x^{(2)})^2)^T

滿足:K(x,z)=ϕ(x).ϕ(z)K(x,z) = \phi(x).\phi(z)

同理,取映射:ϕ(x)=12((x(1))2(x(2))2,2.x(1)x(2),(x(1))2+(x(2))2)T\phi(x)= \dfrac{1}{\sqrt2}((x^{(1)})^2 - (x^{(2)})^2, 2.x^{(1)}x^{(2)}, (x^{(1)})^2+(x^{(2)})^2)^T

滿足:K(x,z)=ϕ(x).ϕ(z)K(x,z) = \phi(x).\phi(z)

取特徵空間H=R4\mathcal H = \mathcal R^4ϕ(x)=((x(1))2,x(1)x(2),x(1)x(2),(x(2))2)T\phi(x)= ((x^{(1)})^2, x^{(1)}x^{(2)}, x^{(1)}x^{(2)},(x^{(2)})^2)^T

滿足:K(x,z)=ϕ(x).ϕ(z)K(x,z) = \phi(x).\phi(z)

3.3 核方法在支持向量機中的應用

將對偶問題(10)的內積xi.xjx_i.x_j用核函數K(xi,xj)=ϕ(xi).ϕ(xj)K(x_i,x_j) = \phi(x_i).\phi(x_j)代替,得此時的目標函數:
W(α)=12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi(13) W(\alpha) = \dfrac{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{13}
即將原內積映射到高維特徵空間,當映射函數爲非線性映射時,學習到的含核函數的支持向量機即爲非線性支持向量機。

3.4 常用核函數
  1. 多項式核函數對應一個pp次多項式分類器:
    K(x,z)=(x.z+1)p K(x, z) = (x.z+1)^p

  2. 高斯核函數對應一個高斯徑向基函數分類器:
    K(x,z)=exp{xz22δ2} K(x,z) = \exp\{-\dfrac{||x-z||^2}{2\delta^2}\}

  3. 字符串核函數kn(s,t)k_n(s,t)給出了字符串sstt中長度等於nn的所有子串組成的特徵向量的餘弦相似度。
    kn(s,t)=un[ϕn(s)]u.[ϕn(t)]u=un(i.j)s(i)=t(i)=uλl(i)λl(j) k_n(s ,t) = \sum_{u \in \sum^n}[\phi_n(s)]_u.[\phi_n(t)]_u=\sum_{u \in \sum^n(i.j)}\sum_{s(i)= t(i)=u}\lambda^{l{(i)}}\lambda^{l{(j)}}

4、序列最小化算法

序列最小化算法(sequential minimal optimization, SMO)要求解的凸二次優化的對偶問題:
minα12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαis.t.   i=1Nαiyi=00αiC   i=1,2,...,N(14) \min_\alpha\dfrac{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 \\ s.t. \ \ \ \sum_{i=1}^N\alpha_iy_i = 0 \\ 0 \leq \alpha_i \leq C \ \ \ i = 1 ,2, ..., N \tag{14}
整個SMO算法包括兩個部分:求解兩個變量的二次規劃的解析方法和選擇變量的啓發式方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章