本篇是SVM(support vector machine)系列的第一篇,主要講述SVM的基本思想。
本文將圍繞以下幾個問題進行展開:
1. SVM的基本思想是什麼、其優化目標怎樣推演而出的
2. 軟間隔SVM
3. 什麼是支持向量(support vector)
SVM的基本思想
SVM本質上來說是一個線性二分類器(可以先對輸入X進行非線性變換再送入SVM從而實現非線性分類)
對於一個分類器來說,最希望得到的便是該分類器能正確分類所有的樣本(設定正樣本y=1,負樣本y=-1),即
也即希望找到一個由確定的超平面,使得所有正樣本都位於該平面的上方(>0)、所有負樣本都位於該平面的下方(<0),假設這樣的超平面存在的話,那麼往往會有多個,如下圖所示,
既然這樣的超平面有多個,那麼哪個纔是最好的呢?從上圖中,可以很直觀的看出藍色超平面比紅色超平面好,因爲其把正負樣本分隔得最好,也就是所有樣本到其的最小距離比紅色超平面的大;也即是,希望找個一個所有樣本到其的最小距離最大的超平面,根據點到超平面的距離公式,不明白的可參考文章SVM基礎--超平面,
(1)
該問題不好求解,我們再重寫下約束,,即
,也就是說,我們希望找個一個超平面
使得,也即
因此即有 (2),
因爲表示的超平面與表示的超平面是同一個的,,所以公式(1)與公式(2)是等價的,
最終即有SVM的優化目標:
軟間隔SVM
上述的SVM的約束條件做了這樣一個假設:存在一個超平面,能分隔所有正負樣本。但實際任務中,基本不存在能完全分隔所有正負樣本的超平面;即使存在,這樣的超平面也不一定最佳。
如下圖所示,雖然存在能完全分隔所有正負樣本的超平面(紅線所示),但顯然該超平面沒有藍線所示的超平面好(能容忍更多的噪聲)
爲此,需要放鬆下約束,允許一些點出現邊界(H1、H2)的另一側,即允許一定的誤差,
通過引入鬆弛因子,使得,同時,需要對鬆弛因子的大小進行懲罰,通過懲罰因子C來平衡尋求最大間隔和最小分類錯誤
SVM的優化目標爲:
顯然,C越大,則分類器越不願意分類錯誤,它要按“最正確”的來,那就會得到一個過擬合的分類器;而如果C越小,那麼分類器就越“不在乎”錯誤,得到一個過於泛化的分類器,也就是欠擬合了。
支持向量
在分類邊界(H1、H2)上的向量點稱爲支持向量,即滿足;
在後面SVM的優化求解中,會發現SVM的解只與這些支持向量有關,這也是支持向量機名稱的由來。