1. 程式人生 > >斯坦福《機器學習》Lesson8感想-------1、SMO

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

時間源 感想 它的 dsm align 求解 rac 其余 部分

從上一篇文章可知支持向量(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