svm的一些理解(网上收集)
機(jī)器學(xué)習(xí)(Machine Learning, ML)的目的是根據(jù)給定的訓(xùn)練樣本求對(duì)某系統(tǒng)輸入輸出之間依賴(lài)關(guān)系的估計(jì),使它(這種關(guān)系)能夠?qū)ξ粗敵鲎龀霰M可能準(zhǔn)確地預(yù)測(cè)。機(jī)器學(xué)習(xí)至今沒(méi)有一個(gè)精確的公認(rèn)的定義。作為人工智能(Artificial Intelligence, AI)的一個(gè)重要研究領(lǐng)域,ML的研究工作主要圍繞學(xué)習(xí)機(jī)理、學(xué)習(xí)方法和面向任務(wù)這三個(gè)基本方面進(jìn)行研究。模式識(shí)別、函數(shù)逼近和概率密度估計(jì)是三類(lèi)基本的ML問(wèn)題。
?
從數(shù)學(xué)的角度來(lái)考慮,機(jī)器學(xué)習(xí)問(wèn)題就是已知n個(gè)獨(dú)立同分布的觀測(cè)樣本,在同一組預(yù)測(cè)函數(shù)中求一個(gè)最優(yōu)的函數(shù)對(duì)依賴(lài)關(guān)系進(jìn)行估計(jì),使期望風(fēng)險(xiǎn)R[f]最小。損失函數(shù)是評(píng)價(jià)預(yù)測(cè)準(zhǔn)確程度的一種度量,它與預(yù)測(cè)函數(shù)f(x)密切相關(guān)。而f(x)的期望風(fēng)險(xiǎn)依賴(lài)于概率分布和損失函數(shù),前者是客觀存在的,后者是根據(jù)具體問(wèn)題選定的,帶有(主觀的)人為的或偏好色彩。期望風(fēng)險(xiǎn)的大小直觀上可以理解為,當(dāng)我們用f(x)進(jìn)行預(yù)測(cè)時(shí),“平均”的損失程度,或“平均”犯錯(cuò)誤的程度。
?
但是,只有樣本卻無(wú)法計(jì)算期望風(fēng)險(xiǎn),因此,傳統(tǒng)的學(xué)習(xí)方法用樣本定義經(jīng)驗(yàn)風(fēng)險(xiǎn)Remp[f]作為對(duì)期望風(fēng)險(xiǎn)的估計(jì),并設(shè)計(jì)學(xué)習(xí)算法使之最小化。即所謂的經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化(Empirical Risk Minimization, ERM)歸納原則。經(jīng)驗(yàn)風(fēng)險(xiǎn)是用損失函數(shù)來(lái)計(jì)算的。對(duì)于模式識(shí)別問(wèn)題的損失函數(shù)來(lái)說(shuō),經(jīng)驗(yàn)風(fēng)險(xiǎn)就是訓(xùn)練樣本錯(cuò)誤率;對(duì)于函數(shù)逼近問(wèn)題的損失函數(shù)來(lái)說(shuō),就是平方訓(xùn)練誤差;而對(duì)于概率密度估計(jì)問(wèn)題的損失函數(shù)來(lái)說(shuō),ERM準(zhǔn)則就等價(jià)于最大似然法。事實(shí)上,用ERM準(zhǔn)則代替期望風(fēng)險(xiǎn)最小化并沒(méi)有經(jīng)過(guò)充分的理論論證,只是直觀上合理的想當(dāng)然做法。也就是說(shuō),經(jīng)驗(yàn)風(fēng)險(xiǎn)最小不一定意味著期望風(fēng)險(xiǎn)最小。其實(shí),只有樣本數(shù)目趨近于無(wú)窮大時(shí),經(jīng)驗(yàn)風(fēng)險(xiǎn)才有可能趨近于期望風(fēng)險(xiǎn)。但是很多問(wèn)題中樣本數(shù)目離無(wú)窮大很遠(yuǎn),那么在有限樣本下ERM準(zhǔn)則就不一定能使真實(shí)風(fēng)險(xiǎn)較小啦。ERM準(zhǔn)則不成功的一個(gè)例子就是神經(jīng)網(wǎng)絡(luò)的過(guò)學(xué)習(xí)問(wèn)題(某些情況下,訓(xùn)練誤差過(guò)小反而導(dǎo)致推廣能力下降,或者說(shuō)是訓(xùn)練誤差過(guò)小導(dǎo)致了預(yù)測(cè)錯(cuò)誤率的增加,即真實(shí)風(fēng)險(xiǎn)的增加)。
?
統(tǒng)計(jì)學(xué)習(xí)理論(Statistical Learning Theory, SLT)和支持向量機(jī)(Support Vector Machine, SVM)建立了一套較好的有限訓(xùn)練樣本下機(jī)器學(xué)習(xí)的理論框架和通用方法,既有嚴(yán)格的理論基礎(chǔ),又能較好地解決小樣本、非線性、高維數(shù)和局部極小點(diǎn)等實(shí)際問(wèn)題,其核心思想就是學(xué)習(xí)機(jī)器(又叫預(yù)測(cè)函數(shù),或?qū)W習(xí)函數(shù),或?qū)W習(xí)模型)F要與有限的訓(xùn)練樣本相適應(yīng)。在學(xué)習(xí)算法中需要選擇恰當(dāng)?shù)?/span>F,這里的關(guān)鍵因素是F的大小,或者F的豐富程度,或者說(shuō)F的“表達(dá)能力”,VC維(Vapnik-Chervonenkis Dimension)就是對(duì)這種“表達(dá)能力”的一種描述。
?
VC維的定義如下:對(duì)于一個(gè)指示函數(shù)集,如果存在h個(gè)樣本能夠被函數(shù)集中的函數(shù)按所有可能的2的h次冪種形式分開(kāi),則稱(chēng)函數(shù)集能夠把h個(gè)樣本都打散,h的最大值就是函數(shù)集的VC維。VC維是SLT中的一個(gè)重要概念,它是函數(shù)集學(xué)習(xí)性能的重要指標(biāo)。目前尚沒(méi)有通用的關(guān)于任意函數(shù)集VC維計(jì)算的理論,只知道一些特殊的函數(shù)集的VC維。比如,在n維空間中線性分類(lèi)器和線性實(shí)函數(shù)的VC維是 n+1,而 f(x,a) = sin(ax) 的VC維則為無(wú)窮大。對(duì)于給定的學(xué)習(xí)函數(shù)集,如何(用理論或?qū)嶒?yàn)的方法)計(jì)算其VC維是當(dāng)前統(tǒng)計(jì)學(xué)習(xí)理論中有待研究的一個(gè)問(wèn)題。
?
由上文可知,在有限樣本情況下,僅僅用ERM來(lái)近似期望風(fēng)險(xiǎn)是行不通的。統(tǒng)計(jì)學(xué)習(xí)理論給出了期望風(fēng)險(xiǎn) R[f] 與經(jīng)驗(yàn)風(fēng)險(xiǎn) Remp[f] 之間關(guān)系:R[f] <= ( Remp[f] + e )。其中 e = g(h/n) 為置信區(qū)間,e 是VC維 h 的增函數(shù),也是樣本數(shù)n的減函數(shù)。右端稱(chēng)為結(jié)構(gòu)風(fēng)險(xiǎn),它是期望風(fēng)險(xiǎn) R[f] 的一個(gè)上界。經(jīng)驗(yàn)風(fēng)險(xiǎn)的最小依賴(lài)較大的 F (樣本數(shù)較多的函數(shù)集)中某個(gè) f 的選擇,但是 F 較大,則VC維較大,就導(dǎo)致置信區(qū)間 e 變大,所以要想使期望風(fēng)險(xiǎn) R[f] 最小,必須選擇合適的 h 和 n 來(lái)使不等式右邊的結(jié)構(gòu)風(fēng)險(xiǎn)最小,這就是結(jié)構(gòu)風(fēng)險(xiǎn)最小化(Structural Risk Minimization, SRM)歸納原則。實(shí)現(xiàn)SRM的思路之一就是設(shè)計(jì)函數(shù)集的某種結(jié)構(gòu)使每個(gè)子集中都能取得最小的經(jīng)驗(yàn)風(fēng)險(xiǎn)(如使訓(xùn)練誤差為0),然后只需選擇適當(dāng)?shù)淖蛹怪眯欧秶钚?#xff0c;則這個(gè)子集中使經(jīng)驗(yàn)風(fēng)險(xiǎn)最小的函數(shù)就是最優(yōu)函數(shù)。SVM方法實(shí)際上就是這種思想的具體實(shí)現(xiàn)。
???????????????????????????????????????????????????????????????????????????????????????????????
SVM是一種基于統(tǒng)計(jì)的學(xué)習(xí)方法,它是對(duì)SRM的近似。概括地說(shuō),SVM就是首先通過(guò)用內(nèi)積函數(shù)定義的非線性變換將輸入空間變換到一個(gè)高維空間,然后再在這個(gè)空間中求(廣義)最優(yōu)分類(lèi)面的分類(lèi)方法。
?
?
名詞解釋1——支持向量機(jī):“機(jī)(machine,機(jī)器)”實(shí)際上是一個(gè)算法。在機(jī)器學(xué)習(xí)領(lǐng)域,常把一些算法看作是一個(gè)機(jī)器(又叫學(xué)習(xí)機(jī)器,或預(yù)測(cè)函數(shù),或?qū)W習(xí)函數(shù))。“支持向量”則是指訓(xùn)練集中的某些訓(xùn)練點(diǎn)的輸入 xi 。它是一種有監(jiān)督(有導(dǎo)師)學(xué)習(xí)方法,即已知訓(xùn)練點(diǎn)的類(lèi)別,求訓(xùn)練點(diǎn)和類(lèi)別之間的對(duì)應(yīng)關(guān)系,以便將訓(xùn)練集按照類(lèi)別分開(kāi),或者是預(yù)測(cè)新的訓(xùn)練點(diǎn)所對(duì)應(yīng)的類(lèi)別。
?
名詞解釋2——符號(hào)函數(shù):sgn(a) = 1, a >= 0;sgn(a) = -1, a < 0.
?
一般地,考慮 n 維空間上的分類(lèi)問(wèn)題,它包含 n 個(gè)指標(biāo)和 l 個(gè)樣本點(diǎn)。記這 l 個(gè)樣本點(diǎn)的集合為 T = {(x1,y1),...,(xl,yl)},其中 xi 是輸入指標(biāo)向量,或稱(chēng)輸入,或稱(chēng)模式,其分量稱(chēng)為特征,或?qū)傩?#xff0c;或輸入指標(biāo);yi 是輸出指標(biāo)向量,或稱(chēng)輸出,i = 1,...,l。 這 l 個(gè)樣本點(diǎn)組成的集合稱(chēng)為訓(xùn)練集,所以我們也稱(chēng)樣本點(diǎn)位訓(xùn)練點(diǎn)。
?
對(duì)于訓(xùn)練集來(lái)說(shuō),有線性可分、近似線性可分和線性不可分等三種情況,這就是分類(lèi)問(wèn)題的三種類(lèi)型。其實(shí),無(wú)論是哪類(lèi)問(wèn)題,都有對(duì)應(yīng)的分類(lèi)機(jī),這將在以下的內(nèi)容中進(jìn)行詳細(xì)闡述。那么,有人可能會(huì)問(wèn),什么叫線性可分?通俗地講,就是可以用一條或幾條直線把屬于不同類(lèi)別的樣本點(diǎn)分開(kāi)。實(shí)際上,求解分類(lèi)問(wèn)題,就是要求出這條或這幾條直線!那么,問(wèn)題是:怎么求?這里先以二維兩類(lèi)線性可分的分類(lèi)問(wèn)題為例,做個(gè)詳細(xì)的說(shuō)明,然后再過(guò)渡到多類(lèi)分類(lèi)問(wèn)題。
?
首先,回憶一下平面(二維)坐標(biāo)系中某條直線的方程。還記得直線的一般方程
Ax + By + C = 0 (公式一)
吧,我們引入向量的概念,則該方程可以寫(xiě)成{x,y}與{A,B}的內(nèi)積加上C等于0,即
{A,B}·{x,y} + C = 0
你還記得法向量和方向向量的概念嗎?其實(shí){A,B}就是法向量,而{B,-A}就是方向向量了。那么我們可以把直線的一般方程簡(jiǎn)化成為
w·x + b = 0 (公式二)
的形式(因?yàn)檫@個(gè)式子是大家最常用的嘛)。注意:(公式二)中的 x 和(公式一)中的 x 不同,前者一個(gè)二維向量,后者是一個(gè)實(shí)數(shù)。
?
對(duì)于兩類(lèi)問(wèn)題,如果將某一直線兩側(cè)的樣本點(diǎn)分為正類(lèi)和負(fù)類(lèi),則用符號(hào)函數(shù)的方式推斷點(diǎn) x 所對(duì)應(yīng)的類(lèi)別 y 的決策函數(shù)如下:
y? = f(x) = sgn((w·x) + b) (公式三)
根據(jù)符號(hào)函數(shù)的定義,很明顯 y 的取值要么是 1 ,要么是 -1,也就是說(shuō)樣本點(diǎn)的類(lèi)別只有 1 和 -1 兩類(lèi)。此時(shí)的分類(lèi)問(wèn)題是:對(duì)于任意給定的一個(gè)新的模式 x ,根據(jù)訓(xùn)練集推斷它所對(duì)應(yīng)的輸出 y 是 1 還是 -1。這就是線性可分的分類(lèi)問(wèn)題,也是一個(gè)模式識(shí)別問(wèn)題,我們要做的工作就是要求出 w 和 b 。
?
直接求這兩個(gè)參數(shù)基本上不太可能,除了訓(xùn)練集我們又沒(méi)有別的信息可以利用,這可如何是好?前輩們給出了一個(gè)絕妙的方法——就是所求得的預(yù)測(cè)函數(shù) f(x) 對(duì)原有樣本的分類(lèi)錯(cuò)誤率最小。那么,問(wèn)題又出來(lái)了,這個(gè)錯(cuò)誤率咋算?損失函數(shù)就是專(zhuān)門(mén)用來(lái)評(píng)價(jià)預(yù)測(cè)準(zhǔn)確程度的一種度量,而且模式識(shí)別問(wèn)題使用的正是“0-1損失函數(shù)”。根據(jù)我的上一篇學(xué)習(xí)體會(huì)——《從機(jī)器學(xué)習(xí)到支持向量機(jī)》http://axywestwind.bokee.com/viewdiary.14525093.html中的闡述,使(公式三)中的 f(x) 的預(yù)測(cè)誤差最小的問(wèn)題轉(zhuǎn)化成期望誤差最小、經(jīng)驗(yàn)風(fēng)險(xiǎn)最小,最后在統(tǒng)計(jì)學(xué)習(xí)理論中又轉(zhuǎn)化為結(jié)構(gòu)風(fēng)險(xiǎn)最小(Structural Risk Minimization, SRM)。而實(shí)現(xiàn)SRM的思路之一就是設(shè)計(jì)預(yù)測(cè)函數(shù)集的某種結(jié)構(gòu)使每個(gè)子集中都能取得最小的經(jīng)驗(yàn)風(fēng)險(xiǎn)(如使訓(xùn)練誤差為0),然后只需選擇適當(dāng)?shù)淖蛹怪眯欧秶钚?#xff0c;則這個(gè)子集中使經(jīng)驗(yàn)風(fēng)險(xiǎn)最小的函數(shù)就是最優(yōu)函數(shù)。SVM方法實(shí)際上就是這種思想的具體實(shí)現(xiàn),它是對(duì)SRM的近似。說(shuō)了半天,終于和上次的內(nèi)容連接上了。但是,為了求解SRM這個(gè)最小化問(wèn)題,還得將它轉(zhuǎn)化成數(shù)學(xué)形式。
?
SVM方法是從線性可分情況下的最優(yōu)分類(lèi)面提出的,它是實(shí)現(xiàn)統(tǒng)計(jì)學(xué)習(xí)理論思想的方法。什么是最優(yōu)分類(lèi)面呢?這要從最優(yōu)分類(lèi)線說(shuō)起。所謂最優(yōu)分類(lèi)線就是要求分類(lèi)線不但能將兩類(lèi)無(wú)錯(cuò)誤地分開(kāi),而且要使兩類(lèi)的分類(lèi)間隔最大。前者是保證經(jīng)驗(yàn)風(fēng)險(xiǎn)最小(如使訓(xùn)練誤差為0),而使分類(lèi)間隔最大實(shí)際上就是使推廣性的界中的置信范圍最小,從而使真實(shí)風(fēng)險(xiǎn)最小。推廣到高維空間,最優(yōu)分類(lèi)線就成為最優(yōu)分類(lèi)面。
?
那么如何構(gòu)造這個(gè)最優(yōu)分類(lèi)面呢?方法有 2 個(gè):平分最近點(diǎn)法和最大間隔法。有趣的是,這兩個(gè)方法殊途同歸,它們求解得到的是同一個(gè)超平面(由三個(gè)定理聯(lián)合起來(lái)證明了這個(gè)結(jié)論)。由這三個(gè)定理可知,這兩個(gè)方法與一個(gè)最優(yōu)化問(wèn)題求解方法等價(jià),這個(gè)方法就稱(chēng)為“線性可分支持向量分類(lèi)機(jī)”。其實(shí),這個(gè)分類(lèi)機(jī)是將最大間隔法求解最優(yōu)分類(lèi)面的最優(yōu)化問(wèn)題轉(zhuǎn)化為其對(duì)偶問(wèn)題,從而通過(guò)求解相對(duì)簡(jiǎn)單的對(duì)偶問(wèn)題來(lái)求解原分類(lèi)問(wèn)題的算法。隨后引入松弛變量和懲罰因子來(lái)解決非線性分類(lèi)問(wèn)題,并且允許一定的分類(lèi)錯(cuò)誤(軟間隔),最終得到非線性軟間隔的標(biāo)準(zhǔn)的 C-支持向量機(jī)(C-SVC)。其中的巧妙之處就在于把一個(gè)復(fù)雜的最優(yōu)化問(wèn)題的求解簡(jiǎn)化為對(duì)原有樣本數(shù)據(jù)的內(nèi)積運(yùn)算。我們要做的就是選擇適當(dāng)?shù)暮撕瘮?shù)及其參數(shù)、懲罰因子就可以了。
?
概括地說(shuō),SVM就是首先通過(guò)用內(nèi)積函數(shù)定義的非線性變換將輸入空間變換到一個(gè)高維空間,然后再在這個(gè)空間中求(廣義)最優(yōu)分類(lèi)面的分類(lèi)方法。
?
那么,如何通過(guò)計(jì)算機(jī)來(lái)求解這個(gè)內(nèi)積運(yùn)算呢?且聽(tīng)下回分解!下次會(huì)介紹選塊算法、分解算法,并重點(diǎn)介紹由分解算法改進(jìn)得到的最經(jīng)典的 SMO 算法。
?
?
?
?
?
目錄
1.提出背景
2.算法思想
3.算法描述
a) Chunking算法
b) Qsuna算法
4.算法優(yōu)越性討論
a) 人工神經(jīng)網(wǎng)絡(luò)
b) 支持向量機(jī)
c) ANN的缺點(diǎn)
d) VM的優(yōu)點(diǎn)
5.主要應(yīng)用領(lǐng)域
1.提出背景
支持向量機(jī)SVM ( Support Vector Machines)是由Vanpik領(lǐng)導(dǎo)的AT&TBell實(shí)驗(yàn)室研究小組在1963年提出的一種新的非常有潛力的分類(lèi)技術(shù), SVM是一種基于統(tǒng)計(jì)學(xué)習(xí)理論的模式識(shí)別方法,主要應(yīng)用于模式識(shí)別領(lǐng)域。由于當(dāng)時(shí)這些研究尚不十分完善,在解決模式識(shí)別問(wèn)題中往往趨于保守,且數(shù)學(xué)上比較艱澀,因此這些研究一直沒(méi)有得到充的重視。直到90年代,一個(gè)較完善的理論體系—統(tǒng)計(jì)學(xué)習(xí)理論 ( StatisticalLearningTheory,簡(jiǎn)稱(chēng)SLT) 的實(shí)現(xiàn)和由于神經(jīng)網(wǎng)絡(luò)等較新興的機(jī)器學(xué)習(xí)方法的研究遇到一些重要的困難,比如如何確定網(wǎng)絡(luò)結(jié)構(gòu)的問(wèn)題、過(guò)學(xué)習(xí)與欠學(xué)習(xí)問(wèn)題、局部極小點(diǎn)問(wèn)題等,使得SVM 迅速發(fā)展和完善,在解決小樣本、非線性及高維模式識(shí)別問(wèn)題中表現(xiàn)出許多特有的優(yōu)勢(shì),并能夠推廣應(yīng)用到函數(shù)擬合等其他機(jī)器學(xué)習(xí)問(wèn)題中,從此迅速的發(fā)展起來(lái)。
?
2.算法思想
支撐向量機(jī)主要采用了分解算法思想,它將QP問(wèn)題分解為一系列規(guī)模較小的子問(wèn)題,希望通過(guò)對(duì)子問(wèn)題的迭代求解,得到QP問(wèn)題的全局最優(yōu)解。這樣解決了存儲(chǔ)空間受限的問(wèn)題,另一方面,要使算法可行,還必須解決諸如分解策略,迭代算法的收斂性,收斂條件,優(yōu)化時(shí)間,以及如何利用解的稀疏性來(lái)優(yōu)化加快速度等問(wèn)題。
SVM的關(guān)鍵在于核函數(shù),這也是最喜人的地方。低維空間向量集通常難于劃分,解決的方法是將它們映射到高維空間。但這個(gè)辦法帶來(lái)的困難就是計(jì)算復(fù)雜度的增加,而核函數(shù)正好巧妙地解決了這個(gè)問(wèn)題。也就是說(shuō),只要選用適當(dāng)?shù)暮撕瘮?shù),我們就可以得到高維空間的分類(lèi)函數(shù)。在SVM理論中,采用不同的核函數(shù)將導(dǎo)致不同的SVM算法
3.算法描述
3.1 Chunking算法
Chunking算法是V.Va pnik等人提出的一種求解QP問(wèn)題的算法。它可看成是一種不完全的分解算法。算法將原先的QP問(wèn)題分解成一系列待優(yōu)化的子問(wèn)題。任何一個(gè)子問(wèn)題都維護(hù)一個(gè)與其相關(guān)的變量的子集,在優(yōu)化過(guò)程中保持其他的變量值不變。子問(wèn)題維護(hù)所有上一步優(yōu)化后得到的非零變量,及其它違反KKT條件最嚴(yán)重的M個(gè)變量。這樣經(jīng)過(guò)反復(fù)迭代優(yōu)化,最終將得到QP問(wèn)題的全局最優(yōu)解。
算法描述
1.選擇初始子問(wèn)題,包括選擇問(wèn)題的規(guī)模nl,待優(yōu)化的變量子集及每次添加進(jìn)優(yōu)化子集的違反KKT條件的變量數(shù)目M。
2.采 用一種QP優(yōu)化器求解上述子問(wèn)題,得到一個(gè)分類(lèi)器。
3.用剩余訓(xùn)練樣本測(cè)試上述分類(lèi)器,采用KKT條件評(píng)價(jià)測(cè)試結(jié)果。如果所有變量都滿足KKT條件,則結(jié)束訓(xùn)練;否則,選擇違反KKT條件最劇烈的M個(gè)變量,并與上一步優(yōu)化得到的非零值變量構(gòu)成待優(yōu)化子問(wèn)題,重復(fù)第2步。
3.2 Osuna算法
199 7年 ,E dgarOs una[49.50]提出一個(gè)求解SVM中問(wèn)題的分解算法,既是把一個(gè)大型QP問(wèn)題分解成一個(gè)小型QP問(wèn)題組成的序列,在上一步的QP子問(wèn)題中至少加入一個(gè)違反KKT條件的點(diǎn)而構(gòu)成下一步的QP子問(wèn)題,每一步優(yōu)化目標(biāo)函數(shù)的值并始終保持滿足約束條件,從而使這些QP子問(wèn)題構(gòu)成的序列收斂,直至最后所有的點(diǎn)都滿足KKT條件,也即得到了原問(wèn)題的解。
4.算法優(yōu)越性討論
本部分主要討論了支持向量機(jī)與目前非常流行的人工神經(jīng)網(wǎng)絡(luò)相比,具有的優(yōu)越性,僅供參考。
4.1 人工神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)是基于傳統(tǒng)統(tǒng)計(jì)學(xué)的基礎(chǔ)上的。傳統(tǒng)統(tǒng)計(jì)學(xué)研究的內(nèi)容是樣本無(wú)窮大時(shí)的漸進(jìn)理論,即當(dāng)樣本數(shù)據(jù)趨于無(wú)窮多時(shí)的統(tǒng)計(jì)性質(zhì),而實(shí)際問(wèn)題中樣本數(shù)據(jù)往往是有限的。因此,假設(shè)樣本數(shù)據(jù)無(wú)窮多,并以此推導(dǎo)出的各種算法很難在樣本數(shù)據(jù)有限時(shí)取得理想的應(yīng)用效果。
4.2? 支持向量機(jī)
支持向量機(jī)是基于統(tǒng)計(jì)學(xué)理論的基礎(chǔ)上的,可以克服神經(jīng)網(wǎng)絡(luò)難以避免的問(wèn)題。通過(guò)支持向量機(jī)在逼近能力方面與BP網(wǎng)絡(luò)仿真結(jié)果的比較表明,支持向量機(jī)具有較強(qiáng)的逼近能力和泛化能力。
4.3 人工神經(jīng)網(wǎng)絡(luò)存在的一些缺陷
人工神經(jīng)網(wǎng)絡(luò)是目前研究較多的交叉學(xué)科,由于通過(guò)選擇適當(dāng)?shù)碾[單元數(shù)和網(wǎng)絡(luò)層次,前饋網(wǎng)絡(luò)能以任意精度逼近非線性函數(shù)(Funahashi,1989),因此神經(jīng)網(wǎng)絡(luò)技術(shù)被廣泛應(yīng)用到工業(yè)過(guò)程的建模與控制中,并取得了巨大成功。盡管如此,神經(jīng)網(wǎng)絡(luò)仍存在一些缺陷:
(1)網(wǎng)絡(luò)結(jié)構(gòu)需要事先指定或應(yīng)用啟發(fā)算法在訓(xùn)練過(guò)程中修正,這些啟發(fā)算法難以保證網(wǎng)絡(luò)結(jié)構(gòu)的最優(yōu)化;
(2)網(wǎng)絡(luò)權(quán)系數(shù)的調(diào)整方法存在局限性;
(3)神經(jīng)網(wǎng)絡(luò)易陷入局部最優(yōu),有些甚至無(wú)法得到最優(yōu)解;
(4)過(guò)分依賴(lài)學(xué)習(xí)樣本,即模型性能的優(yōu)劣過(guò)分依賴(lài)于模型訓(xùn)練過(guò)程中樣本數(shù)據(jù),而大多數(shù)情況下,樣本數(shù)據(jù)是有限的。除次,許多實(shí)際問(wèn)題中的輸入空間是高維的,樣本數(shù)據(jù)僅是輸入空間中的稀疏分布,即使能得到高質(zhì)量的訓(xùn)練數(shù)據(jù),數(shù)據(jù)量必然很大。但是樣本數(shù)要是很多的話,必然使訓(xùn)練時(shí)間大大增加;
(5)目前尚無(wú)一種理論能定量的分析神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程的收斂速度,及收斂速度的決定條件,并對(duì)其加以控制;
(6)神經(jīng)網(wǎng)絡(luò)的優(yōu)化目標(biāo)是基于經(jīng)驗(yàn)的風(fēng)險(xiǎn)最小化,這就不能保證網(wǎng)絡(luò)的泛化能力。盡管存在以上問(wèn)題,神經(jīng)網(wǎng)絡(luò)仍然取得了很多成功應(yīng)用,其原因在于,神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)與設(shè)計(jì)者有很大的關(guān)系。設(shè)計(jì)者若在網(wǎng)絡(luò)設(shè)計(jì)過(guò)程中有效的利用了自己的經(jīng)驗(yàn)知識(shí)和先驗(yàn)知識(shí),可能會(huì)得到較理想的網(wǎng)絡(luò)結(jié)構(gòu)。因此,神經(jīng)網(wǎng)絡(luò)系統(tǒng)的優(yōu)劣是因人而異的。
4.4 支持向量機(jī)的新特點(diǎn)
支持向量機(jī)是以統(tǒng)計(jì)學(xué)理論為基礎(chǔ)的,因而具有嚴(yán)格的理論和數(shù)學(xué)基礎(chǔ),可以不象神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)需要依賴(lài)于設(shè)計(jì)者的經(jīng)驗(yàn)知識(shí)和先驗(yàn)知識(shí)。支持向量機(jī)與神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法相比,支持向量機(jī)具有以下特點(diǎn):
(1)支持向量機(jī)是基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化(SRM,structuralriskminimization)原則,保證學(xué)習(xí)機(jī)器具有良好的泛化能力;
(2)解決了算法復(fù)雜度與輸入向量密切相關(guān)的問(wèn)題;
(3)通過(guò)引用核函數(shù),將輸入空間中的非線性問(wèn)題映射到高維特征空間中在高維空間中構(gòu)造線性函數(shù)判別;
(4)支持向量機(jī)是以統(tǒng)計(jì)學(xué)理論為基礎(chǔ)的,與傳統(tǒng)統(tǒng)計(jì)學(xué)習(xí)理論不同。它主要是針對(duì)小樣本情況,且最優(yōu)解是基于有限的樣本信息,而不是樣本數(shù)趨于無(wú)窮大時(shí)的最優(yōu)解;
(5)算法可最終轉(zhuǎn)化為凸優(yōu)化問(wèn)題,因而可保證算法的全局最優(yōu)性,避免了神經(jīng)網(wǎng)絡(luò)無(wú)法解決的局部最小問(wèn)題;
(6)支持向量機(jī)有嚴(yán)格的理論和數(shù)學(xué)基礎(chǔ),避免了神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)中的經(jīng)驗(yàn)成分。
5.主要應(yīng)用領(lǐng)域
現(xiàn)在已經(jīng)在許多領(lǐng)域,如:生物信息 學(xué),文本和手寫(xiě)識(shí)別等,都取得了成功的應(yīng)用。
?
?
?
Solu兄要我寫(xiě)點(diǎn)什么,可實(shí)在知道的很少,只好寫(xiě)寫(xiě)自己看書(shū)看論文的經(jīng)過(guò)。 所以這一切是從SVM開(kāi)始的。我喜歡通過(guò)一些直觀的東西理解,所以下面的討論就集中在二類(lèi)問(wèn)題上(y=-1 or +1),并且樣本數(shù)據(jù)是二維的(X=(x1,x2))。平面上的點(diǎn)的二分類(lèi)問(wèn) 題。我們的目標(biāo)是從一堆訓(xùn)練數(shù)據(jù)(比如L個(gè)(xi,yi)對(duì),這里還要做限制,就是這些數(shù)據(jù)是 來(lái)自一個(gè)潛在分布,并且相互之間是獨(dú)立的,這些限制對(duì)于Vapnik證明的那些界是必要的 )中學(xué)到一些什么,我們把目標(biāo)再定低一點(diǎn),希望學(xué)到給定樣本數(shù)據(jù)Xt,如何推出它的類(lèi)別 Yt。 該如何處理這種問(wèn)題呢?一種簡(jiǎn)單的方法就是我們假定這些數(shù)據(jù)(或其背后的分布)來(lái) 自于(或者足夠接近)某個(gè)候選模型集,這樣問(wèn)題就進(jìn)一步簡(jiǎn)化了,變成了一個(gè)搜索問(wèn)題 (如何在某個(gè)候選集中選一個(gè)模型使得其能夠較好地解釋訓(xùn)練數(shù)據(jù))。看來(lái)好像問(wèn)題已經(jīng) 簡(jiǎn)化得很厲害了,但這里還有兩個(gè)問(wèn)題,首先到底在一個(gè)什么樣的模型集中搜索,其次什 么是“比較好的解釋”,前者是模型復(fù)雜度的問(wèn)題,也就是正則化的問(wèn)題,后者則是損失 函數(shù)的問(wèn)題。(當(dāng)然這里還有很多很多的問(wèn)題,如先驗(yàn)知識(shí)、數(shù)據(jù)中是否有噪聲、樣本數(shù) 據(jù)的各維中是否有冗余是否相關(guān)等等)。 我們先看看模型復(fù)雜度,無(wú)論是奧姆斯剃刀理論還是“殺雞焉用宰牛刀”都告訴我們, 對(duì)于簡(jiǎn)單的問(wèn)題不要用太復(fù)雜的方法。但標(biāo)準(zhǔn)是什么呢?如何分辨指甲刀和西瓜刀呢?通 常我們要看這把刀能干什么(并且是至多能做什么)。這里要解決的問(wèn)題是分類(lèi),那么要 看的就是一個(gè)模型集的分類(lèi)能力(給定某個(gè)樣本數(shù)據(jù)x,給出其相應(yīng)的類(lèi)別,也就是說(shuō)所謂 “分類(lèi)”可以看作對(duì)樣本數(shù)據(jù)的解釋)。VC維就是描述這種能力的一種度量。一個(gè)模型集 是由很多模型組成的,每個(gè)模型可以對(duì)樣本數(shù)據(jù)做出一種解釋(也就是給定任意樣本數(shù)據(jù) 使用該模型可以給出一個(gè)確定的類(lèi)別),一個(gè)模型集的VC維是一個(gè)正整數(shù),表示使用這個(gè) 模型集可以“至多”“任意”解釋的樣本數(shù)據(jù)的個(gè)數(shù)。例如一個(gè)模型集的VC維是3,就表示 這個(gè)模型集可以“至多”“任意”解釋3個(gè)樣本數(shù)據(jù),所謂“任意解釋”,就是給定3個(gè)樣 本數(shù)據(jù)(x1,x2,x3),我們可以在這個(gè)模型集中找到2^3=8個(gè)模型,每個(gè)模型分別 給出不同的類(lèi)別給這3個(gè)樣本數(shù)據(jù)(如,模型f1將x1,x2,x3,分類(lèi)為-1-1-1,f2為-1-1+1,.. .,f8為+1+1+1),所謂“至多”就是我們只能“找到”(也就是說(shuō)不要求任意3個(gè)樣本數(shù)據(jù) 可以被任意解釋)3個(gè)樣本數(shù)據(jù)被任意解釋而無(wú)法找到4個(gè)。 VC維的意義主要 是在概念上而非計(jì)算上,因?yàn)橥ǔ:芏嗄P偷?/span>VC維都是無(wú)法求得的。 但也有一些特殊的模型集的VC維是可以直接求得的,比如n維空間的所有“超平面”的 VC維就是n+1。我們回到上面的問(wèn)題設(shè)定,我們考慮2維平面上所有的直線組成的模型集( 易見(jiàn)每條直線都可以將整個(gè)平面分為兩部分,+1類(lèi),-1類(lèi),線上的部分可以隨便 算到+1類(lèi)或-1類(lèi)),我們發(fā)現(xiàn)我們可以很容易找到3個(gè)點(diǎn)(樣本數(shù)據(jù)),只要這3個(gè)點(diǎn)不共 線,我們便可以找到8條直線給出這3個(gè)點(diǎn)的所有的類(lèi)別可能。但 4個(gè)點(diǎn)卻無(wú)法找到,可以 證明n維空間的所有超平面的VC維就是n+1。 這樣一來(lái)使用超平面就可以方便的控制模型的復(fù)雜度,但這里存在一個(gè)問(wèn)題,那就是這 里的VC維是與樣本數(shù)據(jù)的維數(shù)相關(guān)的,這為后面使用核方法就造成了困難。所以考慮另一 種相近的模型集,這個(gè)模型集里的模型是一個(gè)個(gè)“超平板”--帶有確定厚度的 超平面,每個(gè)“超平板”將空間分為兩部分,自己再占一部分,自己占的這部分不做解釋 (拒絕分類(lèi))(由于VC維是能夠“找到”若干個(gè)樣本,所以盡管不是對(duì)整個(gè)樣本空間進(jìn)行 解釋,但并不影響VC維的計(jì)算。那這樣做影響了什么呢?這是個(gè)問(wèn)題)。并且Vapnik 證明了這個(gè)板的厚度是這個(gè)模型集的VC維的上界,從而控制模型集的復(fù)雜度可以通過(guò)控制 板的厚度來(lái)實(shí)現(xiàn)。這是一個(gè)重要的進(jìn)步,這個(gè)模型集的復(fù)雜度與樣本數(shù)據(jù)的維數(shù)無(wú)關(guān)了, 也使得SVM使用kernel trick成為可能。 為什么厚的板的VC維就小呢?Learing with kernels里面有個(gè)很好的圖。簡(jiǎn)單起見(jiàn),我 們?nèi)サ舫矫娴哪莻€(gè)常數(shù)項(xiàng),考慮2維平面,也就是所有的超平板都過(guò)原點(diǎn),假定樣本數(shù)據(jù) 都分布在半徑為R的以原點(diǎn)為圓心的圓內(nèi),可見(jiàn)隨著板的厚度的增加,我們就沒(méi)有辦法再找 到3個(gè)點(diǎn)能夠被任意解釋了。也就是說(shuō)盡管在一個(gè)很高維的空間我們?nèi)耘f可以通過(guò)控制板的 厚度,使得我們的模型集的復(fù)雜度不是很大。(但這里有對(duì)數(shù)據(jù)分布的限制,那個(gè)R,這會(huì) 造成什么問(wèn)題呢? 這是個(gè)問(wèn)題)。 這個(gè)板的厚度也就是通常提到的分類(lèi)面的margin,對(duì)于這個(gè)margin還有很多其他的解釋 ,如margin引入了robust啊等等,但我覺(jué)得對(duì)于SVM關(guān)鍵是維數(shù)無(wú)關(guān)。
?
前面提到一個(gè)分類(lèi)器的訓(xùn)練包含兩個(gè)問(wèn)題損失函數(shù)以及正則化(很多監(jiān)督學(xué)習(xí)算法的目 標(biāo)函數(shù)也都是不同的損失函數(shù)與不同的正則化項(xiàng)的組合)。前者是衡量當(dāng)前候選分類(lèi)器在 訓(xùn)練數(shù)據(jù)上的性能(對(duì)應(yīng)貝葉斯方法中的似然函數(shù)),后者則是衡量當(dāng)前學(xué)習(xí)器所來(lái)自的 模型集的復(fù)雜度(對(duì)應(yīng)貝葉斯方法中的先驗(yàn)概率)。Vapnik關(guān)于分類(lèi)器的推廣能力的界也 就是這兩部分,也就是說(shuō)如果我們能在一個(gè)非常簡(jiǎn)單的模型集中找到一個(gè)分類(lèi)器,使得其 能非常好地解釋訓(xùn)練數(shù)據(jù)(具有很小的損失),那么這個(gè)分類(lèi)器將會(huì)以很大的概率在未來(lái) 的數(shù)據(jù)上表現(xiàn)很好。這也就引出了Vapnik的結(jié)構(gòu)風(fēng)險(xiǎn)最小化,所謂結(jié)構(gòu)風(fēng)險(xiǎn)最小化也就是 首先確定一組嵌套的模型集(F1包含于F2。。。FN),并且隨著下標(biāo)的增加模型集的VC維也 隨之增加,也就是從模型集F1開(kāi)始模型集變得越來(lái)越復(fù)雜。我們從每個(gè)模型集中選出一個(gè) 分類(lèi)器(f1,f2,...,fN),使得每個(gè)分類(lèi)器均在各自的模型集中使得損失函數(shù)最小。這樣 我們就同時(shí)獲得上面兩個(gè)問(wèn)題(模型復(fù)雜度以及候選分類(lèi)器在訓(xùn)練集上的損失)的答案。 利用Vapnik的界在模型復(fù)雜度與訓(xùn)練集上的表現(xiàn)進(jìn)行折中,我們就可以找到一個(gè)最佳的分 類(lèi)器了。 這個(gè)指導(dǎo)原則其實(shí)也可以從“奧姆斯剃刀理論(如無(wú)必要勿增實(shí)體)”來(lái)解釋。 但要找到能夠?qū)崿F(xiàn)結(jié)構(gòu)風(fēng)險(xiǎn)最小化的算法是很困難的,Vapnik找了二十多年(我的估計(jì) )。最后找到了SVM,并且SVM也成了最好的分類(lèi)算法之一,但戲劇化的是:SVM為什么會(huì)有 如此優(yōu)異的性能卻并不是前面的margin theory以及結(jié)構(gòu)風(fēng)險(xiǎn)最小化所能解釋的。直到今天 這個(gè)問(wèn)題似乎還不是很清楚,后面我還想稍微(我知道的非常有限)提一些這方面的工作 。 實(shí)現(xiàn)結(jié)構(gòu)風(fēng)險(xiǎn)最小化存在兩個(gè)困難,首先如前面提過(guò)的大多數(shù)的模型集的VC維是無(wú)法得 到的,其次便是這一組嵌套的模型集還應(yīng)當(dāng)足夠的復(fù)雜(也就是有足夠的能力去解釋復(fù)雜 的數(shù)據(jù))。前面的一個(gè)問(wèn)題使用線性模型集可以得到其相應(yīng)的VC維,并且通過(guò)使用margin ,我們還可以得到一個(gè)維數(shù)無(wú)關(guān)的對(duì)于模型集的VC維的估計(jì)。后面一個(gè)問(wèn)題的答案則要由 核方法(kernel methods)來(lái)回答。 線性模型集無(wú)法處理線性不可分的情況,如當(dāng)年的感知器無(wú)法處理異或問(wèn)題,從而使得 神經(jīng)網(wǎng)絡(luò)沉寂多年。所謂異或問(wèn)題,假設(shè)4個(gè)樣本點(diǎn),+1類(lèi)為點(diǎn)(1,1)和點(diǎn)(-1,-1),-1類(lèi)為 點(diǎn)點(diǎn)(-1,1) 和點(diǎn)(1,-1),可見(jiàn)從所有2維平面上的直線中尋找,我們也無(wú)法找到一條直 線能夠解決到這樣的問(wèn)題(使得兩類(lèi)樣本分別在直線的兩側(cè))。 為了能夠處理線性不可分的情況,我們把樣本數(shù)據(jù)映射到更高維的空間去(x->ph(x), 簡(jiǎn)單起見(jiàn),我們假設(shè)x在d維歐氏空間,ph(x)在D維歐氏空間,D>d,ph(x)所在的空間常被 稱(chēng)之為“特征空間”),這時(shí)有個(gè)Cover's Theorem,這個(gè)定理保證在維度越高數(shù)據(jù)越可能 是線性可分。也就是我們將在這個(gè)高維空間尋找超平面,希望這個(gè)超平面能夠分類(lèi)訓(xùn)練數(shù) 據(jù)(使得兩類(lèi)樣本分別在直線的兩側(cè))。但空間的維數(shù)越高,所使用的超平面集的VC維就 越大。但這時(shí)上面的margin theory就可以發(fā)揮作用了,我們不使用超平面,而使用超平板 集,只要這些板的厚度足夠,我們依舊可以控制模型集的VC維(復(fù)雜度)。 那么直接使用某個(gè)函數(shù)ph(.)進(jìn)行映射,之后在ph(.)的空間中尋找最厚的并且能正確分 類(lèi)訓(xùn)練數(shù)據(jù)的超平板,不就可以了嗎?困難之處在于,由于往往我們需要將訓(xùn)練數(shù)據(jù)映射 到相當(dāng)高維的空間(比如手寫(xiě)數(shù)字識(shí)別中使用5階多項(xiàng)式就相當(dāng)于將數(shù)據(jù)映射到了一個(gè)10^ 10的高維空間),從而使得計(jì)算具體的ph(x)變得非常困難。 無(wú)論“奧姆斯剃刀理論”或者“沒(méi)有免費(fèi)的午餐(凡事都要付出代價(jià))”,都告訴我們 別做多余的事,仔細(xì)研究我們面臨的問(wèn)題(將數(shù)據(jù)映射到高維空間,尋找具有最大厚度的 超平面,使用這個(gè)超平面對(duì)將來(lái)的數(shù)據(jù)進(jìn)行分類(lèi)),我們其實(shí)不需要高維空間數(shù)據(jù)具體的 值(即我們不需要確切的ph(x)),我們只需要知道的是任意兩個(gè)輸入空間的數(shù)據(jù)Xi與Xj映 射到高維空間后他們之間的內(nèi)積(也就是 < ph(Xi), ph(Xj)>,內(nèi)積是一個(gè)標(biāo)量,可以看 作是兩個(gè)向量,ph(Xi)與 ph(Xj),之間的相似程度)。并且我們發(fā)現(xiàn)數(shù)學(xué)中有一類(lèi)雙變?cè)?/span> 函數(shù)就具有這樣的特性(k(Xi, Xj)= < ph(Xi), ph(Xj)>),這樣一來(lái)我們就不需要去考慮 具體映射(ph(x))的形式了,我們只需要知道通過(guò)使用核函數(shù)(前面的那個(gè)雙變?cè)瘮?shù)) 就可以得到數(shù)據(jù)被映射到高維空間后的內(nèi)積。 這樣一來(lái),只要一個(gè)學(xué)習(xí)算法只需要知道數(shù)據(jù)間的內(nèi)積,那么他就可以通過(guò)使用核函數(shù) 從而被核化,從而就有了核PCA,核LDA等等一大批kernel methods,也成就了Scholkopf, Smola等人。 仍舊是“沒(méi)有免費(fèi)的午餐”,我們不去求具體的映射(ph(x)),那么我們付出的代價(jià) 是什么呢?不知道具體的映射,僅知道任意向量間的內(nèi)積,使得我們無(wú)法知道向量與原點(diǎn) 的關(guān)系,但這一點(diǎn)對(duì)于我們尋找超平面劃分?jǐn)?shù)據(jù)是沒(méi)有影響的。 至此SVM產(chǎn)生所面臨的困難全被掃除了。有趣的是關(guān)于核函數(shù)的文章是1990發(fā)的,92年 Vapnik提出了SVM,不知kernel trick是不是老瓦的最后障礙。 放假在家手邊資料很少,所以很多都是信口開(kāi)河,大家要有所警惕啊
總結(jié)
以上是生活随笔為你收集整理的svm的一些理解(网上收集)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: learning中的数学
- 下一篇: svm涉及的一些概念