監督學習 | SVM 之線性支持向量機原理

相關文章:

機器學習 | 目錄

監督學習 | SVM 之非線性支持向量機原理

監督學習 | SVM 之支持向量機Sklearn實現

支持向量機

支持向量機(Support Vector Machines, SVM):是一種二分類模型,它的基本模型是定義在特徵空間上的間隔最大化的線性分類器,間隔最大化使它有別於感知器;支持向量機還包括核技巧(通過非線性函數轉換爲線性模型),這使它成爲實質上的非線性分類器。

支持向量機的學習策略就是間隔最大化,可以形式化爲一個求解凸二次規劃(convex quadratic programming)的問題,也等價於正則化的合頁損失函數最小化問題,支持向量機的學習算法是求解凸二次規劃的最優算法。[1]

按訓練數據分線性可分程度,支持向量機的分類以及對應採取的算法如下:

  1. 線性可分支持向量機:硬間隔最大化(線性可分)

  2. 線性支持向量機:軟間隔最大化(近似線性可分)

  3. 非線性支持向量機:核技巧+軟間隔最大化(線性不可分)

線性可分支持向量機可以看作是線性支持向量機的一個特例;非線性支持向量機則通過核函數將線性不可分數據轉換爲線性可分數據,從而轉換爲線性支持向量機。

間隔最大化:按間隔中是否能出現樣本點,分爲硬間隔最大化和軟間隔最大化。硬間隔最大化中不允許有樣本點出現,因此適合於數據線性可分的情況;軟間隔最大化中允許有少量樣本點出現,適合於含有噪聲的線性可分數據(稱爲近似線性可分)。

本文將按照上述思路介紹前兩類類支持向量機,而非線性支持向量機和核函數在下一篇中再介紹。

1. 線性可分支持向量機

線性可分支持向量機(linear support vector machine in linearly separable case)與硬間隔最大化(hard margin maximization)

首先我們來看一個線性可分的例子,給定訓練樣本D={(x1,y1),(x2,y2),,(xm,ym)},yi{1,+1}D=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right),\left(\boldsymbol{x}_{2}, y_{2}\right), \ldots,\left(\boldsymbol{x}_{m}, y_{m}\right)\right\}, y_{i} \in\{-1,+1\},分類學習最基本的想法就是基於訓練集 DD 在樣本空間中找到一個劃分超平面,將不同類別的樣本分開,但能將訓練樣本分開的劃分超平面可能有很多,如下圖所示:

圖1 存在多個劃分超平面將兩類訓練樣本分開

直觀上,應該去找位於兩類訓練樣本“正中間”的劃分超平面,因爲該劃分超平面對訓練樣本局部擾動的“容忍”性最好。例如,由於訓練集的侷限性或噪聲的影響,訓練集外的樣本可能比圖 1 中的訓練樣本更接近兩個類的分隔屆,這將使許多劃分超平面出現錯誤,而紅色的超平面受影響最小。換而言之,這個劃分超平面所產生的分類結果魯棒性是最好的,對預測數據的泛化能力也是最強的。

在樣本空間中,劃分超平面可通過如下線性方程來描述:

(1)wTx+b=0 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b=0 \tag{1}

其中 w=(w1;w2; ;wd)\boldsymbol{w}=\left(w_{1} ; w_{2} ; \dots ; w_{d}\right)法向量,決定了超平面的方向;bb位移項,決定了超平面與原點之間的距離。因此劃分超平面可以唯一的被法向量 w\boldsymbol{w} 和位移項 bb 確定,我們將這個超平面記爲 (w,b)(\boldsymbol{w},b)

樣本空間中任意點 x\boldsymbol{x} 到超平面 (w,b)(\boldsymbol{w},b) 的距離可以寫爲:

(2)r=wTx+bw r=\frac{\left|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right|}{\|\boldsymbol{w}\|}\tag{2}

假設超平面 (w,b)(\boldsymbol{w},b) 能將訓練樣本正確分類,即對於 (xi,yi)D\left(\boldsymbol{x}_{i}, y_{i}\right) \in D,若 yi=+1y_i=+1,則有 wTxi+b>0\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b>0;若 yi=1y_i=-1,則有 wTxi+b<0\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b<0,如下:

