SVM系列理論(十一)SMO序列最優化演算法
阿新 • • 發佈:2018-11-26
支援向量機的的學習問題可以形式化為求解凸二次規劃問題。求解凸二次規劃問題可以借用一些凸二次規劃求解工具,但這需要強大的計算能力支援。Platt提出SMO序列最小優化演算法,可以高效地計算出對偶問題中最佳的拉格朗日乘子
1. SMO 序列最小化演算法的基本思想
SVM的對偶問題可以表示為:
對應的KKT條件為:
SMO演算法是一種快速學習的演算法,其思想是:
不斷地選擇兩個兩個變數 ,將上面(1)這個二次規劃問題分解成一個只有兩個變數的二次規劃子問題,然後對二變數子問題進行解析求解,直到所有變數都滿足KKT條件為止。由於每個子問題都有解析解,計算很快,所以很高效。
重要定理:KKT條件是最優化問題的充分必要條件。
2. 選擇兩個變數的方法
上面說到SMO演算法的思想,那麼第一步應該明確怎麼選擇兩個變數 。
2.1 第一個變數的選擇
選擇第一個變數需要選擇在訓練集中違反KKT條件最嚴重的樣本點。 這很容易理解,因為我們最終的目標是讓所有的變數 滿足KKT條件,選擇違反KKT最大的作為優化物件。
一般來說,我們首先選擇違反 這個條件的 。
如果這些支援向量都滿足KKT條件,再選擇違反 和 的點。
2.2 第二個變數的選擇
為了選擇第二個變數,首先定義函式
並把預測值