SVM--基本思想

本篇是SVM(support vector machine)系列的第一篇,主要講述SVM的基本思想。

本文將圍繞以下幾個問題進行展開:

1. SVM的基本思想是什麼、其優化目標怎樣推演而出的

2. 軟間隔SVM

3. 什麼是支持向量(support vector)

SVM的基本思想

SVM本質上來說是一個線性二分類器f(x) = W^T X + b(可以先對輸入X進行非線性變換再送入SVM從而實現非線性分類)

對於一個分類器來說,最希望得到的便是該分類器能正確分類所有的樣本(設定正樣本y=1,負樣本y=-1),即

y_i f(X_i) = y_i (W^T X_i + b) > 0 &,& \forall i

也即希望找到一個由(W, b)確定的超平面W^T X + b = 0,使得所有正樣本都位於該平面的上方(>0)、所有負樣本都位於該平面的下方(<0),假設這樣的超平面存在的話,那麼往往會有多個,如下圖所示,

既然這樣的超平面有多個,那麼哪個纔是最好的呢?從上圖中,可以很直觀的看出藍色超平面比紅色超平面好,因爲其把正負樣本分隔得最好,也就是所有樣本到其的最小距離比紅色超平面的大;也即是,希望找個一個所有樣本到其的最小距離最大的超平面,根據點到超平面的距離公式d = |W^T X_i + b|/||W||,不明白的可參考文章SVM基礎--超平面

\max_{W,b} \min_{i}{|W^T X_i + b|/||W||}\\ s.t. \;\;\; y_i (W^T X_i + b) > 0 &,& \forall i (1)

該問題不好求解,我們再重寫下約束,y_i (W^T X_i + b) \geq k > 0 &,& \forall i, k\rightarrow 0,即

y_i ((W/k)^T X_i +( b/k)) \geq 1 > 0 &,& \forall i, k\rightarrow 0,也就是說,我們希望找個一個超平面(W/k)^T X+( b/k)) = 0 = \tilde{W}^T X + \tilde{b}

使得\min_{i}{|(W/k)^T X_i + b/k|} = 1,也即

\min_{i}{|(W/k)^T X_i + b/k|/||W/k||}=1/||W/k||=1/||\tilde{W}}||

因此即有\max_{\tilde{W},\tilde{b}}1/||\tilde{W}||\\ s.t. \;\;\; y_i (\tilde{W}^T X_i + \tilde{b}) \geq 1 &,& \forall i (2),

因爲(\tilde{W}, \tilde{b})表示的超平面與(W, b)表示的超平面是同一個的,\tilde{W}^T X + \tilde{b} = (W/k)^T X+( b/k)) = 0 = W^T + b,所以公式(1)與公式(2)是等價的,

最終即有SVM的優化目標:

\min_{W,b}||W||^2/2\\ s.t. \;\;\; y_i (W^T X_i + b) \geq 1 &,& \forall i

軟間隔SVM

上述的SVM的約束條件做了這樣一個假設:存在一個超平面,能分隔所有正負樣本。但實際任務中,基本不存在能完全分隔所有正負樣本的超平面;即使存在,這樣的超平面也不一定最佳。

如下圖所示,雖然存在能完全分隔所有正負樣本的超平面(紅線所示),但顯然該超平面沒有藍線所示的超平面好(能容忍更多的噪聲)

爲此,需要放鬆下約束,允許一些點出現邊界(H1、H2)的另一側,即允許一定的誤差,

通過引入鬆弛因子,使得y_i (W^T X_i + b) \geq 1-\xi_i ,\;\; \xi _i \geq 0,\;\; \forall i,同時,需要對鬆弛因子的大小進行懲罰,通過懲罰因子C來平衡尋求最大間隔和最小分類錯誤

SVM的優化目標爲:

\min_{W,b,\xi}||W||^2/2 + C \sum_i{\xi _i} \\ s.t. \;\;\; && y_i (W^T X_i + b) \geq 1-\xi_i, \forall i \\ \xi _i \geq 0 , \forall i

顯然,C越大,則分類器越不願意分類錯誤,它要按“最正確”的來,那就會得到一個過擬合的分類器;而如果C越小,那麼分類器就越“不在乎”錯誤,得到一個過於泛化的分類器,也就是欠擬合了。

支持向量

在分類邊界(H1、H2)上的向量點稱爲支持向量,即滿足y_i (W^T X_i + b) = 1

在後面SVM的優化求解中,會發現SVM的解只與這些支持向量有關,這也是支持向量機名稱的由來。

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