(3){wTxi+b+1,yi=+1wTxi+b1,yi=1 \left\{\begin{array}{ll}{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \geqslant+1,} & {y_{i}=+1} \\ {\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \leqslant-1,} & {y_{i}=-1}\end{array}\right. \tag{3}

如圖 2 所示,距離超平面最近的這幾個訓練樣本點使公式 (3) 的等號成立,它們被稱爲“支持向量”(support vector),兩個異類向量到超平面的距離之和爲:

(4)γ=2w \gamma=\frac{2}{\|\boldsymbol{w}\|}\tag{4}

它被稱爲間隔(margin)。

圖2 支持向量與間隔

1.1 間隔計算公式推導

首先,設W=(w1,w2),x=(x1,x2)W=\left(w_{1}, w_{2}\right), x=\left(x_{1}, x_{2}\right),並且 Wx=w1x1+w2x2W x=w_{1} x_{1}+w_{2} x_{2}

假設我們有三條直線:

Wx+b=1Wx+b=0Wx+b=1\begin{array}{l}{\bullet W x+b=1} \\ {\bullet W x+b=0} \\ {\bullet W x+b=-1}\end{array}

其中第二條爲超平面的表達式,第一條和第三條爲邊界的表達式。由於這三條線爲等距平行線,因此想要確定間隔(兩條邊界的距離),只需要計算邊界與超平面之間的距離,並乘 2 就得到了間隔。

下面上邊界到超平面的距離:

圖3 邊界與超平面

由於移動直線並不改邊之間的距離,因此可以將超平面移動到與原點相交,此時直線方程變爲:

Wx=1Wx=0\begin{array}{l}{\bullet W x=1} \\ {\bullet W x=0}\end{array}

現在,超平面的直線表達式爲Wx=0W x=0,因此其法向量爲W=(w1,w2)W=\left(w_{1}, w_{2}\right)

圖4 移動後的邊界與超平面以及法向量

法向量 WW 與邊界相交於藍點,假設該點的座標爲 (p,q)(p, q),由於該點位於法向量 W=(w1,w2)W=\left(w_{1}, w_{2}\right) 上,所以 (p,q)(p,q)(w1,w2)(w_1,w_2) 的倍數,即:

(p,q)=k(w1,w2)\bullet (p,q)= k(w_1,w_2)

將點 (p,q)(p,q) 代入邊界方程 Wx=1Wx=1 有:

Wx(w1,w2)(x1,x2)T(w1,w2)(p,q)T(w1,w2)k(w1,w2)Tk(w12+w22)=1 \begin{aligned} &\quad\quad W x \\ & \Rightarrow (w_1,w_2) (x_1,x_2)^T\\ & \Rightarrow (w_1,w_2) (p,q)^T\\ & \Rightarrow (w_1,w_2) k(w_1,w_2)^T\\ & \Rightarrow k(w_1^2+w_2^2)=1\\ \end{aligned}

因此k=1w12+w22=1W2k=\frac{1}{w_{1}^{2}+w_{2}^{2}}=\frac{1}{|W|^{2}},所以藍點座標可化爲:

(p,q)=k(w1,w2)=kW=1W2W=WW2 \begin{aligned} (p,q)&= k(w_1,w_2)\\ &=kW \\ &=\frac{1}{|W|^{2}}W\\ &=\frac{W}{|W|^{2}} \end{aligned}

現在,兩條直線之間的距離是藍色向量的範數,由於分母是一個標量,向量 WW2\frac{W}{|W|^{2}} 的範數正是 WW2\frac{|W|}{|W|^{2}},即 1W\frac{1}{|W|},如下圖所示:

圖5 邊界到分離超平面的距離

最後,最終的間隔爲兩倍距離,即:

γ=2w \gamma=\frac{2}{|\boldsymbol{w}|}

1.2 硬間隔最大化

支持向量機學習的基本想法是求解能夠正確劃分訓練數據集並且間隔最大化的分離超平面。對於線性可分的訓練數據集而言,線性可分的分離超平面有無數個,但是間隔最大的分離超平面是唯一的。

這裏的間隔最大化又稱爲硬間隔最大化,間隔最大化的直觀解釋是:對訓練數據集找到間隔最大的超平面以爲着以充分大的確信度對訓練數據進行分類,也就是說,不僅將正負實例點分開,而且最最難分的實例點(離超平面最近的點)也有足夠大的確信度將它們分開。這樣的超平面應該對未知的新實例有很好的分類預測能力。

求解硬間隔最大化下的超平面可以分爲一下幾步:

  1. 間隔最大化問題化爲其倒數的最小化問題(爲了應用拉格朗日對偶性求解最小化規劃問題的解),我們將這個最小化問題稱爲原始問題,相應的算法1.1稱爲最大間隔法

  2. 利用拉格朗日對偶性將原始問題轉換爲拉格朗日函數,分兩步求解得到算法1.1的最優解,我們將這個算法稱爲對偶算法;最後利用最優解代入公式可以得到分離超平面以及分離決策函數的方程式。

下面我將詳細的介紹這兩個步驟。

1.2.1 原始問題

由1.1可知,間隔的計算公式爲γ=2w\gamma=\frac{2}{\|\boldsymbol{w}\|},因此最大化間隔2w\frac{2}{\|\boldsymbol{w}\|} 相當於最小化 12w2\frac{1}{2}\|w\|^2,於是就得到下面的線性可分支持向量學習的最優化問題:


算法1.1 線性可分支持向量機學習方法——最大間隔法

輸入:線性可分訓練數據集T={(x1,y1),(x2,y2), ,(xN,yN)}T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\},其中,xiX=Rnx_i \in X=R^nyiY={1,+1},i=1,2, ,Ny_{i} \in \mathcal{Y}=\{-1,+1\}, \quad i=1,2, \cdots, N

輸出:最大間隔分離超平面和分類決策函數。

(1) 構造並求解月時最優化問題:

(5)minw,b12w2 s.t. yi(wxi+b)10,i=1,2, ,N \begin{array}{ll}{\min \limits_{w, b}} & {\frac{1}{2}\|w\|^{2}} \tag{5}\\ {\text { s.t. }} & {y_{i}\left(w \cdot x_{i}+b\right)-1 \geqslant 0, \quad i=1,2, \cdots, N}\end{array}

求得最優解w,bw^{*}, b^{*}

(2)由此得到分離超平面:

(6)wx+b=0 w^{*} \cdot x+b^{*}=0\tag{6}

分離決策函數:

(7)f(x)=sign(wx+b) f(x)=\operatorname{sign}\left(w^{*} \cdot x+b^{*}\right)\tag{7}


例 1.1

已知一個如圖 6 所示的訓練數據集,其正例點是 x1=(3,3)T,x2=(4,3)Tx_1=(3,3)^T, x_2=(4,3)^T,負例點是 x3=(1,1)Tx_3=(1,1)^T ,試求最大間隔分離超平面。

圖6 間隔最大分離超平面實例

按照算法1.1,根據訓練數據集構造約束最優化問題:

minx,b12(w12+w22) s.t. 3w1+3w2+b14w1+3w2+b1w1w2b1 \begin{array}{cl} {\min \limits_{x, b}} & {\frac{1}{2}\left(w_{1}^{2}+w_{2}^{2}\right)} \\ {\text { s.t. }} & {3 w_{1}+3 w_{2}+b \geqslant 1} \\ {} & {4 w_{1}+3 w_{2}+b \geqslant 1} \\ {} & {-w_{1}-w_{2}-b \geqslant 1} \end{array}

求得此最優化問題的解 w1=w2=12,b=2w_1=w_2=\frac{1}{2}, b=-2,於是最大間隔分離超平面爲:

12x(1)+12x(2)2=0\frac{1}{2}x^{(1)}+\frac{1}{2}x^{(2)}-2=0

其中,x1=(3,3)Tx_1=(3,3)^Tx2=(1,1)Tx_2=(1,1)^T 爲支持向量。


1.2.2 對偶算法

爲了求得算法1.1 的最優化約束條件下的解 w,bw^{*}, b^{*},我們將它作爲原始最優化問題,利用拉格朗日對偶性,通過求對偶問題(dual problem)得到原始問題(primal problem)的最優解,這就是線性可分支持向量機的對偶算法

首先建立拉格朗日函數(Lagrange function),爲此,對不等式約束條件

(8)yi(wxi+b)10,i=1,2, ,N y_{i}\left(w \cdot x_{i}+b\right)-1 \geqslant 0, \quad i=1,2, \cdots, N\tag{8}

引入拉格朗日乘子(Largrange multiplier):

(9)αi0,i=1,2, ,N\alpha_{i} \geqslant 0, i=1,2, \cdots, N\tag{9}

定義拉格朗日函數:

(10)L(w,b,α)=12w2i=1Nαiyi(wxi+b)+i=1Nαi L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{N} \alpha_{i} y_{i}\left(w \cdot x_{i}+b\right)+\sum_{i=1}^{N} \alpha_{i}\tag{10}

其中,α=(α1,α2, ,αN)T\alpha=\left(\alpha_{1}, \alpha_{2}, \cdots, \alpha_{N}\right)^{\mathrm{T}} 爲拉格朗日乘子向量。

根據拉格朗日對偶性,原始問題的對偶問題是極大極小問題:

(11)maxαminw,bL(w,b,α) \max _{\alpha} \min _{w, b} L(w, b, \alpha) \tag{11}

所以爲了得到對偶問題的解,需要先對L(w,b,α)L(w, b, \alpha)w,bw,b 的極小,再對 α\alpha 求極大。

(1) 求 minw,bL(w,b,α)\min \limits_{w, b} L(w, b, \alpha)

將拉格朗日函數 L(w,b,α)L(w, b, \alpha) 分別對 $ w, b$ 求偏導數,並令其等於0:

(12)wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0 \begin{array}{l}{\nabla_{w} L(w, b, \alpha)=w-\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}=0} \\ {\nabla_{b} L(w, b, \alpha)=\sum_{i=1}^{N} \alpha_{i} y_{i}=0}\end{array}\tag{12}

