1. 程式人生 > >機器學習:支援向量機SVM和人工神經網路ANN的比較

機器學習:支援向量機SVM和人工神經網路ANN的比較

在統計學習理論中發展起來的支援向量機(Support Vector Machines, SVM)方法是一種新的通用學習方法,表現出理論和實踐上的優勢。SVM在非線性分類、函式逼近、模式識別等應用中有非常好的推廣能力,擺脫了長期以來形成的從生物仿生學的角度構建學習機器的束縛。此外,基於SVM的快速迭代方法和相關的簡化演算法也得到發展。與神經網路相比,支援向量機方法具有更堅實的數學理論基礎,可以有效地解決有限樣本條件下的高維資料模型構建問題,並具有泛化能力強、收斂到全域性最優、維數不敏感等優點。目前,統計學習理論和SVM已經成為繼神經網路之後機器學習領域最熱門的研究方向之一,並有力推動了機器學習理論的發展。SVM已被初步研究使用在核天線陣列處理的波束成形,智慧天線系統的波達角估計,盲均衡器的設計;盲波束成形器設計。

SVM的歷史  

基於資料的機器學習是現代智慧技術中的重要方面, 研究從觀測資料(樣本) 出發尋找規律, 利用這些規律對未來資料或無法觀測的資料進行預測. 包括模式識別、神經網路等在內, 現有機器學習方法共同的重要理論基礎之一是統計學.傳統統計學研究的是樣本數目趨於無窮大時的漸近理論, 現有學習方法也多是基於此假設. 但在實際問題中, 樣本數往往是有限的, 因此一些理論上很優秀的學習方法實際中表現卻可能不盡人意.

與傳統統計學相比, 統計學習理論(Statistical Learning Theory 或SLT ) 是一種專門研究小樣本情況下機器學習規律的理論. V. Vapnik等人從六、七十年代開始致力於此方面研究 , 到九十年代中期, 隨著其理論的不斷髮展和成熟, 也由於神經網路等學習方法在理論上缺乏實質性進展, 統計學習理論開始受到越來越廣泛的重視.

統計學習理論是建立在一套較堅實的理論基礎之上的, 為解決有限樣本學習問題提供了一個統一的框架. 它能將很多現有方法納入其中, 有望幫助解決許多原來難以解決的問題(比如神經網路結構選擇問題、區域性極小點問題等) ; 同時, 在這一理論基礎上發展了一種新的通用學習方法——支援向量機(Support Vector Machine 或SVM ) , 它已初步表現出很多優於已有方法的效能. 一些學者認為,SVM 正在成為繼神經網路研究之後新的研究熱點, 並將有力地推動機器學習理論和技術的發展。

我國早在八十年代末就有學者注意到支援向量機的基礎成果,但之後較少研究,目前只有少部分學者認識到這個重要的研究方向.

神經網路與支援向量機

 

       神經網路是基於傳統統計學的基礎上的.傳統統計學研究的內容是樣本無窮大時的漸進理論,即當樣本資料趨於無窮多時的統計性質,而實際問題中樣本資料往往是有限的.因此,假設樣本資料無窮多,並以此推匯出的各種演算法很難在樣本資料有限時取得理想的應用效果.

而支援向量機則是基於統計學理論的基礎上的,可以克服神經網路難以避免的問題.通過支援向量機在逼近能力方面與BP網路模擬結果的比較表明,支援向量機具有較強的逼近能力和泛化能力.支援向量機因其特有的優越性在將越來越受到各領域的重視,具有很好的應用前景.

支援向量機與人工神經網路

人工神經網路是目前研究較多的交叉學科,由於通過選擇適當的隱單元數和網路層次,前饋網路能以任意精度逼近非線性函式(Funahashi,1989),因此神經網路技術被廣泛應用到工業過程的建模與控制中,並取得了巨大成功.儘管如此,神經網路仍存在一些缺陷:

1)網路結構需要事先指定或應用啟發演算法在訓練過程中修正,這些啟發演算法難以保證網路結構的最優化;

2)網路權係數的調整方法存在侷限性;

3)神經網路易陷入區域性最優,有些甚至無法得到最優解;

4)過分依賴學習樣本,即模型效能的優劣過分依賴於模型訓練過程中樣本資料,而大多數情況下,樣本資料是有限的.除次,許多實際問題中的輸入空間是高維的,樣本資料僅是輸入空間中的稀疏分佈,即使能得到高質量的訓練資料,資料量必然很大.但是樣本數要是很多的話,必然使訓練時間大大增加;

