線性可分SVM

Jeff-Chow000發表於2020-10-19

支援向量機

支援向量機(Support Vecor Machine,以下簡稱SVM)誕生於上個世紀90年代,由於它良好的分類效能,在分類領域稱霸多年,在深度時代之前是分類演算法中當之無愧的王者。

SVM是一個二分類演算法,支援線性分類和非線性分類。經過改進,支援多元分類。經過擴充套件,也能應用於迴歸問題。

線性SVM

線性SVM分類演算法針對的是線性可分資料集。

線性可分資料集:可以被線性超平面完全正確分類的資料集。

在這裡插入圖片描述

線性不可分資料集:不可以被線性超平面完全正確分類的資料集。

在這裡插入圖片描述

問題1:二分類線性可分的訓練資料集如何分類?

回答:尋找一個線性分離超平面將樣本點分開。

在這裡插入圖片描述
問題2:當訓練資料集線性可分時,有無窮個分離超平面可將兩類樣本正確分開,應該以什麼原則確定最 優超平面呢?

在這裡插入圖片描述
回答:希望分離超平面離兩類樣本儘可能遠,等價於離兩類的最近點儘可能遠,這稱為最大間隔(margin)原則

在這裡插入圖片描述

問題3:為什麼要離兩個類的最近點儘量遠?

回答:對未知新樣本的分類預測有很好的泛化能力。

在這裡插入圖片描述

以上的文字表述過於籠統,下面用數學來嚴謹表達。

線性SVM的優化問題

資料集

假定訓練資料集為
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(\mathbf{x}_1,y_1), (\mathbf{x}_2,y_2), \cdots, (\mathbf{x}_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)}
其中, x i = [ x i 0 , x i 1 , ⋯   , x i m ] T , i = 1 , 2 , ⋯   , N \mathbf{x}_i=[x_{i0},x_{i1},\cdots,x_{im}]^T, \quad i=1,2,\cdots,N xi=[xi0,xi1,,xim]T,i=1,2,,N,是m維特徵向量; y i ∈ { 1 , − 1 } , i = 1 , 2 , ⋯   , N y_i \in \{1,-1\}, \quad i=1,2,\cdots,N yi{1,1},i=1,2,,N,是對應特徵向量的標籤, y i = 1 y_i=1 yi=1 x i \mathbf{x}_i xi為正例, y i = − 1 y_i=-1 yi=1 x i \mathbf{x}_i xi為負例。

線性超平面

線性超平面的數學表示式為
w T x + b = 0 \mathbf{w}^T \mathbf{x}+b=0 wTx+b=0
其中, w = [ w 1 , w 2 , ⋯   , w m ] T \mathbf{w}=[w_1,w_2,\cdots,w_m]^T w=[w1,w2,,wm]T是超引數, x \mathbf{x} x是樣本特徵向量, b b b為截距。

分類決策函式

F ( x ) = w T x + b F(\mathbf{x})=\mathbf{w}^T \mathbf{x}+b F(x)=wTx+b F ( x ) F(\mathbf{x}) F(x)可以作為二分類的判別器。

假定落入 F ( x ) > 0 F(\mathbf{x}) \gt 0 F(x)>0區域為正例,落入 F ( x ) < 0 F(\mathbf{x}) \lt 0 F(x)<0區域為負例,可以通過 F ( x ) F(\mathbf{x}) F(x)符號來分類。

上面的想法表示為一個分類決策函式
f ( x ) = sgn ( F ( x ) ) = sgn ( w T x + b ) f(\mathbf{x})=\text{sgn}(F(\mathbf{x}))=\text{sgn}(\mathbf{w}^T \mathbf{x}+b) f(x)=sgn(F(x))=sgn(wTx+b)

間隔

在這裡插入圖片描述
x − x_- x w T x + b = − 1 \mathbf{w}^T \mathbf{x} + b = -1 wTx+b=1上的一個樣本點, w T x + b = − 1 \mathbf{w}^T \mathbf{x} + b = -1 wTx+b=1以點 x − x_- x為垂足作一條垂直線,與 w T x + b = 1 \mathbf{w}^T \mathbf{x} + b = 1 wTx+b=1相交於 x + x_+ x+,設定 x + x_+ x+ x − x_- x之間的距離為 λ \lambda λ x + x_+ x+ x − x_- x的關係可以表示為
x + = x − + λ w ∣ ∣ w ∣ ∣ 2 x_+=x_-+\lambda \frac{\mathbf{w}}{||\mathbf{w}||_2} x+=x+λw2w
其中, ∣ ∣ w ∣ ∣ 2 = w 0 2 + w 1 2 + ⋯ + w n 2 ||\mathbf{w}||_2=\sqrt{w_0^2+w_1^2+\cdots+w_n^2} w2=w02+w12++wn2 ,為 w \mathbf{w} w的L2範數。