得:

(13)w=i=1Nαiyixii=1Nαiyi=0 \begin{array}{l}{w=\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}} \\ {\sum_{i=1}^{N} \alpha_{i} y_{i}=0}\end{array}\tag{13}

將 (13) 代入拉格朗日公式 (10),得:

(14)L(w,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi((j=1Nαjyjxj)xi+b)+i=1Nαi=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_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} y_{i}\left(\left(\sum_{j=1}^{N} \alpha_{j} y_{j} x_{j}\right) \cdot x_{i}+b\right)+\sum_{i=1}^{N} \alpha_{i} \\ &=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} \end{aligned}\tag{14}

(15)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_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}\tag{15}

(2)求 minw,bL(w,b,α)\min _{w, b} L(w, b, \alpha)α\alpha 的極大,即使對偶問題:

(16)maxα[12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi] \quad\quad\quad\quad\quad\max _{\alpha}\bigg[-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}\bigg]\tag{16}

(17) s.t. i=1Nαiyi=0αi0,i=1,2, ,N \begin{array}{ll}{\text { s.t. }} & {\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}\tag{17}

將公式 (16) 的最大化轉換爲最小化,就得到了下面與之等價的對偶最優化問題:

(18)minα[12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi] \quad\quad\quad\quad\min _{\alpha}\bigg[\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}\bigg]\tag{18}

