理論基礎:
機器學習有三類基本的問題,即模式識別、函數逼近和概率密度估計.
?
SVM有著嚴格的理論基礎,建立了一套較好的有限訓練樣本下機器學習的理論框架和通用方法。他與機器學習是密切相關的,很多理論甚至解決了機器學習領域的其他的問題,所以學習SVM和機器學習是相輔相成的,兩者可以互相促進,有助于機器學習理論本質的理解。
?
維理論:對一個指示函數集,如果存在個樣本能夠被函數集中的函數按所有可能的種形式分開,則稱函數集能夠把個樣本打散;函數集的維就是它能打散的最大樣本數目。維反映了函數集的學習能力,維越太則學習機器越復雜(容量越太)。
?
期望風險:其公式為,其中為損失函數,為概率分布,期望風險的大小可以直觀的理解為,當我們用進行預測時,“平均”的損失程度,或“平均”犯錯誤的程度。
?
經驗風險最小化(ERM準則)歸納原則:但是,只有樣本卻無法計算期望風險,因此,傳統的學習方法用樣本定義經驗風險作為對期望風險的估計,并設計學習算法使之最小化。即所謂的經驗風險最小化(ERM準則)歸納原則。經驗風險是用損失函數來計算的。對于模式識別問題的損失函數來說,經驗風險就是訓練樣本錯誤率;對于函數逼近問題的損失函數來說,就是平方訓練誤差;而對于概率密度估計問題的損失函數來說,ERM準則就等價于最大似然法。但是,經驗風險最小不一定意味著期望風險最小。其實,只有樣本數目趨近于無窮大時,經驗風險才有可能趨近于期望風險。但是很多問題中樣本數目離無窮大很遠,那么在有限樣本下ERM準則就不一定能使真實風險較小。ERM準則不成功的一個例子就是神經網絡和決策樹的過學習問題(某些情況下,訓練誤差過小反而導致推廣能力下降,或者說是訓練誤差過小導致了預測錯誤率的增加,即真實風險的增加)。
?
結構風險最小化理論(SRM):所以,在有限樣本情況下,僅僅用ERM來近似期望風險是行不通的。統計學習理論給出了期望風險與經驗風險之間關系:
?
其中 為置信區間,是VC維的增函數,也是樣本數的減函數。右端稱為結構風險,它是期望風險的一個上界。經驗風險的最小依賴較大的 F (樣本數較多的函數集)中某個 f 的選擇,但是 F 較大,則VC維較大,就導致置信區間變大,所以要想使期望風險最小,必須選擇合適的和來使不等式右邊的結構風險最小,這就是結構風險最小化歸納原則。
?
實現SRM的思路之一就是設計函數集的某種結構使每個子集中都能取得最小的經驗風險(如使訓練誤差為0),然后只需選擇適當的子集使置信范圍最小,則這個子集中使經驗風險最小的函數就是最優函數。SVM方法實際上就是這種思想的具體實現。
主要思想:
SVM方法是從線性可分情況下的最優分類面提出的,它是實現統計學習理論思想的方法。所謂最優分類面就是要求分類面不但能將兩類無錯誤地分開,而且要使兩類的分類間隔最大。前者是保證經驗風險最小(如使訓練誤差為0),而使分類間隔最大實際上就是使推廣性的界中的置信范圍最小,從而使真實風險最小。
?
構造這個最優分類面的方法有2個:平分最近點法和最大間隔法。這兩個方法求解得到的是同一個超平面,這個方法就稱為“線性可分支持向量分類機”。其實,這個分類機是將最大間隔法求解最優分類面的最優化問題轉化為其對偶問題,從而通過求解相對簡單的對偶問題來求解原分類問題的算法。隨后引入松弛變量和懲罰因子來解決非線性分類問題,并且允許一定的分類錯誤,最終得到非線性軟間隔的標準的 C-支持向量機(C-SVC)。其中的巧妙之處就在于把一個復雜的最優化問題的求解簡化為對原有樣本數據的內積運算。我們要做的就是選擇適當的核函數及其參數、懲罰因子就可以了。
?
對于線性不可分情況,則通過核函數,把輸入映射到另一個空間中,在新的空間中使用線性支持向量機。
?
核函數:
?
核方法在數學中是個古老的命題.通過一個特征映射可以將輸入空間(低維的)中的線性不可分數據映射成高維特征空間中(再生核Hilbert空間)中的線性可分數據.這樣就可以在特征空間使用SVM方法了.因為使用svm方法得到的學習機器只涉及特征空間中的內積,而內積又可以通過某個核函數(所謂Mercer核)來表示,因此我們可以利用核函數來表示最終的學習機器.這就是所謂的核方法.核函數本質上是對應于高維空間中的內積的,從而與生成高維空間的特征映射一一對應.核方法正是借用這一對應關系隱性的使用了非線性特征映射(當然也可以是線性的).這一方法即使得我們能夠利用高維空間讓數據變得易于處理----不可分的變成可分的,同時又回避了高維空間帶來的維數災難-----不用顯式表達特征映射.
核技巧把高維空間中兩個點的內積計算,用原來空間中的兩個模式的簡單函數即核函數的求值來代替。核技巧不僅應用于支持向量機,還可以應用于那些含有內積計算的非線性算法。例如函數逼近,主成分分析等等。
?
在支持向量機中使用的核函數主要有四類:
線性核函數:
多項式核函數:
RBF核函數:
Sigmoid核函數:
其中,和均為核參數。
究竟用哪一種核函數取決對數據處理的要求,不過建議一般都是使用RBF核函數。因為RBF核函數具有良好的性態,在實際問題中表現出了良好的性能。
軟件工具:
支持向量機的軟件工具主要有LIBSVM和SVMLight,其中我詳細了解了LIBSVM。LIBSVM 是一個開源的軟件包,是臺灣大學林智仁博士等開發的,可以解決上面所提到的三類機器學習基本問題,提供了線性、多項式、徑向基和S形函數四種常用的核函數供選擇。
?
LIBSVM 使用的一般步驟是:
1) 按照LIBSVM軟件包所要求的格式準備數據集;
2) 對數據進行簡單的縮放操作;
3) 考慮選用RBF 核函數;
4) 采用交叉驗證選擇最佳參數C與g ;
5) 采用最佳參數C與g 對整個訓練集進行訓練獲取支持向量機模型;
6) 利用獲取的模型進行測試與預測。
應用領域
SVM可以用于模式識別、函數逼近和概率密度估計.
?
總的來說,SVM能夠較好的解決小樣本,非線性,高維數識別和局部極小點等問題。
?
詳細說來,可以應用于如下領域:人臉檢測,故障診斷,分類,回歸,聚類,時間序列預測,系統辨識,金融工程,生物醫藥信號處理,數據挖掘,生物信息,文本挖掘,自適應信號處理,剪接位點識別,基于支持向量機的數據庫學習算法,手寫體相似字識別,支持向量機函數擬合在分形插值中的應用,基于支持向量機的慣導初始對準系統,巖爆預測的支持向量機,缺陷識別,計算機鍵盤用戶身份驗證,視頻字幕自動定位于提取,說話人的確認,等等。
?
研究方向:
雖然SVM 方法在理論上具有很突出的優勢, 但與其理論研究相比,應用研究尚相對比較滯后, 所以現在的主要的研究方向就是SVM的應用。包括SVM在新領域的應用以及跟其他方法的結合。例如SVM決策樹可以用于多層分類。
所以,歸納如下
核函數的構造和參數的選擇;支持向量機從兩類問題向多類問題的推廣;更多的應用領域的推廣;與目前其它機器學習方法的融合;與數據預處理(樣本的重要度,屬性的重要度,特征選擇等)方面方法的結合,將數據中脫離領域知識的信息,即數據本身的性質融入支持向量機的算法中從而產生新的算法;支持向量機訓練算法的探索。
閱讀材料
1.數據挖掘中的新方法-支持向量機 鄧乃揚 田英杰著
2.支持向量機導論
3. A practical guide to SVM classification.pdf
4. LibSVM-2.6 程序代碼注釋.pdf
5. 一種新的SVm決策樹.pdf
6. 2000年 26卷 1期-關于統計學習理論與向量機.pdf
7 支持向量機的研究現狀與進展.pdf
8. 統計學習理論的本質