從此我不再天真的初二作文
摘要:隨著統(tǒng)計學(xué)習(xí)理論的出現(xiàn),將經(jīng)驗風(fēng)險最小和泛化性相結(jié)合的SVM(支持向量機)成為當(dāng)今新的研究熱點。在參考大量文獻(xiàn)的基礎(chǔ)上,本文對SVM的本質(zhì)做了,同時給出了常用的SVM軟件,SVMlight,LIBSVM,為了深入了解SVM軟件實現(xiàn)機制,對相關(guān)的分解算法和優(yōu)化算法SMO也做了詳細(xì)的介紹。通過改進SVMlight和LIBSVM的瓶頸同時二者精華基礎(chǔ)上,本文給出了高效的HeroSVM,并對其實現(xiàn)機制給出了詳細(xì)的介紹。最后本文對SVMlight和LIBSVM在相同數(shù)據(jù)集上做了對比,并給出了性能分析。

第一章引言
1.1理論背景
基于數(shù)據(jù)的機器學(xué)習(xí)是現(xiàn)代智能技術(shù)中的重要方面,從觀測數(shù)據(jù)(樣本)出發(fā)尋找規(guī)律,利用這些規(guī)律對未來數(shù)據(jù)或無法觀測的數(shù)據(jù)進行預(yù)測。傳統(tǒng)的經(jīng)典的(參數(shù))統(tǒng)計估計方法,要求已知參數(shù)的相關(guān)形式,利用訓(xùn)練樣本用來估計參數(shù)的值,包括模式識別、神經(jīng)網(wǎng)絡(luò)等在內(nèi),但是這種方法有很大的局限性,因為需要已知樣本分布形式,而這需要花費很大代價,還有,隱含的思想是樣本數(shù)目趨于無窮大時的漸近理論,但在實際問題中,樣本數(shù)往往是有限的,因此這些理論上很優(yōu)秀的學(xué)習(xí)方法實際中表現(xiàn)卻可能不盡人意。還有就是經(jīng)驗非線性方法,如人工神經(jīng)網(wǎng)絡(luò)(ANN),這種方法利用已知樣本建立非線性模型,克服了傳統(tǒng)參數(shù)估計方法的困難,但是缺乏一種統(tǒng)一的數(shù)學(xué)理論,在這種基礎(chǔ)上現(xiàn)代的統(tǒng)計學(xué)習(xí)理論就誕生了。
統(tǒng)計學(xué)習(xí)理論[1](StatisticalLearningTheory或SLT)是一種專門研究小樣本情況下機器學(xué)習(xí)規(guī)律的理論.統(tǒng)計學(xué)習(xí)理論的一個核心概念就是VC維(VCDimension)概念,它是描述函數(shù)集或?qū)W習(xí)機器的復(fù)雜性或者說是學(xué)習(xí)能力(Capacityofthemachine)的一個重要指標(biāo),在此概念基礎(chǔ)上發(fā)展出了一系列關(guān)于統(tǒng)計學(xué)習(xí)的一致性(Consistency)、收斂速度、推廣性能(GeneralizationPerformance)等的重要結(jié)論。統(tǒng)計學(xué)習(xí)理論是建立在一套較堅實的理論基礎(chǔ)之上的,為解決有限樣本學(xué)習(xí)問題提供了一個統(tǒng)一的框架。它能將很多現(xiàn)有方法納入其中,有望幫助解決許多原來難以解決的問題(比如神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)選擇問題、局部極小點問題等。
1.2SVM介紹
V.Vapnik提出的支持向量機理論[2]是建立在統(tǒng)計學(xué)習(xí)理論的VC維理論和結(jié)構(gòu)風(fēng)險最小原理基礎(chǔ)上的,根據(jù)有限的樣本信息在模型的復(fù)雜性(即對特定訓(xùn)練樣本的學(xué)習(xí)精度,Accuracy)和學(xué)習(xí)能力(即無錯誤地識別任意樣本的能力)之間尋求最佳折衷,以期獲得最好的推廣能力(GeneralizatinAbility)。支持向量機方法的幾個主要優(yōu)點有:
1.它是專門針對有限樣本情況的,其目標(biāo)是得到現(xiàn)有信息下的最優(yōu)解而不僅僅是樣本數(shù)趨于無窮大時的最優(yōu)值;
2.算法最終將轉(zhuǎn)化成為一個二次型尋優(yōu)問題,從理論上說,得到的將是全局最優(yōu)點,解決了在神經(jīng)網(wǎng)絡(luò)方法中無法避免的局部極值問題;
3.算法將實際問題通過非線性變換轉(zhuǎn)換到高維的特征空間(FeatureSpace),在高維空間中構(gòu)造線性判別函數(shù)來實現(xiàn)原空間中的非線性判別函數(shù),特殊性質(zhì)能保證機器有較好的推廣能力,同時它巧妙地解決了維數(shù)問題,其算法復(fù)雜度與樣本維數(shù)無關(guān);已經(jīng)有許多事實證明,作為支持向量機最基本思想之一的結(jié)構(gòu)化風(fēng)險最小化原則[2](StructuralRiskMinimization,SRM)要優(yōu)于傳統(tǒng)的經(jīng)驗風(fēng)險最小化原則(EmpiricalRiskMinimization,ERM)。不同于ERM試圖最小化訓(xùn)練集上的誤差的做法,SRM試圖最小化VC維的上界,從而使其學(xué)習(xí)機獲得了更好的推廣性能,這恰恰是統(tǒng)計學(xué)習(xí)理論最重要的目標(biāo)之一。支持向量機的主要應(yīng)用領(lǐng)域有模式識別、函數(shù)逼近和概率密度估計等等。
*****因為涉及到太多的圖表和公式無法顯示,省略一部分。********
1.2SVM算法研究現(xiàn)狀
由于SVM方法較好的理論基礎(chǔ)和它在一些領(lǐng)域的應(yīng)用中表現(xiàn)出來的優(yōu)秀的推廣性能,近年來,許多關(guān)于SVM方法的研究,包括算法本身的改進和算法的實際應(yīng)用,都陸續(xù)被研究出來,比較出名的有SVMlight[4],SMO[5],LIBSVM[8],HeroSVM[11]等。
盡管SVM算法的性能在許多實際問題的應(yīng)用中得到了驗證,但是該算法在計算上存在著一些問題,包括訓(xùn)練算法速度慢、算法復(fù)雜而難以實現(xiàn)以及檢測階段運算量大等等。傳統(tǒng)的利用標(biāo)準(zhǔn)二次型優(yōu)化技術(shù)解決對偶問題的方法可能是訓(xùn)練算法慢的主要原因:首先,SVM方法需要計算和存儲核函數(shù)矩陣,當(dāng)樣本點數(shù)目較大時,需要很大的內(nèi)存,例如,當(dāng)樣本點數(shù)目超過4000時,存儲核函數(shù)矩陣需要多達(dá)128兆內(nèi)存;其次,SVM在二次型優(yōu)化過程中要進行大量的矩陣運算,多數(shù)情況下,優(yōu)化算法是占用算法時間的主要部分。SVM方法的訓(xùn)練運算速度是限制它的應(yīng)用的主要方面,近年來人們針對方法本身的特點提出了許多算法來解決對偶優(yōu)化問題。大多數(shù)算法的一個共同的思想就是循環(huán)迭代:將原問題分解成為若干子問題,按照某種迭代策略,通過反復(fù)求解子問題,最終使結(jié)果收斂到原問題的最優(yōu)解。
1.3分解理論
在真實世界中分解是解決復(fù)雜問題的常用策略,一個復(fù)雜問題分解為很多的子問題,而這些子問題可以很方便的應(yīng)用一些常用的技術(shù),而且這些子問題聯(lián)合起來又可以解決原始問題,這就是分解理論的意義所在。分解應(yīng)用到SVM中就是在每次迭代過程中,都將優(yōu)化問題中的拉格朗日乘子分為迭代過程需要改變的自由變量集合B和暫時不變的固定變量N兩部分,當(dāng)優(yōu)化條件被破壞時,從B集合中選擇變量進行更改,其余的變量保持不變,從而將二次規(guī)劃問題進行分解。
根據(jù)子問題的劃分和迭代策略的不同,又可以大致分為兩類。第一類是所謂的“塊算法[3]”(chunkingalgorithm)!皦K算法”基于的是這樣一個事實,即去掉Lagrange乘子等于零的訓(xùn)練樣本不會影響原問題的解。對于給定的訓(xùn)練樣本集,如果其中的支持向量是已知的,優(yōu)化算法就可以排除非支持向量,只需對支持向量計算權(quán)值(即Lagrange乘子)即可。實際上支持向量是未知的,因此“塊算法”的目標(biāo)就是通過某種迭代方式逐步排除非支持向量。具體的作法是,選擇一部分樣本構(gòu)成樣本集進行訓(xùn)練,剔除其中的非支持向量,并用訓(xùn)練結(jié)果對剩余樣本進行檢驗,將不符合訓(xùn)練結(jié)果(一般是指違反KKT條件)的樣本(或其中的一部分)與本次結(jié)果的支持向量合并成為一個新的樣本集,然后重新訓(xùn)練。如此重復(fù)下去直到獲得最優(yōu)結(jié)果。當(dāng)支持向量的數(shù)目遠(yuǎn)遠(yuǎn)小于訓(xùn)練樣本數(shù)目時,“塊算法”顯然能夠大大提高運算速度。
然而,如果支持向量的數(shù)目本身就比較多,隨著算法迭代次數(shù)的增多,樣本集也會越來越大,算法依舊會變得十分復(fù)雜。因此第二類方法把問題分解成為固定樣本數(shù)[5]的子問題:樣本集的大小固定在算法速度可以容忍的限度內(nèi),迭代過程中只是將剩余樣本中部分“情況最糟的樣本”與樣本集中的樣本進行等量交換,即使支持向量的個數(shù)超過樣本集的大小,也不改變樣本集的規(guī)模,而只對支持向量中的一部分進行優(yōu)化。
固定樣本集的方法和塊算法的主要區(qū)別在于:塊算法的目標(biāo)函數(shù)中僅包含當(dāng)前樣本集中的樣本,而固定樣本集方法雖然優(yōu)化變量僅包含樣本,但目標(biāo)函數(shù)卻包含整個訓(xùn)練樣本集,即樣本集之外的樣本的Lagrange乘子固定為前一次迭代的結(jié)果,而不是像塊算法中那樣設(shè)為0。而且固定樣本集方法還涉及到一個確定換出樣本的問題(因為換出的樣本可能是支持向量)。這樣,這一類算法的關(guān)鍵就在于找到一種合適的迭代策略使得算法最終能收斂并且較快地收斂到最優(yōu)結(jié)果,通過這里也可以看出固定集方法的時間要比塊算法慢的多。
固定樣本集的方法最早大概是由Osunaetal[6].提出的。在[7]中,EdgarOsunal等人介紹了一種具體的算法并對人臉識別問題進行了實驗。將樣本集分為兩個集合B和N,集合B作為子問題樣本集進行SVM訓(xùn)練,集合N中所有樣本的Lagrange乘子均置為零。顯然,如果把集合B中對應(yīng)Lagrange乘子為零的樣本i(即ai=0,iB)與集合N中的樣本j(即ai=0,jN)交換,不會改變子問題與原問題的可行性(即仍舊滿足約束條件);而且,當(dāng)且僅當(dāng)樣本滿足條件KKT條件時,替換后的子問題的最優(yōu)解不變。于是可以按照以下步驟迭代求解:
1.選擇集合B,構(gòu)造子問題;
2.求子問題最優(yōu)解ai,iB及b,并置aj=0,jN;
3.找出其中不滿足條件KKT的樣本j,與B中滿足ai=0的樣本i交換,構(gòu)成新的子問題。[7]證明了這種迭代算法的收斂性,并給出了兩階多項式分類器在人臉識別問題中的應(yīng)用結(jié)果。需要說明的是,文中沒有說明集合B的大小是否改變。 前面提到,固定樣本集方法的關(guān)鍵在于選擇一種合適的換入換出策略。Joachims指出如果采用某種啟發(fā)式的迭代策略將會提高算法的收斂速度。最近JohnC.Platt在[5]中提出SMO(SequentialMinimalOptimization或SMO)算法。將樣本集的規(guī)模減到最小——兩個樣本。之所以需要兩個樣本是因為等式線性約束的存在使得同時至少有兩個Lagrange乘子發(fā)生變化。由于只有兩個變量,而且應(yīng)用等式約束可以將其中一個用另一個表示出來,所以迭代過程中每一步的子問題的最優(yōu)解可以直接用解析的方法求出來。這樣,算法避開了復(fù)雜的數(shù)值求解優(yōu)化問題的過程;此外,Platt[5]還設(shè)計了一個兩層嵌套循環(huán)分別選擇進入樣本集的樣本,這種啟發(fā)式策略大大加快了算法的收斂速度。標(biāo)準(zhǔn)樣本集的實驗結(jié)果證明,SMO表現(xiàn)出在速度方面的良好性能。子問題的規(guī)模和迭代的次數(shù)是一對矛盾,SMO將樣本集的規(guī)模減少到2,一個直接的后果就是迭代次數(shù)的增加。所以SMO實際上是將求解子問題的耗費轉(zhuǎn)嫁到迭代上,然后在迭代上尋求快速算法。但是,SMO迭代策略的思想是可以用到其他迭代算法中的,可見,SMO還有改進的余地。
本文的第二部分將分別就幾種著名的軟件進行介紹,給出其基于的理論基礎(chǔ)。第三部分就第二部分進行分析,對比各軟件之間的差異,給出分析結(jié)論。最后對其應(yīng)用前景和改進空間進行討論。
【從此我不再天真的初二作文】相關(guān)文章:
我從此不再煩惱作文02-27
從此,我不再煩惱作文(精選18篇)08-16
從此我不再期待初三作文06-29
(精選)從此不再作文500字12-11
從此不再作文500字10-14
從此我不再說謊作文(通用31篇)03-05
從此我不再害怕作文500字(精選32篇)06-11
從此,我不再悲傷初三作文(精選13篇)12-16
- 相關(guān)推薦