支持向量機——線性可分支持向量機


GitHub
簡書
CSDN

1 線性可分支持向量機

支持向量機(Support vector machines, SVM)是一種二分類模型,它的基本模型是定義在特徵空間上的間隔最大的線性分類器,他的學習策略就是間隔最大化,同時該方法可以形式化爲一個求解圖二次規劃。

支持向量機可分爲三類:

  1. 線性可分支持向量機、硬間隔(hard-margin svm)
  2. 線性支持向量機、軟間隔(soft-margin svm)
  3. 非線性支持向量機、Kernel SVM

支持向量機模型中存在三寶:

  1. 間隔
  2. 對偶
  3. 核技巧

支持向量機和感知機在某些方面很相似,其相同點:

  1. 都是二分類模型
  2. 都是通過一個分離超平面對特徵進行分類

不同點:

  1. SVM 是特殊的感知機
  2. 感知機是用誤分類最小的策略,求得分離超平面,這時存在無窮個解,感知機利用間隔最大化求得最優分離超平面。如下圖所示

在這裏插入圖片描述
圖1 感知機與支持向量機區別

圖中的藍色和黃色圓點分別表示正負樣本,對於這個二分類,從圖中我們可知,在最上面的黃線和最下面的綠線之間的線條都是可以把訓練樣本集完全分開的,這就是感知機的原理,通過這些分離超平面把訓練集分開,這樣的分離超平面存在很多條,比如圖中的虛線,從視覺上中間那條實線應該是衆多線條中最優的一條,感知機對於學習的分離超平面由於優化算法、學習率等不同因素,會隨機地學習到這衆多分離超平面中的一條,當學習到的是靠近上下邊緣的分離超平面是,對於一個未知樣本,當這個樣本稍微浮動一下,模型就很可能對他進行誤分類了,因此魯棒性很低,而支持向量機的目標是找到圖中中間那條最優的分離超平面。

定義(線性可分支持向量機):給定線性可分訓練數據集,通過間隔最大化或等價地求解相應的凸二次規劃問題學習得到一個分離超平面:

(1) w x + b = 0 w^* \cdot x + b^* =0 \tag{1}
即相應的決策模型:

(2) f ( x ) = s i g n ( w x + b ) f(x)=sign(w^* \cdot x + b^*) \tag{2}
此模型就爲線性可分支持向量機。其中 $ w^*$ 表示分離超平面的法向量, b b^* 表示截距,位於分離超平面之上的樣本爲正樣本,之下的爲負樣本。

2 函數間隔和幾何間隔

一般來說,一個點到分離超平面的遠近可以表示分類預測的確信程度,在給定分離超平面 w x + b = 0 w \cdot x + b = 0 的情況下, w x + b |w \cdot x + b| 能夠相對地表示點 x x 到分離超平面的遠近。同時 w x + b w \cdot x + b 的符號與類別標記 y y 是否保持一致來表示分類是否正確,所以,可以用 y ( w x + b ) y(w \cdot x + b) 來表示分類的正確性及確信度,這就是函數間隔(functional margin)的概念。

定義(函數間隔):對於給定訓練數據集 T T 和超平面 ( w , b ) (w, b) ,定義超平面 ( w , b ) (w, b) 關於樣本點 ( x i , y i ) (x_i,y_i) 的函數間隔爲:

(3) γ ^ i = y i ( w x i + b ) \hat \gamma_i = y_i(w \cdot x_i + b) \tag{3}

分離超平面關於訓練數據集 T T 的函數間隔爲超平面關於 T T 中所有樣本點 ( x i , y i ) (x_i,y_i) 的函數間隔最小值:

(4) γ ^ = min i = 1... N y i ( w x i + b ) \hat \gamma = \min_{i=1...N}y_i(w \cdot x_i + b) \tag{4}

上述定義是在給定超平面 ( w , b ) (w,b) 的時候計算,然而在實際支持向量機的學習過程中,只有函數間隔是不夠的,因爲當 w w b b 按比例同時擴大 n n 倍,此時函數間隔也擴大 n n 倍,而超平面並沒有改變。因此我們需要對分離超平面加以約束,如規範化, w = 1 ||w||=1 ,使得間隔不隨 w w b b 成比例擴大而改變。這時函數間隔就成爲了幾何間隔(geometric margin)