(19) s.t. i=1Nαiyi=0αi0,i=1,2, ,N \begin{array}{ll}{\text { s.t. }} & {\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}\tag{19}

α=(α1,α2, ,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T 是對偶最優化問題 (18-19) 的解,則存在下標 jj,並可按下式求得原始最優化問題 (5) 的解 w,bw^*,b^*

(20)w=i=1Naiyixiw^*=\sum_{i=1}^Na_i^*y_ix_i \tag{20}

(21)b=yji=1Naiyi(xixj)b^*=y_j-\sum_{i=1}^Na_i^*y_i(x_i\cdot x_j)\tag{21}


證明如下:

對於原始問題和對偶問題,KKT(Karush-Kuhu-Tucker)條件成立,即得:

(22)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{array}{l}{\nabla_{w} L\left(w^{*}, b^{*}, \alpha^{*}\right)=w^{*}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}=0} \\ {\nabla_{b} L\left(w^{*}, b^{*}, \alpha^{*}\right)=-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}=0} \\ {\alpha_{i}^{*}\left(y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1\right)=0, \quad i=1,2, \cdots, N} \\ {y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1 \geqslant 0, \quad i=1,2, \cdots, N} \\ {\alpha_{i}^{*} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}\tag{22}

由此得:

(23)w=iαiyixiw^*=\sum_i \alpha_i^*y_ix_i\tag{23}

其中至少有一個 aj>0a_j^*>0 (反證法,假設 a=0a^*=0,由 (22) 第一條公式可知 w=0w^*=0,而 w=0w^*=0 不是原始最優化問題 (5) 的解,產生矛盾),對此 jj 有:

(24)yj(wxj+b)1=0y_j(w^*\cdot x_j+b^*)-1=0\tag{24}

將 (20) 代入 (24),並注意到 yj2=1y_j^2=1,即得:

(25)b=yji=1Naiyi(xixj)b^*=y_j-\sum_{i=1}^Na_i^*y_i(x_i\cdot x_j)\tag{25}


w,bw^*, b^* 代入公式 (6)、(7)可得分離超平面的計算公式:

(26)i=1Naiyi(xxi)+b=0\sum_{i=1}^Na_i^*y_i(x\cdot x_i)+b^*=0 \tag{26}

分類決策函數可以寫爲:

(27)f(x)=sign[i=1Naiyi(xxi)]f(x)=sign\bigg[\sum_{i=1}^Na_i^*y_i(x\cdot x_i) \bigg] \tag{27}

這就是說,對於給定的線性可分數據集,可以首先求對偶問題 (18-19) 的解 aa^*;再利用公式 (20-21) 求得原始問題的解 w,bw^*,b^*;從而根據公式 (6-7) 得到分離超平面以及分類決策函數。

