線性支持向量機(SVM)

1. 線性支持向量機(SVM)基本原理

1.1 線性SVM要解決的問題

給定訓練樣本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) , y i { 1 , + 1 } } D = \{ ( \bm{x_1}, y_1), (\bm{x_2}, y_2), ..., (\bm{x_m}, y_m), y_i \in \{ -1, +1 \} \} , 支持向量機的基本思想就是基於訓練集 D D 在樣本空間中找到一個超平面,將不一樣類別的樣本分開。可是可以將訓練樣本分開的超平面有不少,咱們應該找哪個呢?html

圖1

直觀上看,應該尋找兩類訓練樣本中「正中間」的超平面,即圖1中最粗的線。這條線可以將兩類樣本分隔開,而且對新的樣本泛化能力強,最具魯棒性。
在樣本空間中,超平面能夠用以下線性方程描述:
w T x + b = 0 (1) \bm{w}^T \bm{x} + b = 0 \tag{1} web

其中 w = ( w 1 ; w 2 ; , . . . , w d ) \bm{w} = (w_1; w_2;,...,w_d) 爲法向量,決定了超平面的方向, b b 爲位移項,決定了超平面與原點之間的距離。咱們將超平面記爲 ( w , b ) (\bm{w}, b) .
假設超平面 ( w , b ) (\bm{w}, b) 可以將訓練樣本正確分類,即對於 ( x i , y i ) D (\bm{x_i}, y_i) \in D ,若 y i = + 1 y_i = +1 ,則有 w T x i + b > 0 \bm{w}^T \bm{x}_i + b > 0 ;若 y i = 1 y_i = -1 ,則有 w T x i + b < 0 \bm{w}^T \bm{x}_i + b < 0 。經過縮放,令:
{ w T x i + b + 1 , y i = + 1 w T x i + b 1 , y i = 1 (2) \left\{ \begin{aligned} \bm{w}^T \bm{x}_i + b \geq +1, y_i = +1 \\ \bm{w}^T \bm{x}_i + b \leq -1, y_i = -1 \\ \end{aligned} \right. \tag{2}
如圖2所示,距離超平面最近的這幾個點使得式 ( 2 ) (2) 等號成立,它們被稱爲「支持向量」(support vector),兩個異類支持向量到超平面的距離之和爲:
γ = 2 w , (3) \gamma = \dfrac{2}{||\bm{w}||}, \tag{3} app

它被稱「間隔」(margin)。svg

圖2

要找到「最大間隔」(maximum margin)的超平面,也就是要找到知足式 ( 2 ) (2) 中約束參數 w \bm w b b ,使得 γ \gamma 最大,即:
max w , b 2 w s . t .   y i ( w T x i + b ) 1 ,   i = 1 , 2 , . . . , m . (4) \begin{aligned} & \max \limits_{\bm w, b} \dfrac{2}{||\bm w||} \\ & s.t. \ y_i(\bm{w}^T \bm{x}_i + b) \geq 1, \ i = 1,2,..., m. \\ \end{aligned} \tag{4} 函數

爲了方便後續的計算,咱們將式 ( 4 ) (4) 重寫爲:
min w , b 1 2 w 2 s . t .   y i ( w T x i + b ) 1 ,   i = 1 , 2 , . . . , m . (5) \begin{aligned} & \min \limits_{\bm w, b} \dfrac{1}{2} ||\bm w||^2\\ & s.t. \ y_i(\bm{w}^T \bm{x}_i + b) \geq 1, \ i = 1,2,..., m. \\ \end{aligned} \tag{5} 優化

這就是SVM的基本型。spa

1.2 對偶問題

式(5)是一個凸二次規劃(convex quadratic programming)問題,能直接用現成的優化計算包求解,可是咱們可有用更高效的辦法。對式(5)每條約束添加拉格朗日乘子 α i 0 \alpha_i \geq0 ,則該問題的拉格朗日函數能夠寫爲:
L ( w , b , α ) = 1 2 w 2 + i = 1 m α i ( 1 y i ( w T x i + b ) ) (6) L(\bm w, b, \bm \alpha) = \dfrac{1}{2} ||\bm w||^2 + \sum_{i=1}^{m} \alpha_i(1 - y_i(\bm {w}^T \bm {x}_i + b) ) \tag{6} 3d

其中, α = ( α 1 ; α 2 ; . . . ; α m ) \bm \alpha=(\alpha_1;\alpha_2;...;\alpha_m) 。令 L ( w , b , α ) L(\bm w, b, \bm \alpha) w \bm w b b 的偏導爲零可得:
w = i = 1 m α i y i x i , (7) \bm w = \sum_{i=1}^{m} \alpha_i y_i \bm {x}_i,\tag{7} orm

0 = i = 1 m α i y i , (8) 0 = \sum_{i=1}^{m} \alpha_i y_i ,\tag{8} xml

將式(7)和(8)代入式(6)中,獲得式(6)的對偶問題:
max α i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y i y i x i T x j T s . t .   i = 1 m α i y i = 0 , α i 0 ,   i = 1 , 2 , . . . , m . (9) \begin{aligned} & \max_{\bm \alpha} \sum_{i=1}^{m} \alpha_i - \dfrac{1}{2} \sum_{i=1}^{m}\sum_{j=1}^{m} \alpha_i \alpha_j y_i y_i \bm {x}_i^T \bm {x}_j^T \\ \tag{9} & s.t. \ \sum _{i=1}^{m} \alpha_i y_i = 0, \\ & \qquad \alpha_i \geq 0, \ i = 1,2,...,m.\\ \end{aligned}

求解獲得 α \bm \alpha 後,能夠求得 w \bm w b b ,最終獲得分類模型:
f ( x ) = w T x + b = i = 1 m α i y i x i T x + b . (10) \begin{aligned} f(x) & = \bm {w}^T \bm {x} + b \\ & = \sum_{i=1}^{m} \alpha_i y_i \bm {x}_i^T \bm x + b . \end{aligned} \tag{10}

上述過程須要知足KKT條件(Karush-Kuhn-Tucher),即求:
{ α i 0 ; y i f ( x i ) 1 0 ; α i ( y i f ( x i ) 1 ) 0 ; (11) \left\{ \begin{aligned} \alpha_i \geq 0; \\ y_i f(\bm {x}_i) - 1 \geq 0; \\ \alpha_i (y_i f(\bm {x}_i) - 1) \geq 0; \\ \end{aligned} \right. \tag{11}

因而,對於任意訓練樣本 ( x i , y i ) (\bm {x}_i, y_i) ,總有 α i = 0 \alpha_i = 0 y i f ( x i ) = 1 y_i f(\bm {x}_i) = 1 。若 α i = 0 \alpha_i = 0 ,則該樣本不會再式(10)中出現,也就不會對分類器有任何影響;若 α i 0 \alpha_i \geq 0 ,則必有 y i f ( x i ) = 1 y_i f(\bm {x}_i) = 1 ,所對應的樣本點位於最大間隔邊界上,是一個支持向量。所以,最終模型僅與支持向量有關。