支援向量機4—序列最小最優化演算法
阿新 • • 發佈:2019-01-05
支援向量機的學習問題可以形式化為求解凸二次規劃問題。這樣的凸二次規劃問題具有全域性最優解,並且有許多最優化演算法可以用於這一問題的求解。但是當訓練樣本容量很大時,這些演算法往往變得非常低效,以致無法使用。所以學習一種快速實現演算法——序列最小最優化(sequential minimal optimization, SMO)演算法,這個演算法1988年由Platt提出。
SMO演算法是一種啟發式演算法,其基本思路是:如果所有變數的解都滿足此最優化問題的KKT條件。那麼這個最優化問題的解就得到了。因為KKT條件是該最優化問題的充分必要條件。否則,選擇兩個變數,固定其他變數,針對這兩個變數構建一個二次規劃問題。
注意,子問題的兩個變數中只有一個是自由變數,假設a1,a2為兩個變數,a3,a4,...,aN固定,那麼由等式約束(7.99)可知,如果a2確定,那麼a1也隨之確定,所以子問題中同時更新兩個變數。
整個SMO演算法包括兩個部分:求解兩個變數二次規劃的解析方法和選擇變數的啟發式方法。
1、兩個變數二次規劃的解析方法
2、變數的選擇方法
SMO稱選擇第1個變數的過程為外層迴圈。外層迴圈在訓練樣本中選取違反KKT條件最嚴重的樣本點,並將其對應的變數作為第1個變數。SMO稱選擇第2個變數的過程為內層迴圈。假設在外層迴圈中已經找到第1個變數α1,現在要在內層迴圈中找第2個變數α2。第2個變數選擇的標準是希望能使α2有足夠大的變化。此外,還要計算閾值b和差值Ei。
3、SMO演算法
參考:《統計學習方法》李航