這種算法分稱爲線性可分支持向量機的對偶學習算法,是線性可分支持向量機學習的基本算法。

我們可以將上述過程總結爲算法 1.2。


算法1.2 線性可分支持向量機學習算法

輸入:線性可分訓練數據集T={(x1,y1),(x2,y2), ,(xN,yN)}T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\},其中,xiX=Rnx_i \in X=R^nyiY={1,+1},i=1,2, ,Ny_{i} \in \mathcal{Y}=\{-1,+1\}, \quad i=1,2, \cdots, N

輸出:最大間隔分離超平面和分類決策函數。

(1) 構造並求解約束時最優化問題:

(28)minα[12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi] \quad\quad\quad\quad\min _{\alpha}\bigg[\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}\bigg]\tag{28}

(29) s.t. i=1Nαiyi=0αi0,i=1,2, ,N \begin{array}{ll}{\text { s.t. }} & {\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}\tag{29}

求得最優解 α=(α1,α2, ,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T

(2)計算

(30)w=i=1Nαiyixiw^*=\sum_{i=1}^N \alpha_i^*y_ix_i\tag{30}

並選擇 α\alpha^* 的一個正分量 αj>0\alpha_j^*>0,計算:

(31)b=yji=1Naiyi(xixj)b^*=y_j-\sum_{i=1}^Na_i^*y_i(x_i\cdot x_j)\tag{31}

(3)求得分離超平面:

(32)wx+b=0 w^{*} \cdot x+b^{*}=0\tag{32}

分離決策函數:

(33)f(x)=sign(wx+b) f(x)=\operatorname{sign}\left(w^{*} \cdot x+b^{*}\right)\tag{33}


例 1.2

與例1.1 相同,對一個如圖 7 所示的訓練數據集,其正例點是 x1=(3,3)T,x2=(4,3)Tx_1=(3,3)^T, x_2=(4,3)^T,負例點是 x3=(1,1)Tx_3=(1,1)^T ,試用算法1.2求最大間隔分離超平面。

圖7 間隔最大分離超平面實例

根據所給數據,對偶問題是:

minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi=12(18α12+25α22+2α32+42α1α212α1α314α2α3)α1α2α3 s.t. α1+α2α3=0αi0,i=1,2,3 \begin{array}{ll}{\min \limits_{\alpha}} & {\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}} \\ {} & {=\frac{1}{2}\left(18 \alpha_{1}^{2}+25 \alpha_{2}^{2}+2 \alpha_{3}^{2}+42 \alpha_{1} \alpha_{2}-12 \alpha_{1} \alpha_{3}-14 \alpha_{2} \alpha_{3}\right)-\alpha_{1}-\alpha_{2}-\alpha_{3}} \\ {\text { s.t. }} & {\alpha_{1}+\alpha_{2}-\alpha_{3}=0} \\ {} & {\alpha_{i} \geqslant 0, \quad i=1,2,3}\end{array}

解着一最優化問題,將 α1=α1+α2\alpha_1 = \alpha_1+\alpha_2 代入目標函數並記爲:

s(α1,α2)=4α12+132α22+10α1α22α22α2s(\alpha_1,\alpha_2)=4\alpha_1^2+\frac{13}{2}\alpha_2^2+10\alpha_1\alpha_2-2\alpha_2-2\alpha_2

α1,α2\alpha_1, \alpha_2 求偏導數並令其爲 0,易知 s(α1,α2)s(\alpha_1,\alpha_2) 在點 (32,1)T(\frac{3}{2},-1)^T 取極值,但該點不滿足約束條件 α20\alpha_2 \geq 0,所以最小值應在邊界上達到。

α1=0\alpha_1=0 時,最小值 s(0,213)=213s(0,\frac{2}{13})=-\frac{2}{13};當 α2=0\alpha_2=0 時,最小值 s(14,0)=14s(\frac{1}{4},0)=-\frac{1}{4},於是 α1,α2\alpha_1, \alpha_2α1=14,α2=0\alpha_1=\frac{1}{4},\alpha_2=0 達到最小,此時 α3=α1+α3=14\alpha_3=\alpha_1+\alpha_3=\frac{1}{4}

由於 α1=α3=14>0\alpha_1^*=\alpha_3^*=\frac{1}{4}>0,所以由1.3可知其對應的實例點 x1,x3x_1,x_3 是支持向量。根據公式 (30-31) 計算得:

w1=w2=12w_1^*=w_2^*=\frac{1}{2}

b=2b^*=-2

分離超平面爲:

