斯坦福《機器學習》Lesson8感想-------1、SMO

從上一篇文章可知支持向量(supervector)就是指的離分隔超平面最近的那些點。整個SVM最需要的步驟是訓練分類器,得到alpha,從而得到整個用於數據分類的分隔超平面。支持向量機(super vector machine,SVM)的一般應用流程如下:

(1)      收集數據:可以使用任意方法

(2)      準備數據:需要數值型數據

(3)      分析數據:有助於可視化分隔超平面

(4)      訓練算法:SVM的大部分時間源自訓練,該過程主要實現兩個參數的調優

(5)      測試算法:十分簡單的計算過程就可以實現

(6)      使用算法:幾乎所有分類問題都可以使用SVM。SVM本身就是一個二類分類器,對多類問題應用SVM需要對代碼做一些修改

爲了減少SVM的訓練時間,提高效率,引入了序列最小化(Sequential Minimal Optimizaton,SMO)算法。SMO算法是將大優化問題分解爲多個小優化問題來求解的。這些小優化問題往往很容易求解,並且對它們進行順序求解的結果與將它們作爲整體求解的結果一致。

SMO的工作原理是基於Coordinate ascent算法的。

1、  Coordinate ascent

假設優化問題爲:


我們依次選擇其中一個參數,對這個參數進行優化,會使得W函數增長最快。

用圖1可以表示整個過程。


圖1

 

2、  SMO

SMO算法就是在每次循環中選擇兩個參數進行處理,比Coordinate Ascent裏多一個參數。

從上一篇文章可知優化問題表示爲:


從(19)式中可知



這樣子可以看出,選擇出一個參數,不改變其他的參數,這個參數也不會隨之改變,因此也就達不到優化的目的。所以SMO算法就是選擇兩個參數來進行優化。


將結果用參數代替得


因此可以用圖2來表達(20)式


圖2

從圖2中可以看出,,從(20)式中,可以推導出

因此可知


將作爲常數,其餘兩個參數的優化可表示爲


再根據(20)式可以得到,從而依據上一篇文章可以得到分隔超平面用於分類。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章