斯坦福《機器學習》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算法是將大優化問題分解為多個小優化問題來求解的。
這些小優化問題往往非常easy求解。而且對它們進行順序求解的結果與將它們作為總體求解的結果一致。
SMO的工作原理是基於Coordinate ascent算法的。
1、 Coordinate ascent
如果優化問題為:
我們依次選擇當中一個參數。對這個參數進行優化,會使得W函數增長最快。
用圖1能夠表示整個過程。
圖1
2、 SMO
SMO算法就是在每次循環中選擇兩個參數進行處理。比Coordinate Ascent裏多一個參數。
從上一篇文章可知優化問題表示為:
從(19)式中可知
這樣子能夠看出。選擇出一個參數。不改變其它的參數,這個參數也不會隨之改變。因此也就達不到優化的目的。
所以SMO算法就是選擇兩個參數來進行優化。
將結果用參數取代得
因此能夠用圖2來表達(20)式
圖2
從圖2中能夠看出。。從(20)式中,能夠推導出
因此可知
將作為常數,其余兩個參數的優化可表示為
再根據(20)式能夠得到,從而根據上一篇文章能夠得到分隔超平面用於分類。
斯坦福《機器學習》Lesson8感想-------1、SMO