12x(1)+12x(2)2=0\frac{1}{2}x^{(1)}+\frac{1}{2}x^{(2)}-2=0

分類決策函數爲:

f(x)=sign(12x(1)+12x(2)2)f(x)=sign(\frac{1}{2}x^{(1)}+\frac{1}{2}x^{(2)}-2)


1.3 支持向量

考慮原始最優化問題 (5) 以及對偶最優化問題 (28-29),將訓練數據集中對應與 αi>0\alpha_i^*>0 的樣本點 (xi,yi)(x_i,y_i)的實例 xiRnx_i\in\boldsymbol{R^n} 稱爲支持向量

根據這一定義,支持向量一定在間隔邊界上,由 KKT 互補條件可知:

(34)αi(yi(wxi+b)1)=0,i=1,2, ,N{\alpha_{i}^{*}\left(y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1\right)=0, \quad i=1,2, \cdots, N} \tag{34}

對應與 ai>0a_i^*>0 的實例 xix_i,有:

(35)yi(wxi+b)1=0y_{i}(w^{*} \cdot x_{i}+b^{*})-1=0 \tag{35}

(36)wxi+b=±1w^{*} \cdot x_{i}+b^{*}=\pm1 \tag{36}

xix_i 一定在間隔邊界上,這裏的支持向量的定義與之前給出的支持向量的定義是一致的。

2. 線性支持向量機

線性可分問題的支持向量機學習方法,對線性不可分訓練數據是不使用的,因爲這是上述方法中的不等式約束並不能都成立。因此此時需要修改硬間隔最大化,使其稱爲軟間隔最大化。

2.1 軟間隔最大化

假定給定一個特徵空間上的訓練數據集:

(37)T={(x1,y1),(x2,y2), ,(xN,yN)}T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} \tag{37}

其中xiX=Rnx_i \in X=R^nyiY={1,+1},i=1,2, ,N,xiy_{i} \in \mathcal{Y}=\{-1,+1\}, \quad i=1,2, \cdots, N, x_i 爲第 ii 個特徵向量,y1y_1xix_i 的類標記。再假設訓練數據集不是線性可分的。通常情況是,訓練數據中有一些特異點(outlier),將這些特異點去除後,剩下大部分的樣本點組成的集合是線性可分的,我們稱之爲近似線性可分的。

近似線性可分意味着某些樣本點 (xi,yi)(x_i,y_i) 不能滿足函數間隔大於 1 的約束條件 (5)。爲了解決這個問題,可以對每個樣本點 (xi,yi)(x_i,y_i) 引入一個鬆弛變量 ξ0\xi \geq 0,使函數間隔加上鬆弛變量大於等於 1 。這樣,約束條件變爲:

(38)yi(wxi+b)1ξiy_i(w\cdot x_i+b)\geq 1-\xi_i \tag{38}

同時,對每個鬆弛變量 ξi\xi_i,支付一個代價 ξi\xi_i,目標函數由原來的 12w2\frac{1}{2}\|w\|^2 變成:

(38)12w2+Ci=1Nξi\frac{1}{2}\|w\|^2+C\sum_{i=1}^N\xi_i\tag{38}

這裏,C>0C>0 稱爲懲罰參數,一般由應用問題決定,CC 值越大時對誤分類的懲罰增大,CC 值小時對誤分類的懲罰減小,如下圖所示:

圖8 C 參數對間隔的調節

最小化目標函數 (38) 有兩層含義:使 12w2\frac{1}{2}\|w\|^2 儘量小即間隔儘量大,同時使誤分類點的個數儘量小,CC 是調和二者的係數。

有了上面的思路,可以和訓練數據集線性可分時一樣來考慮訓練數據集線性近似可分時的線性支持向量機學習問題,相應於硬間隔最大化,它稱爲軟間隔最大化(soft margin maximization)。

2.1.1 原始問題

近似線性可分的線性支持向量機的學習問題變成如下凸二次規劃問題(原始問題):

(39)minw,b,ξ12w2+Ci=1Nξi\min \limits_{w,b,\xi}\quad \frac{1}{2}\|w\|^2+C\sum_{i=1}^N\xi_i\tag{39}

(40) s.t. yi(wxi+b)1ξi,i=1,2, ,Nξi0,i=1,2, ,N \quad\quad\quad\quad\quad\quad\quad\quad\begin{array}{ll}{\text { s.t. }} & {y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1-\xi_{i}, \quad i=1,2, \cdots, N} \tag{40}\\ {} & {\xi_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}

