SVM總結
在學習機器學習的常用算法中,在SVM上花費了大量的時間,今天寫個知識點總結吧!
SVM包括:線性可分向量機、線性支持向量機和非線性支持向量機。
- 線性可分向量機:顧名思義,構建它的條件是訓練數據線性可分,學習策略是最大間隔法。可以表示爲凸二次優化規劃問題,其原始最優化問題爲
minw,b12||w||2 s.t.yi(w.xi+b)−1⩾0 ;分離的超平面是w∗.x+b∗=0 ;分類決策函數是f(x)=sign(w∗.x+b∗=0) 。線性可分向量機的最優解存在且唯一,位於間隔邊界上的實例點爲支持向量 - 線性支持向量機:由於現實中可分的訓練數據很少,因此在線性可分向量機的基礎上增加了一個鬆弛變量
ε ,其對應的凸二次規化問題變成了minw,b12||w||2+C∑i=1εi s.t.yi(w.xi+b)⩾1−εi,εi⩾0 . 線性支持向量機的解w∗ 唯一,但b∗ 不唯一。 - 非線性支持向量機:對於輸入空間中的非線性分類問題,可以通過非線性變換將它轉化爲某個高維特徵空間中的線性分類問題,在高維特徵空間中學習線性支持向量機。由於在線性支持向量機的學習的對偶問題中,目標函數和分類決策函數都只涉及內積,所以不需要顯示地指定非線性變換,而是用核函數來替換當中的內積。核函數K(x,z)意味着存在一個從輸入空間
χ 到特徵空間H的映射Φ(x) ,對任意x,z∈χ ,有 K(x,z)=Φ(x).Φ(z) .即用核函數K(x,z)代替內積,得到的就是非線性支持向量機$ - *求解SVM中的凸二次規劃問題可以使用SMO算法,該算法主要包括兩個部分:求解兩個變量的二次規劃的解析方法和選擇變量的啓發式方法。即將原始求解問題分解成兩個變量的子問題,當解完兩個變量的最優化問題後,檢查原始問題是否得以滿足,若滿足則求得最優解,結束。否則再次選擇兩個優化變量,直至求得最優解