λ \lambda λ就是要求的間隔,具體的求解方式如下:

{ w T x + + b = 1 w T x − + b = − 1 ⇒ w T ( x + − x − ) = 2 ⇒ w T λ w ∣ ∣ w ∣ ∣ 2 = 2 ⇒ λ = 2 ∣ ∣ w ∣ ∣ 2 \begin{aligned} &\left\{ \begin{aligned} \mathbf{w}^T \mathbf{x}_+ + b & = 1 \\ \mathbf{w}^T \mathbf{x}_- + b & = -1 \end{aligned} \right. \\ \Rightarrow& \mathbf{w}^T (\mathbf{x}_+ - \mathbf{x}_-)=2 \\ \Rightarrow& \frac{\mathbf{w}^T \lambda \mathbf{w}}{||\mathbf{w}||_2} = 2 \\ \Rightarrow& \lambda = \frac{2}{||\mathbf{w}||_2} \end{aligned} {wTx++bwTx+b=1=1wT(x+x)=2w2wTλw=2λ=w22

這裡 w T x + + b = 1 \mathbf{w}^T \mathbf{x}_+ + b = 1 wTx++b=1 w T x − + b = − 1 \mathbf{w}^T \mathbf{x}_- + b = -1 wTx+b=1一個取+1一個取-1只是為了方便,其實可以取其他非零常數,不會對後續優化問題造成任何影響。

優化問題的目標函式和約束條件

根據最大間隔原則,我們希望在保證樣本分類正確的前提下間隔儘可能大。

  • 使間隔儘可能大

    用數學公式表示就是
    max ⁡ 2 ∣ ∣ w ∣ ∣ 2 \max \frac{2}{||\mathbf{w}||_2} maxw22
    等效於
    min ⁡ 1 2 ∣ ∣ w ∣ ∣ 2 2 \min \frac{1}{2}||\mathbf{w}||_2^2 min21w22
    ∣ ∣ w ∣ ∣ 2 ||\mathbf{w}||_2 w2加平方不影響最優值的結果,而且 ∣ ∣ w ∣ ∣ 2 2 ||\mathbf{w}||_2^2 w22是凸函式,後續可以藉助凸優化理論的數學工具求解最優引數。 1 2 \frac{1}{2} 21只是為了後續求導時能消去2才保留的。

  • 如何確定樣本分類正確?

    • ( x , y ) (\mathbf{x},y) (x,y)是正例(即 y = 1 y=1 y=1)

      根據之前間隔數學表示式的推導過程,正例必須滿足 w T x + b ≥ 1 \mathbf{w}^T \mathbf{x} + b \ge 1 wTx+b1,即在 w T x + b = 1 \mathbf{w}^T \mathbf{x} + b = 1 wTx+b=1正法線方向的一側。

    • ( x , y ) (\mathbf{x},y) (x,y)是負例(即 y = − 1 y=-1 y=1)

      同理有 w T x + b ≤ − 1 \mathbf{w}^T \mathbf{x} + b \le -1 wTx+b1

    上面兩種情況可以合起來表示為
    y ( w T x + b ) ≥ 1 y(\mathbf{w}^T \mathbf{x} + b) \ge 1 y(wTx+b)1

綜上,分類問題就轉化為一個約束最優化問題:
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 2 s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , N \min_{\mathbf{w},b} \frac{1}{2}||\mathbf{w}||_2^2 \\ s.t. \quad y_i(\mathbf{w}^T\mathbf{x}_i+b) \ge 1, \quad i=1, 2,\cdots,N w,bmin21w22s.t.yi(wTxi+b)1,i=1,2,,N
這是一個二次規劃問題(目標函式為二次函式,約束為線性約束)。

線性SVM優化問題的求解

採用拉格朗日乘子法,目標函式等效為
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 2 − ∑ i = 1 N α i [ y i ( w T x i + b ) − 1 ] L(\mathbf{w}, b, \boldsymbol{\alpha}) = \frac{1}{2}||\mathbf{w}||_2^2 - \sum_{i=1}^N \alpha_i [y_i(\mathbf{w}^T\mathbf{x}_i+b) - 1] L(w,b,α)=21w22i=1Nαi[yi(wTxi+b)1]

其中 α i ≥ 0 , i = 1 , 2 , ⋯   , N \alpha_i \ge 0, \quad i=1, 2,\cdots,N αi0,i=1,2,,N

為何可以通過拉格朗日乘子法將約束優化問題等效到無約束優化問題?

優化問題變為
min ⁡ w , b max ⁡ α L ( w , b , α ) s . t . α i ≥ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} &\min_{\mathbf{w}, b} \max_{\boldsymbol{\alpha}} L(\mathbf{w}, b, \boldsymbol{\alpha}) \\ s.t. \quad &\alpha_i \ge 0, \quad i=1, 2,\cdots,N \end{aligned} s.t.w,bminαmaxL(w,b,α)αi0,i=1,2,,N
優化函式滿足KKT條件,優化問題可以轉化為等價的對偶問題

max ⁡ α min ⁡ w , b L ( w , b , α ) s . t . α i ≥ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} &\max_{\boldsymbol{\alpha}} \min_{\mathbf{w},b} L(\mathbf{w}, b, \boldsymbol{\alpha}) \\ s.t. \quad &\alpha_i \ge 0, \quad i=1, 2,\cdots,N \end{aligned} s.t.αmaxw,bminL(w,b,α)αi0,i=1,2,,N

先求 L ( w , b , α ) L(\mathbf{w},b,\alpha) L(w,b,α)取極小值時的引數 ( w , b ) (\mathbf{w},b) (w,b)
{ ∂ L ∂ w = 0 ⇒ w = ∑ i = 1 N α i y i x i ∂ L ∂ b = 0 ⇒ ∑ i = 1 N α i y i = 0 \left\{ \begin{aligned} &\frac{\partial L}{\partial \mathbf{w}} = 0 \Rightarrow \mathbf{w} = \sum_{i=1}^N\alpha_i y_i \mathbf{x}_i \\ &\frac{\partial L}{\partial b} = 0 \Rightarrow \sum_{i=1}^N \alpha_i y_i = 0 \end{aligned} \right. wL=0w=i=1NαiyixibL=0i=1Nαiyi=0
上面求出了 w \mathbf{w} w α \boldsymbol{\alpha} α表示的結果,代入後續目標函式,求極大值得到 α \boldsymbol{\alpha} α就能知道最優的 w ∗ \mathbf{w}^* w。對於 b b b,沒有相應的求解式,求解的方法會在後面講解。

定義
ψ ( α ) = min ⁡ w , b L ( w , b , α ) \psi(\boldsymbol{\alpha}) = \min_{\mathbf{w},b} L(\mathbf{w},b,\boldsymbol{\alpha}) ψ(α)=w,bminL(w,b,α)
L ( w , b , α ) L(\mathbf{w},b,\boldsymbol{\alpha}) L(w,b,α)代入
{ w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 \left\{ \begin{aligned} &\mathbf{w} = \sum_{i=1}^N\alpha_i y_i \mathbf{x}_i \\ &\sum_{i=1}^N \alpha_i y_i = 0 \end{aligned} \right. w=i=1Nαiyixii=1Nαiyi=0

ψ ( α ) = 1 2 ∣ ∣ w ∣ ∣ 2 2 − ∑ i = 1 N α i [ y i ( w T x i + b ) − 1 ] = 1 2 w T w − ∑ i = 1 N α i y i w T x i − ∑ i = 1 N α i y i b + ∑ i = 1 N α i = 1 2 w T ∑ i = 1 N α i y i x i − w T ∑ i = 1 N α i y i x i − b ∑ i = 1 N α i y i + ∑ i = 1 N α i = − 1 2 w T ∑ i = 1 N α i y i x i + ∑ i = 1 N α i = − 1 2 ( ∑ j = 1 N α j y j x j ) T ∑ i = 1 N α i y i x i + ∑ i = 1 N α i = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x j T x i = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j \begin{aligned} \psi(\boldsymbol{\alpha}) &= \frac{1}{2} || \mathbf{w}||_2^2 - \sum_{i=1}^N \alpha_i [y_i(\mathbf{w}^T\mathbf{x}_i+b) - 1] \\ &= \frac{1}{2} \mathbf{w}^T \mathbf{w} - \sum_{i=1}^N \alpha_i y_i\mathbf{w}^T\mathbf{x}_i - \sum_{i=1}^N \alpha_i y_i b + \sum_{i=1}^N \alpha_i \\ &= \frac{1}{2} \mathbf{w}^T \sum_{i=1}^N \alpha_i y_i \mathbf{x}_i - \mathbf{w}^T\sum_{i=1}^N \alpha_i y_i\mathbf{x}_i - b\sum_{i=1}^N \alpha_i y_i + \sum_{i=1}^N \alpha_i \\ &= -\frac{1}{2} \mathbf{w}^T \sum_{i=1}^N \alpha_i y_i \mathbf{x}_i + \sum_{i=1}^N \alpha_i \\ &= -\frac{1}{2} (\sum_{j=1}^N \alpha_j y_j \mathbf{x}_j)^T \sum_{i=1}^N \alpha_i y_i \mathbf{x}_i + \sum_{i=1}^N \alpha_i \\ &= \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 \mathbf{x}_j^T \mathbf{x}_i \\ &= \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 \mathbf{x}_i^T \mathbf{x}_j \end{aligned} ψ(α)=21w22i=1Nαi[yi(wTxi+b)1]=21wTwi=1NαiyiwTxii=1Nαiyib+i=1Nαi=21wTi=1NαiyixiwTi=1Nαiyixibi=1Nαiyi+i=1Nαi=21wTi=1Nαiyixi+i=1Nαi=21(j=1Nαjyjxj)Ti=1Nαiyixi+i=1Nαi=i=1Nαi21i=1Nj=1NαiαjyiyjxjTxi=i=1Nαi21i=1Nj=1NαiαjyiyjxiTxj
那麼優化問題變成 ψ ( α ) \psi(\boldsymbol{\alpha}) ψ(α)的極大化問題
max ⁡ α ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j s . t . ∑ i = 1 N α i y i = 0 α i ≥ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \max_{\boldsymbol{\alpha}} \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 \mathbf{x}_i^T \mathbf{x}_j \\ s.t. \quad\quad\quad &\sum_{i=1}^N \alpha_i y_i = 0 \\ \alpha_i \ge& 0, \quad i=1, 2,\cdots,N \end{aligned} αmaxi=1Nαis.t.αi21i=1Nj=1NαiαjyiyjxiTxji=1Nαiyi=00,i=1,2,,N
去掉負號可以得到等價的極小化問題
min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i 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_{\boldsymbol{\alpha}} \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N &\alpha_i \alpha_j y_i y_j \mathbf{x}_i^T \mathbf{x}_j - \sum_{i=1}^N \alpha_i \\ s.t. \quad\quad\quad &\sum_{i=1}^N \alpha_i y_i = 0 \\ \alpha_i \ge& 0, \quad i=1, 2,\cdots,N \end{aligned} αmin21i=1Nj=1Ns.t.αiαiαjyiyjxiTxji=1Nαii=1Nαiyi=00,i=1,2,,N
優化問題的最優引數 α ∗ \boldsymbol{\alpha}^* α一般用SMO演算法求解,這個演算法內容較複雜,這裡不做講解。

線性超平面的求解式

現在已經通過SMO演算法得到最優引數 α ∗ \boldsymbol{\alpha}^* α,那麼對應的最優 w ∗ \mathbf{w}^* w
w ∗ = ∑ i = 1 N α i ∗ y i x i \mathbf{w}^* = \sum_{i=1}^N\alpha_i^* y_i \mathbf{x}_i w=i=1Nαiyixi
對於引數 b b b,優化過程中沒有相應的求解式,但對間隔邊界上的樣本點,都符合
y ( w T x + b ) = 1 y (\mathbf{w}^T \mathbf{x} + b) = 1 y(wTx+b)=1

在這裡插入圖片描述
所以只要找到任一支援向量 ( x k , y k ) (\mathbf{x}_k, y_k) (xk,yk),並代入 w ∗ \mathbf{w}^* w,有
b ∗ = y k − 1 − w ∗ T x k = y k − w ∗ T x k b^* = y_k^{-1} - {\mathbf{w}^*}^T \mathbf{x}_k = y_k - {\mathbf{w}^*}^T \mathbf{x}_k b=yk1wTxk=ykwTxk

由於 y k ∈ { 1 , − 1 } y_k \in \{1,-1\} yk{1,1},所以 y k − 1 = y k y_k^{-1} = y_k yk1=yk

確定支援向量的方法

如何確定支援向量?

我們現在手上已知的資訊包括:

  • 最優引數 α ∗ \boldsymbol{\alpha}^* α

  • KKT條件(部分):
    α i [ y i ( w T x i + b ) − 1 ] = 0 , i = 1 , 2 , ⋯   , N y i ( w T x i + b ) − 1 ≥ 0 , i = 1 , 2 , ⋯   , N α i ≥ 0 , i = 1 , 2 , ⋯   , N \begin{aligned} \alpha_i [y_i (\mathbf{w}^T \mathbf{x}_i + b) - 1] = 0,& \quad i=1,2,\cdots,N \\ y_i (\mathbf{w}^T \mathbf{x}_i + b) - 1 \ge 0,& \quad i=1,2,\cdots,N \\ \alpha_i \ge 0,& \quad i=1,2,\cdots,N \end{aligned} αi[yi(wTxi+b)1]=0,yi(wTxi+b)10,αi0,i=1,2,,Ni=1,2,,Ni=1,2,,N

如果 α i > 0 \alpha_i \gt 0 αi>0,說明 y i ( w T x i + b ) = 1 y_i (\mathbf{w}^T \mathbf{x}_i + b) = 1 yi(wTxi+b)=1 ( x i , y i ) (\mathbf{x}_i,y_i) (xi,yi)在最大間隔介面上,是支援向量

如果 α i = 0 \alpha_i = 0 αi=0,說明 y i ( w T x i + b ) ≥ 1 y_i (\mathbf{w}^T \mathbf{x}_i + b) \ge 1 yi(wTxi+b)1 ( x i , y i ) (\mathbf{x}_i,y_i) (xi,yi)在最大間隔介面上,或者在最大間隔外且被正確分類,它不是支援向量。

所以,可以通過 α i \alpha_i αi是否大於0來判斷樣本點是否為支援向量機。

疑問:當 α i = 0 \alpha_i = 0 αi=0時, ( x i , y i ) (\mathbf{x}_i,y_i) (xi,yi)也有可能在最大間隔介面上,為什麼就認為它不是支援向量?

支援向量是決定分離超平面 w T x + b = 0 \mathbf{w}^T \mathbf{x} + b=0 wTx+b=0的樣本點,根據 w = ∑ i = 1 N α i y i x i \mathbf{w} = \sum_{i=1}^N\alpha_i y_i \mathbf{x}_i w=i=1Nαiyixi,如果 α i = 0 \alpha_i = 0 αi=0,那麼樣本點 ( x i , y i ) (\mathbf{x}_i,y_i) (xi,yi)對決定 w \mathbf{w} w沒有任何影響,所以認為它不是支援向量。

線性SVM的演算法過程

輸入:線性可分的訓練資料集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(\mathbf{x}_1,y_1), (\mathbf{x}_2,y_2), \cdots, (\mathbf{x}_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)}

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

演算法步驟:

  1. 構造約束優化問題
    min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i 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_{\boldsymbol{\alpha}} \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N &\alpha_i \alpha_j y_i y_j \mathbf{x}_i^T \mathbf{x}_j - \sum_{i=1}^N \alpha_i \\ s.t. \quad\quad\quad &\sum_{i=1}^N \alpha_i y_i = 0 \\ \alpha_i \ge& 0, \quad i=1, 2,\cdots,N \end{aligned} αmin21i=1Nj=1Ns.t.αiαiαjyiyjxiTxji=1Nαii=1Nαiyi=00,i=1,2,,N

  2. 用SMO演算法求出最優引數 α ∗ \boldsymbol{\alpha}^* α

  3. 計算 w ∗ = ∑ i = 1 N α i ∗ y i x i \mathbf{w}^* = \sum_{i=1}^N\alpha_i^* y_i \mathbf{x}_i w=i=1Nαiyixi

  4. 尋找一個滿足 α k ∗ > 0 \alpha_k^* \gt 0 αk>0的樣本點 ( x k , y k ) (\mathbf{x}_k,y_k) (xk,yk),計算 b ∗ = y k − w ∗ T x k b^* = y_k - {\mathbf{w}^*}^T \mathbf{x}_k b=ykwTxk

  5. 得到分離超平面 w ∗ T x + b ∗ = 0 {\mathbf{w}^*}^T \mathbf{x} + b^*=0 wTx+b=0和分類決策函式 f ( x ) = sgn ( w ∗ T x + b ∗ ) f(x) = \text{sgn}({\mathbf{w}^*}^T \mathbf{x} + b^*) f(x)=sgn(wTx+b)

相關文章