原始問題 (39-40) 是一個凸二次規劃問題,因而關於 (w,b,ξ)(w,b,\xi) 的解時存在的。可以證明 ww 的解時唯一的, 但 bb 的解不唯一,但可以證明 bb 的解存在一個區間。

2.1.2 對偶算法

原始最優化問題 (39-40) 的拉格朗日函數是:

(41)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}\left(y_{i}\left(w \cdot x_{i}+b\right)-1+\xi_{i}\right)-\sum_{i=1}^{N} \mu_{i} \xi_{i} \tag{41}

其中,αi0,μi0\alpha_i \geq0,\mu_i\geq0

與 1.2.2 相同,對偶問題是拉格朗日函數的極大極小問題,首先求 L(w,b,ξ,α,μ)L(w, b, \xi, \alpha, \mu)w,b,ξw, b, \xi 的極小並代入 (41) 得:

(42)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_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} \tag{42}

再對 minw,b,ξL(w,b,ξ,α,μ)\min \limits_{w, b, \xi} L(w, b, \xi, \alpha, \mu)α\alpha 的極大,即得對偶問題:

(43)maxα[12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi] \max _{\alpha}\bigg[-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} \bigg]\tag{43}

(44)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_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}\tag{44}

將對偶最優化問題 (43-44) 進行變換:利用 (44) 第二條公式消去 μi\mu_i,從而只留下變量 αi\alpha_i,同時將目標函數求極大轉換爲求極小,可得原始問題 (39-40)的對偶問題 (45-46):

(45)minα[12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi] \quad\quad\quad\quad\min _{\alpha}\bigg[\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} \bigg]\tag{45}

(46) s.t. i=1Nαiyi=0Cαiμi=0αi0μi0,i=1,2, ,N \begin{array}{ll}{\text { s.t. }} & {\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {C-\alpha_{i}-\mu_{i}=0} \\ {} & {\alpha_{i} \geqslant 0} \\ {} & {\mu_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}\tag{46}

α=(α1,α2, ,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T 是對偶問題 (45-46) 的一個解,若存在 α\alpha^* 的一個分量 αj\alpha_j^*0αiC0 \leq \alpha_i \leq C,則原始問題 (39-40) 的解 w,bw^*,b^* 可按下式求得:

(47)w=i=1Nαiyixiw^*=\sum_{i=1}^N\alpha_i^*y_ix_i\tag{47}

(48)b=yii=1Nyiαi(xixi)b^*=y_i-\sum_{i=1}^Ny_i\alpha_i^*(x_i\cdot x_i)\tag{48}

綜上,可得線性支持向量機學習算法。


算法2 線性支持向量機學習算法

輸入:線性可分訓練數據集T={(x1,y1),(x2,y2), ,(xN,yN)}T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\},其中,xiX=Rnx_i \in X=R^nyiY={1,+1},i=1,2, ,Ny_{i} \in \mathcal{Y}=\{-1,+1\}, \quad i=1,2, \cdots, N

輸出:分離超平面和分類決策函數。

(1) 選擇懲罰參數 C>0C>0,構造並求解約束時最優化問題:

(49)minα[12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi] \quad\quad\quad\quad\min _{\alpha}\bigg[\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} \bigg]\tag{49}