定義(幾何間隔):對於給定訓練數據集 T T 和超平面 ( w , b ) (w, b) ,定義超平面 ( w , b ) (w, b) 關於樣本點 ( x i , y i ) (x_i,y_i) 的幾何間隔爲:

(5) γ i = y i ( w w x i + b w ) \gamma_i = y_i(\frac{w}{||w||} \cdot x_i + \frac{b}{||w||}) \tag{5}

分離超平面關於訓練數據集 T T 的函數間隔爲超平面關於 T T 中所有樣本點 ( x i , y i ) (x_i,y_i) 的函數間隔最小值:

(6) γ = min i = 1... N γ i \gamma = \min_{i=1...N} \gamma_i \tag{6}

w ||w|| w w L 2 L_2 範數。其實上述公式就是我們中學時候學習的點到直線的距離公式的推廣,或者說點到直線的距離公式是該公式在二位平面下的表示。

通過公式4和公式6的比較,我們可以得出函數間隔和幾何間隔有如下關係:

(7) γ i = γ ^ i w γ = γ ^ w \begin{aligned} \gamma_i =& \frac{\hat \gamma_i}{||w||} \\ \gamma =& \frac{\hat \gamma}{||w||} \end{aligned} \tag{7}

3 間隔最大化

支持向量機學習的基本思想是求解能夠正確劃分訓練數據集幾何間隔最大的分離超平面。間隔最大化的直觀解釋是:使分類決策模型以較大的確信度來對數據集分類,同時對離超平面較近的點也有很大的確信度。

因此,最大間隔支持向量機形式化爲:

(8) max w , b γ s . t . y i ( w w x i + b w ) γ , i = 1 , 2 , . . . , N \begin{aligned} &\max_{w,b}\quad\gamma \\ &s.t. \quad y_i(\frac{w}{||w||} \cdot x_i + \frac{b}{||w||}) \geq\gamma, i=1,2,...,N \end{aligned} \tag{8}

也即:

(9) max w , b γ ^ w s . t . y i ( w w x i + b w ) γ ^ , i = 1 , 2 , . . . , N \begin{aligned} &\max_{w,b}\quad \frac{\hat \gamma}{||w||} \\ &s.t. \quad y_i(\frac{w}{||w||} \cdot x_i + \frac{b}{||w||}) \geq \hat \gamma, i=1,2,...,N \end{aligned} \tag{9}

我們得知函數間隔 γ ^ \hat \gamma 的取值並不影響模型的最優化問題,將 w w b b 成比例的改變 λ \lambda 倍,函數間隔也變成 λ γ ^ \lambda \hat \gamma ,這一改變對上面最優化的不等式約束並沒有印象,因此,我們可以令 γ ^ = 1 \hat \gamma=1 ,於是上述公式就等價於:

(10) min w , b 1 2 w 2 1 2 w T w s . t . y i ( w x i + b ) 1 0 , i = 1 , 2 , . . . , N \begin{aligned} & \min_{w,b} \quad \frac{1}{2}||w||^2 \Rightarrow \frac{1}{2}w^T w\\ & s.t. \quad y_i(w \cdot x_i + b)-1 \geq 0, i=1,2,...,N \end{aligned} \tag{10}

此時,SVM優化問題變爲一個凸二次規劃問題,利用拉格朗日乘子法即可求出最優的 ( w , b ) (w^*,b^*)

4 學習的對偶算法

爲求解支持向量機的最優化問題,我們將公式10作爲原始問題,應用拉格朗日對偶性,通過求解對偶問題(dual problem)得到原始問題(primal problem)的最優解,這就是支持向量機的對偶算法。這樣做的優點:

  1. 對偶問題往往更容易求解;
  2. 自然引入核函數,進而推廣到非線性可分分類問題;

通過對公式10的約束條件引入拉格朗日乘子 α i 0 , i = 1 , 2 , . . . , N \alpha_i\geq 0,i=1,2,...,N ,構建出拉格朗日函數:

(11) L ( w , b , α ) = 1 2 w T w + i = 1 N α i ( 1 y i ( w T x i + b ) ) = 1 2 w T w i = 1 N α i y i ( w T x i + b ) + i = 1 N α i \begin{aligned} L(w, b, \alpha)=&\frac{1}{2}w^Tw+\sum_{i=1}^{N}\alpha_i(1-y_i(w^T x_i + b)) \\ =& \frac{1}{2}w^Tw-\sum_{i=1}^{N}\alpha_i y_i(w^T x_i + b) +\sum_{i=1}^{N}\alpha_i \end{aligned} \tag{11}

我們稱公式10爲帶約束的原始問題,根據拉格朗日對偶性,原始問題的對偶問題是極大極小問題
(12) max α min w , b L ( w , b , α ) \max_{\alpha}\min_{w,b}L(w, b, \alpha) \tag{12}

公式12和原始公式存在一種弱對偶關係,當等號成立時爲強對偶關係:

(13) min w , b max α L ( w , b , α ) max α min w , b L ( w , b , α ) \min_{w,b}\max_{\alpha} L(w, b, \alpha) \geq \max_{\alpha}\min_{w,b} L(w, b, \alpha) \tag{13}

此時我們就可以按照利用拉格朗日對偶性求解問題的標準模型,求解出 w , b , α w, b, \alpha .

  1. min w , b L ( w , b , α ) \min_{w,b}L(w, b, \alpha)

    將拉格朗日函數 L ( w , b , α ) L(w, b, \alpha) 分別對 w , b w,b 求偏導,並令其值爲0.

(14) L w = w i = 1 N α i y i x i = 0 w = i = 1 N α i y i x i \begin{aligned} & \frac{\partial L}{\partial w} = w - \sum_{i=1}^{N}\alpha_i y_i x_i =0 \\ & \Rightarrow w = \sum_{i=1}^{N}\alpha_i y_i x_i \end{aligned} \tag{14}

(15) L b = i = 1 N α i y i = 0 i = 1 N α i y i = 0 \begin{aligned} & \frac{\partial L}{b}=-\sum_{i=1}^{N}\alpha_iy_i=0 \\ & \Rightarrow \sum_{i=1}^{N}\alpha_iy_i=0 \end{aligned} \tag{15}

將公式14和15帶入公式11得:

(16) min w , b L ( w , b , α ) = 1 2 ( i = 1 N α i y i x i ) T i = 1 N α i y i x i i = 1 N α i y i ( ( i = 1 N α i y i x i ) T x i + b ) + i = 1 N α i = 1 2 i = 1 N j = 1 N α i y i α j y j x i T x j i = 1 N j = 1 N α i y i α j y j x j T x i + i = 1 N α i = 1 2 i = 1 N j = 1 N α i y i α j y j x i T x j + i = 1 N α i \begin{aligned} \min_{w,b} L(w, b,\alpha)=&\frac{1}{2} (\sum_{i=1}^{N}\alpha_i y_i x_i)^T \sum_{i=1}^{N}\alpha_i y_i x_i-\sum_{i=1}^{N}\alpha_i y_i((\sum_{i=1}^{N}\alpha_i y_i x_i)^T x_i + b) +\sum_{i=1}^{N}\alpha_i \\ =&\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i y_i\alpha_j y_jx_i^Tx_j-\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i y_i\alpha_j y_jx_j^Tx_i+\sum_{i=1}^{N}\alpha_i \\ =& -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i y_i\alpha_j y_jx_i^Tx_j+\sum_{i=1}^{N}\alpha_i \end{aligned} \tag{16}

  1. **求 min w , b L ( w , b , α ) \min_{w,b}L(w, b,\alpha) **對 α \alpha 的極大值,即對偶問題:

(17) max α 1 2 i = 1 N j = 1 N α i y i α j y j x i T x j + i = 1 N α i s . t . i = 1 N α i y i = 0 α i 0 , i = 1 , 2... N \begin{aligned} & \max_{\alpha} -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i y_i\alpha_j y_jx_i^Tx_j+\sum_{i=1}^{N}\alpha_i \\ & s.t. \quad \sum_{i=1}^{N}\alpha_iy_i=0 \\ & \quad \quad \alpha_i \geq 0,i=1, 2...N \end{aligned} \tag{17}

