【機器學習】支持向量機原理與序列最小最優化算法SMO

其他機器學習系列文章見於專題:機器學習進階之路——學習筆記整理,歡迎大家關注。

1. 支持向量機

  支持向量機主要內容包含:線性可分支持向量機與硬間隔最大化、線性支持向量機與軟間隔最大化、非線性支持向量機與核函數、序列最小最優化算法、支持向量迴歸。劉建平老師的SVM系列寫的很清晰易懂,大家可以參考。這裏只把在SVM學習過程中的一些要注意的點記錄下來。

  (1)wTx+b\left| w ^ { T } x + b \right|表示點xx距離超平面的相對距離,而wTx+bw ^ { T } x + b的符號與類標記yy的符號是否一致能夠表示分類是否正確。所以可用y(wTx+b)y \left( w ^ { T } x + b \right)表示分類的正確性和確信度,這就是函數間隔的意義。

  (2)由於成倍增加wwbb,就會使函數間隔也成倍增加,因此對分離超平面的法向量ww規範化(w=1| | w | | = 1),就得到了幾何間隔。

  (3)根據拉格朗日對偶性,原始問題可以表示爲廣義極小極大問題:
minw,bmaxαi0L(w,b,α) \min _ { w , b } \max _ { \alpha _ { i } \geq 0 } L ( w , b , \alpha )
對應的對偶問題可以表示爲極大極小問題:
maxαi0minw,bL(w,b,α) \max _ { \alpha _ { i } \geq 0 }\min _ { w , b }L ( w , b , \alpha )
  可以先求優化函數對wwbb的極小值minw,bL(w,b,α)\min _ { w , b }L ( w , b , \alpha ),再求minw,bL(w,b,α)\min _ { w , b }L ( w , b , \alpha )α\alpha的極大,即對偶問題。

  這個過程與《機器學習——周志華》第六章中,將約束函數與原目標函數聯立,從而求出使原函數取得極值的各個變量的解,代入新函數,並將極小問題轉化爲極大問題,得到的對偶問題是一致的。

  (4)ww是通過求偏導得到的,而bb是通過KKT條件中,任意支持向量都滿足yj(wTxj+b)=1y _ { j } \left( w ^ { T } x _ { j } + b \right) = 1得到的。

2. 序列最小最大算法SMO

  由於《統計學習方法》中對序列最小最大算法(Sequential Minimal Optimization,SMO)描述太複雜,這一節根據《機器學習》對SMO進行簡要描述。

  SMO的基本思路是先固定αi\alpha _ { i }之外的所有參數,然後求αi\alpha _ { i }上的極值。由於存在約束i=1mαiyi=0\sum _ { i = 1 } ^ { m } \alpha _ { i } y _ { i } = 0,若固定αi\alpha _ { i }之外的所有變量,則αi\alpha _ { i }可以有其他變量導出。

  SMO每次選擇兩個變量αi\alpha _ { i }αj\alpha _ { j },並固定其他參數,這樣,在參數初始化後,SMO不斷執行如下兩個步驟直至收斂:

  (1)選取一對需要更新的變量αi\alpha _ { i }αj\alpha _ { j }
  (2)固定αi\alpha _ { i }αj\alpha _ { j }以外的參數,獲得更新後的αi\alpha _ { i }αj\alpha _ { j }

  SMO先選取違背KKT條件程度最大的變量,然後選取一個使目標函數值增長最快的變量。但由於比較各變量所對應的目標函數值增幅的複雜度過高,因此SMO採用了一個啓發式:使選取的兩邊兩變量所對應樣本之間的間隔最大。

  SMO算法之所以高效,是因爲固定其他參數後,僅優化兩個參數的過程能做到十分高效。

參考文獻:

  1. 《統計學習方法》第七章支持向量機——李航
  2. 《機器學習》第六章支持向量機——周志華
  3. 支持向量機原理(一) 線性支持向量機
  4. 支持向量機原理(二) 線性支持向量機的軟間隔最大化模型
  5. 支持向量機原理(三)線性不可分支持向量機與核函數
  6. 支持向量機原理(五)線性支持迴歸
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章