(50) s.t. i=1Nαiyi=0Cαiμi=0αi0μi0,i=1,2, ,N \begin{array}{ll}{\text { s.t. }} & {\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {C-\alpha_{i}-\mu_{i}=0} \\ {} & {\alpha_{i} \geqslant 0} \\ {} & {\mu_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}\tag{50}

求得最優解 α=(α1,α2, ,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T

(2)計算

(51)w=i=1Nαiyixiw^*=\sum_{i=1}^N\alpha_i^*y_ix_i\tag{51}

並選擇 α\alpha^* 的一個分量 0αiC0 \leq \alpha_i \leq C,計算:

(52)b=yii=1Nyiαi(xixi)b^*=y_i-\sum_{i=1}^Ny_i\alpha_i^*(x_i\cdot x_i)\tag{52}

(3)求得分離超平面:

(53)wx+b=0 w^{*} \cdot x+b^{*}=0\tag{53}

分離決策函數:

(54)f(x)=sign(wx+b) f(x)=\operatorname{sign}\left(w^{*} \cdot x+b^{*}\right)\tag{54}

步驟 (2) 中,對任一適合條件 0αiC0 \leq \alpha_i \leq Cαj\alpha_j^*,按 (52) 都可以計算出 bb^*,但是由於原始問題 (43-44) 對 bb 的解並不唯一,所以實際計算時可以取所有符合條件的樣本點上的平均值。


2.2 支持向量

在線性不可分的情況下,將對偶問題 (49-50) 的解 α=(α1,α2, ,αN)T\alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T 中對應於 αi\alpha_i^* 的樣本點 (xi,yi)(x_i,y_i) 的實例 xix_i 稱爲支持向量(軟間隔的支持向量)。

如圖 9 所示,分離超平面由實現表示,間隔邊界由虛線表示,正例點由“\circ”表示,負例點由“×\times”表示。實例 xix_i 到間隔邊界的距離爲 ξiw\frac{\xi_i}{\|w\|}

圖9 軟間隔的支持向量

軟間隔的支持向量 xix_i 或者在間隔邊界上,或者在間隔邊界與分離超平面之間,或者在分離超平面誤分一側:

  • αi<C\alpha_i^*<C ,則 ξi=0\xi_i=0,支持向量 xix_i 恰好落在區間邊界上

  • αi=C\alpha_i^*=C0<ξi<10<\xi_i<1,則分類正確,支持向量 xix_i區間邊界與分離超平面之間

  • αi=C\alpha_i^*=Cξi=1\xi_i=1,則支持向量 xix_i分離超平面上

  • αi=C\alpha_i^*=Cξi>1\xi_i>1,則支持向量 xix_i分離超平面誤分一側

2.3 合頁損失函數

對於線性支持向量機來說,其模型爲分離超平面 wx+b=0w^* \cdot x + b^*=0 以及決策函數 f(x)=sign(wx+b)f(x)=sign(w^* \cdot x + b^*),其學習策略爲軟間隔最大化,學習算法爲凸二次規劃。

線性支持向量機學習還有另外一種解釋,就是最小以下目標函數:

(55)i=1N[1yi(wxi+b)]++λw2\sum_{i=1}^N[1-y_i(w \cdot x_i+b)]_+ + \lambda \|w\|^2 \tag{55}

  1. 目標函數的第一項式經驗損失或經驗風險。

函數:

(56)L(y(wx+b))=[1y(wx+b)]+L(y(w \cdot x+b)) = [1-y(w \cdot x+b)]_+ \tag{56}

稱爲合頁損失函數(hinge loss function)。下標“+”表示以下取的函數:

(57)[z]+={z,z>00,z0 [z]_{+}=\left\{\begin{array}{ll}{z,} & {z>0} \\ {0,} & {z \leqslant 0}\end{array}\right. \tag{57}

這就是說,當樣本點 (xi,yi)(x_i,y_i) 被正確分類且函數間隔(確信度) yi(wxi+b)y_i(w\cdot x_i+b) 大於 1 時,損失時0,否則損失是 1y(wx+b)1-y(w \cdot x+b),注意圖 9 中的實例點 x4x_4 被正確分類但損失不是 0 。

  1. 目標函數的第 2 項是係數爲 λ\lambdawwL2L_2 範數,是正則化項。

定理

線性支持向量機原始最優化問題:

(58)minw,b,ξ12w2+Ci=1Nξi\min \limits_{w,b,\xi}\quad \frac{1}{2}\|w\|^2+C\sum_{i=1}^N\xi_i\tag{58}

(59) s.t. yi(wxi+b)1ξi,i=1,2, ,Nξi0,i=1,2, ,N \quad\quad\quad\quad\quad\quad\quad\quad\begin{array}{ll}{\text { s.t. }} & {y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1-\xi_{i}, \quad i=1,2, \cdots, N} \tag{59}\\ {} & {\xi_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}

等價於最優化問題:

(60)minw,bi=1N[1yi(wxi+b)]++λw2\min \limits_{w,b}\quad \sum_{i=1}^N[1-y_i(w \cdot x_i+b)]_+ + \lambda \|w\|^2 \tag{60}


合頁損失函數的圖形如下圖所示,橫軸是函數間隔 y(wx+b)y(w \cdot x+b), 縱軸是損失,由於函數形狀像一個合頁,故命名合頁損失函數。

圖10 合頁損失函數

圖中還畫出 0-1 損失函數,可以認爲它是二類分類問題的真正的損失函數,而合頁損失函數是 0-1 損失函數的上界,由於 0-1 損失函數不是連續可導的,直接優化由其構成的目標函數比較困難,可以認爲線性支持向量機就是優化由 0-1 損失函數的上界(合頁損失函數)構成的目標函數。這時的上界損失函數由稱爲代理損失函數(surrograte loss function)。

圖中虛線顯示的是感知器的損失函數 [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] 李航. 統計學習方法[M]. 北京: 清華大學出版社, 2012: 95-115.

[2] 周志華. 機器學習[M]. 北京: 清華大學出版社, 2016: 121-126.

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