將上式轉化爲求極小值

(18) min α 1 2 i = 1 N j = 1 N α i y i α j y j x i T x j i = 1 N α i s . t . i = 1 N α i y i = 0 α i 0 , i = 1 , 2... N \begin{aligned} & \min_{\alpha} \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i y_i\alpha_j y_jx_i^Tx_j-\sum_{i=1}^{N}\alpha_i \\ & s.t. \quad \sum_{i=1}^{N}\alpha_iy_i=0 \\ & \quad \quad \alpha_i \geq 0,i=1, 2...N \end{aligned} \tag{18}

上式可以繼續利用凸二次規劃來求解 α = ( α 1 , α 2 , . . . , α N ) \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*) ,然後可由 α \alpha^* 求得原始問題對 ( w , b ) (w,b) 的解 w , b w^*,b^*

定理 α = ( α 1 , α 2 , . . . , α N ) \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*) 是對偶問題(即公式18)的解,則存在下標 j j ,使得 α j > 0 \alpha_j > 0 ,並按如下公式求得 w , b w^*,b^*

(19) w = i = 1 N α i y i x i w^*=\sum_{i=1}^{N} \alpha_i^*y_ix_i \tag{19}

(19) b = y j i = 1 N α i y i ( x i T x j ) b^*=y_j-\sum_{i=1}^{N} \alpha_i^*y_i(x_i^Tx_j) \tag{19}

證明
根據拉格朗日某定理,KKT條件成立,即:

(20) L ( w , b , α ) w = w i = 1 N α i y i x i = 0 L ( w , b , α ) b = i = 1 N α i y i = 0 L ( w , b , α ) α = 0 α i ( 1 y i ( w T x i + b ) ) = 0 α i 0 , i = 1 , 2 , . . . , N 1 y i ( w T x i + b ) 0 , i = 1 , 2 , . . . , N \begin{aligned} & \frac{\partial L(w^*,b^*,\alpha ^*)}{\partial w} = w^*-\sum_{i=1}^{N}\alpha_i^* y_i x_i=0 \\ & \frac{\partial L(w^*,b^*,\alpha ^*)}{\partial b} = -\sum_{i=1}^{N}\alpha_i^*y_i=0 \\ & \frac{\partial L(w^*,b^*,\alpha ^*)}{\partial \alpha} = 0 \\ & \alpha_i(1-y_i(w^Tx_i+b)) =0 \\ & \alpha_i \geq 0 , i=1,2,...,N \\ & 1-y_i(w^Tx_i+b) \leq 0 , i=1,2,...,N \end{aligned} \tag{20}

此時,公式13具有強對偶關係,即等號成立。根據支持向量機的特點,至少存在一個 α j > 0 \alpha_j >0 ,即對於支持向量(後面講解),對此j有

(21) 1 y j ( w T x j + b ) = 0 y j ( w T x j + b ) = 1 1-y_j(w^Tx_j+b) = 0 \Rightarrow y_j(w^{*^T}x_j+b) = 1 \tag{21}

由於 y j y_j 爲1或-1,上式兩邊同乘以一個 y i y_i 得:

(22) b = y j w T x j = y j i = 1 N α i y i ( x i T x j ) \begin{aligned} b^* =& y_j - w^{*^T}x_j \\ =& y_j - \sum_{i=1}^{N} \alpha_i^*y_i(x_i^Tx_j) \end{aligned} \tag{22}

從上面的推導我們可以看出, w w^* b b^* 只依賴於訓練數據中對應於 α i > 0 \alpha_i^* > 0 的樣本點 ( x i , y i ) (x_i, y_i) ,而其他樣本點對 w w^* b b^* 沒有印象,我們把這些 α i > 0 \alpha_i^* > 0 的樣本點稱爲支持向量。這些樣本點一定位於間隔邊界上。

文中繪圖源碼