5)目前尚無一種理論能定量的分析神經網路的訓練過程的收斂速度,及收斂速度的決定條件,並對其加以控制;

6)神經網路的優化目標是基於經驗的風險最小化,這就不能保證網路的泛化能力.儘管存在以上問題,神經網路仍然取得了很多成功應用,其原因在於,神經網路的設計與設計者有很大的關係.設計者若在網路設計過程中有效的利用了自己的經驗知識和先驗知識,可能會得到較理

想的網路結構.因此,神經網路系統的優劣是因人而異的

支援向量機是以統計學理論為基礎的[4],因而具有嚴格的理論和數學基礎,可以不象神經網路的結構設計需要依賴於設計者的經驗知識和先驗知識.支援向量機與神經網路的學習方法相比,支援向量機具有以下特點:

1)支援向量機是基於結構風險最小化(SRM,structuralriskminimization)原則,保證學習機器具

有良好的泛化能力;

2)解決了演算法複雜度與輸入向量密切相關的問題;

3)通過引用核函式,將輸入空間中的非線性問題對映到高維特徵空間中在高維空間中構造線性函式判別;

4)支援向量機是以統計學理論為基礎的,與傳統統計學習理論不同.它主要是針對小樣本情況,且最優解是基於有限的樣本資訊,而不是樣本數趨於無窮大時的最優解;

5)演算法可最終轉化為凸優化問題,因而可保證演算法的全域性最優性,避免了神經網路無法解決的區域性最小問題;

6)支援向量機有嚴格的理論和數學基礎,避免了神經網路實現中的經驗成分.

支援向量機的缺點

 由於支援向量機出現的時間在90年代中期,人們對支援向量機的應用主要集中在模式識別方面,對於將支援向量機應用於資料探勘的研究剛處於起步階段。

目前,用SVM構造資料探勘中的分類器來處理海量資料主要面臨以下兩個困難:

(1)SVM演算法對大規模訓練樣本難以實施

由於SVM是藉助二次規劃來求解支援向量,而求解二次規劃將涉及m階矩陣的計算(m為樣本的個數),當m數目很大時該矩陣的儲存和計算將耗費大量的機器記憶體和運算時間。

針對以上問題的主要改進有有J.Platt的SMO演算法、T.Joachims的SVM 、C.J.C.Burges等的PCGC、張學工的CSVM以及O.L.Mangasarian等的SOR演算法

(2)用SVM解決多分類問題存在困難

經典的支援向量機演算法只給出了二類分類的演算法,而在資料探勘的實際應用中,一般要解決多類的分類問題。可以通過多個二類支援向量機的組合來解決。主要有一對多組合模式、一對一組合模式和SVM決策樹;再就是通過構造多個分類器的組合來解決。主要原理是克服SVM固有的缺點,結合其他演算法的優勢,解決多類問題的分類精度。如:與粗集理論結合,形成一種優勢互補的多類問題的組合分類器.。

支援向量機是基於統計學習理論的新一代學習機器,具有很多吸引人的特點,它在函式表達能力、推廣能力和學習效率上都要優於傳統的人工神經網路,在實際應用中也解決了許多問題,但由於SVM的出現比較晚,還處於發展階段,尤其是其演算法實現方面存在著效率低下的問題,這也是限制SVM很好地應用於資料探勘中的一個瓶頸。可以考慮對傳統支援向量機進行擴充套件,實現多分類支援向量機。可以考慮運用於現在的客戶智慧系統當中,現有客戶智慧系統採用的分類技術都是傳統的資料探勘技術:比如神經網路,決策樹,迴歸分析等等。根據最後的圖,大家可以看到現在的分析型CRM的整個功能和技術架構,如果把這種新興的資料探勘技術-支援向量機,運用於商業智慧,相信是種不錯的嘗試。

關於SVM的基礎知識可參考:http://www.cnblogs.com/LeftNotEasy/archive/2011/05/02/basic-of-svm.html

基於ANN與SVM的分類及迴歸比較分析可參考:
http://www.asscp.org.cn/webdata/uploads/591291189788.pdf

關於斯坦福大學很棒的機器學習的網路公開課可見:
http://v.163.com/movie/2008/1/B/O/M6SGF6VB4_M6SGHJ9BO.html