基于數據的機器學習是現代智能技術中的重要方面,研究從觀測數據(樣本)出發尋找規律,利用這些規律對未來數據或無法觀測的數據進行預測。迄今為止,關于機器學習還沒有一種被共同接受的理論框架,關于其實現方法大致可以分為三種[3]:
第一種是經典的(參數)統計估計方法。包括模式識別、神經網絡等在內,現有機器學習方法共同的重要理論基礎之一是統計學。參數方法正是基于傳統統計學的,在這種方法中,參數的相關形式是已知的,訓練樣本用來估計參數的值。這種方法有很大的局限性.
首先,它需要已知樣本分布形式,這需要花費很大代價,還有,傳統統計學研究的是樣本數目趨于無窮大時的漸近理論,現有學習方法也多是基于此假設。但在實際問題中,樣本數往往是有限的,因此一些理論上很優秀的學習方法實際中表現卻可能不盡人意。
第二種方法是經驗非線性方法,如人工神經網絡(ANN)。這種方法利用已知樣本建立非線性模型,克服了傳統參數估計方法的困難。但是,這種方法缺乏一種統一的數學理論。與傳統統計學相比,統計學習理論(Statistical Learning Theory或SLT)是一種專門研究小樣本情況下機器學習規律的理論。該理論針對小樣本統計問題建立了一套新的理論體系,在這種體系下的統計推理規則不僅考慮了對漸近性能的要求,而且追求在現有有限信息的條件下得到最優結果。V. Vapnik等人從六、七十年代開始致力于此方面研究,到九十年代中期,隨著其理論的不斷發展和成熟,也由于神經網絡等學習方法在理論上缺乏實質性進展,統計學習理論開始受到越來越廣泛的重視。
統計學習理論的一個核心概念就是VC維(VC Dimension)概念,它是描述函數集或學習機器的復雜性或者說是學習能力(Capacity of the machine)的一個重要指標,在此概念基礎上發展出了一系列關于統計學習的一致性(Consistency)、收斂速度、推廣性能(Generalization Performance)等的重要結論。
統計學習理論是建立在一套較堅實的理論基礎之上的,為解決有限樣本學習問題提供了一個統一的框架。它能將很多現有方法納入其中,有望幫助解決許多原來難以解決的問題(比如神經網絡結構選擇問題、局部極小點問題等);
同時,這一理論基礎上發展了一種新的通用學習方法──支持向量機(Support Vector Machine或SVM),已初步表現出很多優于已有方法的性能。一些學者認為,SLT和SVM正在成為繼神經網絡研究之后新的研究熱點,并將推動機器學習理論和技術有重大的發展。
支持向量機方法是建立在統計學習理論的VC維理論和結構風險最小原理基礎上的,根據有限的樣本信息在模型的復雜性(即對特定訓練樣本的學習精度,Accuracy)和學習能力(即無錯誤地識別任意樣本的能力)之間尋求最佳折衷,以期獲得最好的推廣能力(Generalizatin Ability)。支持向量機方法的幾個主要優點有:
1. 它是專門針對有限樣本情況的,其目標是得到現有信息下的最優解而不僅僅是樣本數趨于無窮大時的最優值;
2. 算法最終將轉化成為一個二次型尋優問題,從理論上說,得到的將是全局最優點,解決了在神經網絡方法中無法避免的局部極值問題;
3. 算法將實際問題通過非線性變換轉換到高維的特征空間(Feature Space),在高維空間中構造線性判別函數來實現原空間中的非線性判別函數,特殊性質能保證機器有較好的推廣能力,同時它巧妙地解決了維數問題,其算法復雜度與樣本維數無關;
在SVM方法中,只要定義不同的內積函數,就可以實現多項式逼近、貝葉斯分類器、徑向基函數(Radial Basic Function或RBF)方法、多層感知器網絡等許多現有學習算法。
統計學習理論從七十年代末誕生,到九十年代之前都處在初級研究和理論準備階段,近幾年才逐漸得到重視,其本身也趨向完善,并產生了支持向量機這一將這種理論付諸實現的有效的機器學習方法。
目前,SVM算法在模式識別、回歸估計、概率密度函數估計等方面都有應用。
例如,在模式識別方面,對于手寫數字識別、語音識別、人臉圖像識別、文章分類等問題,SVM算法在精度上已經超過傳統的學習算法或與之不相上下。
目前,國際上對這一理論的討論和進一步研究逐漸廣泛,而我國國內尚未在此領域開展研究,因此我們需要及時學習掌握有關理論,開展有效的研究工作,使我們在這一有著重要意義的領域中能夠盡快趕上國際先進水平。由于SLT理論和SVM方法尚處在發展階段,很多方面尚不完善,比如:許多理論目前還只有理論上的意義,尚不能在實際算法中實現;而有關SVM算法某些理論解釋也并非完美(J.C.Burges在[2]中就曾提到結構風險最小原理并不能嚴格證明SVM為什么有好的推廣能力);此外,對于一個實際的學習機器的VC維的分析尚沒有通用的方法;SVM方法中如何根據具體問題選擇適當的內積函數也沒有理論依據。因此,在這方面我們可做的事情是很多的。
上文引自 水母bbs AI版
相關資源
SVM的英文主站,
http://www.kernel-machines.org/
Support Vector Machine 作者的站點
http://www.support-vector.net
piaip 的 (lib)SVM 簡易入門
http://ntu.csie.org/~piaip/svm/svm_tutorial.html
林智仁(cjlin)老師的 libsvm for matlab
LIBSVM — A Library for Support Vector Machines
Chih-Chung Chang and Chih-Jen Lin
http://www.csie.ntu.edu.tw/~cjlin/libsvm/