3 統(tǒng)計(jì)機(jī)器學(xué)習(xí)
統(tǒng)計(jì)機(jī)器學(xué)習(xí)是近幾年被廣泛應(yīng)用的機(jī)器學(xué)習(xí)方法,事實(shí)上,這是一類相當(dāng)廣泛的方法。更為廣義地說, 這是一類方法學(xué)。當(dāng)我們獲得一組對問題世界的觀測數(shù)據(jù), 如果我們不能或者沒有必要對其建立嚴(yán)格物理模型,我們可以使用數(shù)學(xué)的方法, 從這組數(shù)據(jù)推算問題世界的數(shù)學(xué)模型, 這類模型一般沒有對問題世界的物理解釋, 但是, 在輸入輸出之間的關(guān)系上反映了問題世界的實(shí)際, 這就是“黑箱”原理。一般來說,“黑箱”原理是基于統(tǒng)計(jì)方法的(假設(shè)問題世界滿足一種統(tǒng)計(jì)分布) , 統(tǒng)計(jì)機(jī)器學(xué)習(xí)本質(zhì)上就是“黑箱”原理的延續(xù)。與感知機(jī)時(shí)代不同, 由于這類機(jī)器學(xué)習(xí)科學(xué)基礎(chǔ)是感知機(jī)的延續(xù), 因此,神經(jīng)科學(xué)基礎(chǔ)不是近代統(tǒng)計(jì)機(jī)器學(xué)習(xí)關(guān)注的主要問題, 數(shù)學(xué)方法成為研究的焦點(diǎn)。
3.1 統(tǒng)計(jì)機(jī)器學(xué)習(xí)概述
統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法的基本假設(shè)是同類數(shù)據(jù)具有一定的統(tǒng)計(jì)規(guī)律性。其目標(biāo)是從假設(shè)空間(也即模型空間,從輸入空間到輸出空間的映射函數(shù)空間)中尋找一個(gè)最優(yōu)的模型。
通過對統(tǒng)計(jì)機(jī)器學(xué)習(xí)目標(biāo)的描述,我們可以發(fā)現(xiàn)統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法主要研究三個(gè)問題:
(1)模型假設(shè):這個(gè)問題解決的是如何將樣本從輸入空間轉(zhuǎn)化到輸出空間的,它往往是一個(gè)后驗(yàn)概率或者是一個(gè)映射函數(shù)。
(2)模型選擇:模型所在空間也就是假設(shè)空間,往往包含無窮多個(gè)滿足假設(shè)的可選模型,如何從假設(shè)空間中選擇一個(gè)最優(yōu)模型,應(yīng)該采用怎樣的選擇標(biāo)準(zhǔn)?這就是模型選擇應(yīng)該解決的問題。一般采用損失函數(shù)來制定模型選擇策略,將模型選擇轉(zhuǎn)化為一個(gè)最優(yōu)化問題來求解。常用的損失函數(shù)包括0-1損失、平方誤差損失、絕對損失、對數(shù)損失等等。通常我們也會(huì)在損失函數(shù)中加上正則化項(xiàng),從而降低模型的復(fù)雜性,提高模型的泛化能力,拒絕Overfitting。
(3)學(xué)習(xí)算法:學(xué)習(xí)算法是用來解決最優(yōu)化問題的方法。在給定損失函數(shù)后,如何快速找到損失函數(shù)約定條件下的最優(yōu)解就是學(xué)習(xí)算法需要解決的問題。常用的學(xué)習(xí)算法包括梯度下降、擬牛頓法等等。
統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法的三個(gè)問題都是非常值得研究的,對于模型假設(shè)這個(gè)問題,如果模型都選擇錯(cuò)誤,無論后面如何選擇模型,也都難以反映數(shù)據(jù)集的正確分布。因此,首先需要選擇對模型做出正確假設(shè),如何選擇模型的假設(shè)空間是一個(gè)學(xué)問,除掉交叉驗(yàn)證的方法之外還有不少其他方法。模型選擇的關(guān)鍵在于如何設(shè)計(jì)損失函數(shù),而損失函數(shù)通常包括損失項(xiàng)和正則化項(xiàng),不同的模型選擇策略通常選出的模型也非常不同,從而導(dǎo)致模型的預(yù)測效果也大大不同。學(xué)習(xí)算法比較定式,不同的學(xué)習(xí)算法不僅學(xué)習(xí)的效率不同,而且學(xué)習(xí)出來的效果也不一樣。
3.2 統(tǒng)計(jì)機(jī)器學(xué)習(xí)的理論基礎(chǔ)
機(jī)器學(xué)習(xí)早期研究的特點(diǎn)是以劃分為主要研究課題, 這個(gè)考慮一直延續(xù)到Vapnik 在20 世紀(jì)70 年代發(fā)展的關(guān)于有限樣本統(tǒng)計(jì)理論, 并于20 世紀(jì)80 年代末流傳到西方之后,在泛化能力意義下指導(dǎo)算法設(shè)計(jì)才成為人們關(guān)注的主要問題, 這是本文需要進(jìn)一步討論的問題。
盡管以O(shè)pen 問題驅(qū)動(dòng)的BP 算法研究大大推動(dòng)了感知機(jī)研究方向的發(fā)展, 然而, 近十年計(jì)算機(jī)科學(xué)與技術(shù)的快速發(fā)展,使得人們獲得數(shù)據(jù)的能力大大提高, BP 這類算法已不能完全適應(yīng)這種需求, 同時(shí),Minsky 的算法設(shè)計(jì)原則愈顯重要。
然而,沿著Barlow 路線的機(jī)器學(xué)習(xí)研究并沒有終止,自1992年開始,Vapnik 將有限樣本統(tǒng)計(jì)理論介紹給全世界, 并出版了統(tǒng)計(jì)機(jī)器學(xué)習(xí)理論的著作盡管這部著作更多地是從科學(xué)、哲學(xué)上討論了機(jī)器學(xué)習(xí)的諸多問題, 但是, 其暗示的算法設(shè)計(jì)思想對以后機(jī)器學(xué)習(xí)算法研究產(chǎn)生了重要的影響。
Vapnik 的研究主要涉及機(jī)器學(xué)習(xí)中兩個(gè)相互關(guān)聯(lián)的問題, 泛化問題與表示問題。前者包含兩個(gè)方面的內(nèi)容: 其一, 有限樣本集合的統(tǒng)計(jì)理論; 其二, 概率近似正確的泛化描述。而后者則主要集中在核函數(shù), 由此, 將算法設(shè)計(jì)建立在線性優(yōu)化理論之上。
Valiant的“概率近似正確”學(xué)習(xí)的考慮在機(jī)器學(xué)習(xí)的發(fā)展中扮演了一個(gè)重要的角色。1984 年,Valiant 提出了機(jī)器學(xué)習(xí)的一個(gè)重要考慮, 他建議評價(jià)機(jī)器學(xué)習(xí)算法應(yīng)該以“概率近似正確(PAC)”為基礎(chǔ),而不是以傳統(tǒng)模式識別理論中以概率為1 成立為基礎(chǔ),由此, 他引入了類似在數(shù)學(xué)分析中的ε-δ語言來描述PAC, 這個(gè)考慮對近代機(jī)器學(xué)習(xí)研究產(chǎn)生了重要的影響。首先, 統(tǒng)計(jì)機(jī)器學(xué)習(xí)理論中泛化不等式的推導(dǎo)均以這個(gè)假設(shè)為基礎(chǔ);其次, 基于這個(gè)考慮的“弱可學(xué)習(xí)理論”,為研究基于Hebb 路線的學(xué)習(xí)算法設(shè)計(jì)奠定了理論基礎(chǔ), 并產(chǎn)生被廣泛應(yīng)用的集群機(jī)器學(xué)習(xí)理念( ensemble )。
3.3 統(tǒng)計(jì)機(jī)器學(xué)習(xí)的研究現(xiàn)狀
3.3.1SVM與Deep Learning的競爭
當(dāng)前統(tǒng)計(jì)學(xué)習(xí)領(lǐng)域最熱門方法主要有deep learning和SVM(supportvector machine),它們是統(tǒng)計(jì)學(xué)習(xí)的代表方法。
可以認(rèn)為神經(jīng)網(wǎng)絡(luò)與支持向量機(jī)都源自于感知機(jī)(Perceptron)。感知機(jī)是由Rosenblatt發(fā)明的線性分類模型(1958年)。感知機(jī)對線性分類有效,但現(xiàn)實(shí)中的分類問題通常是非線性的。
神經(jīng)網(wǎng)絡(luò)與支持向量機(jī)(包含核方法)都是非線性分類模型。1986年,Rummelhart與McClelland發(fā)明了神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法Back Propagation。后來,Vapnik等人于1992年提出了支持向量機(jī)。神經(jīng)網(wǎng)絡(luò)是多層(通常是三層)的非線性模型,支持向量機(jī)利用核技巧把非線性問題轉(zhuǎn)換成線性問題。
神經(jīng)網(wǎng)絡(luò)與支持向量機(jī)一直處于“競爭”關(guān)系。SVM應(yīng)用核函數(shù)的展開定理,無需知道非線性映射的顯式表達(dá)式;由于是在高維特征空間中建立線性學(xué)習(xí)機(jī),所以與線性模型相比,不但幾乎不增加計(jì)算的復(fù)雜性,而且在某種程度上避免了“維數(shù)災(zāi)難”。而早先的神經(jīng)網(wǎng)絡(luò)算法比較容易過訓(xùn)練,大量的經(jīng)驗(yàn)參數(shù)需要設(shè)置;訓(xùn)練速度比較慢,在層次比較少(小于等于3)的情況下效果并不比其它方法更優(yōu)。
神經(jīng)網(wǎng)絡(luò)研究領(lǐng)域領(lǐng)軍者Hinton在2006年提出了神經(jīng)網(wǎng)絡(luò)Deep Learning算法,使神經(jīng)網(wǎng)絡(luò)的能力大大提高,向支持向量機(jī)發(fā)出挑戰(zhàn)。Deep Learning假設(shè)神經(jīng)網(wǎng)絡(luò)是多層的,首先用RestrictedBoltzmann Machine(非監(jiān)督學(xué)習(xí))學(xué)習(xí)網(wǎng)絡(luò)的結(jié)構(gòu),然后再通過Back Propagation(監(jiān)督學(xué)習(xí))學(xué)習(xí)網(wǎng)絡(luò)的權(quán)值。
3.3.2 支持向量機(jī)SVM
SVM方法是通過一個(gè)非線性映射p,把樣本空間映射到一個(gè)高維乃至無窮維的特征空間中(Hilber空間),使得在原來的樣本空間中非線性可分的問題轉(zhuǎn)化為在特征空間中的線性可分的問題。升維,就是把樣本向高維空間做映射,一般情況下這會(huì)增加計(jì)算的復(fù)雜性,甚至?xí)稹熬S數(shù)災(zāi)難”,因而人們很少問津。但是作為分類、回歸等問題來說,很可能在低維樣本空間無法線性處理的樣本集,在高維特征空間中卻可以通過一個(gè)線性超平面實(shí)現(xiàn)線性劃分(或回歸)。一般的升維都會(huì)帶來計(jì)算的復(fù)雜化,SVM方法巧妙地解決了這個(gè)難題:應(yīng)用核函數(shù)的展開定理,就不需要知道非線性映射的顯式表達(dá)式;由于是在高維特征 空間中建立線性學(xué)習(xí)機(jī),所以與線性模型相比,不但幾乎不增加計(jì)算的復(fù)雜性,而且在某種程度上避免了“維數(shù)災(zāi)難”.這一切要?dú)w功于核函數(shù)的展開和計(jì)算理論.
選擇不同的核函數(shù),可以生成不同的SVM,常用的核函數(shù)有以下4種:
⑴ 性核函數(shù)K(x,y)=x·y;
⑵多項(xiàng)式核函數(shù)K(x,y)=[(x·y)+1]d;
⑵ 向基函數(shù)K(x,y)=exp(-|x-y|^2/d^2)
⑶ 層神經(jīng)網(wǎng)絡(luò)核函數(shù)K(x,y)=tanh(a(x·y)+b).
3.3.2.1 SVM有如下主要幾個(gè)特點(diǎn):
(1)非線性映射是SVM方法的理論基礎(chǔ),SVM利用內(nèi)積核函數(shù)代替向高維空間的非線性映射;
(2)對特征空間劃分的最優(yōu)超平面是SVM的目標(biāo),最大化分類邊際的思想是SVM方法的核心;
(3)支持向量是SVM的訓(xùn)練結(jié)果,在SVM分類決策中起決定作用的是支持向量。(4)SVM 是一種有堅(jiān)實(shí)理論基礎(chǔ)的新穎的小樣本學(xué)習(xí)方法。它基本上不涉及概率測度及大數(shù)定律等,因此不同于現(xiàn)有的統(tǒng)計(jì)方法。從本質(zhì)上看,它避開了從歸納到演繹的傳統(tǒng)過程,實(shí)現(xiàn)了高效的從訓(xùn)練樣本到預(yù)報(bào)樣本的“轉(zhuǎn)導(dǎo)推理”,大大簡化了通常的分類和回歸等問題。
(5)SVM 的最終決策函數(shù)只由少數(shù)的支持向量所確定,計(jì)算的復(fù)雜性取決于支持向量的數(shù)目,而不是樣本空間的維數(shù),這在某種意義上避免了“維數(shù)災(zāi)難”。
(6)少數(shù)支持向量決定了最終結(jié)果,這不但可以幫助我們抓住關(guān)鍵樣本、“剔除”大量冗余樣本,而且注定了該方法不但算法簡單,而且具有較好的“魯棒”性。這種“魯棒”性主要體現(xiàn)在:
①增、刪非支持向量樣本對模型沒有影響;
②支持向量樣本集具有一定的魯棒性;
③有些成功的應(yīng)用中,SVM 方法對核的選取不敏感
3.3.2.2 SVM的兩個(gè)不足:
(1) SVM算法對大規(guī)模訓(xùn)練樣本難以實(shí)施
由 于SVM是借助二次規(guī)劃來求解支持向量,而求解二次規(guī)劃將涉及m階矩陣的計(jì)算(m為樣本的個(gè)數(shù)),當(dāng)m數(shù)目很大時(shí)該矩陣的存儲(chǔ)和計(jì)算將耗費(fèi)大量的機(jī)器內(nèi)存 和運(yùn)算時(shí)間。針對以上問題的主要改進(jìn)有有J.Platt的SMO算法、T.Joachims的SVM、C.J.C.Burges等的PCGC、張學(xué)工的 CSVM以及O.L.Mangasarian等的SOR算法。
(2) 用SVM解決多分類問題存在困難
經(jīng)典的支持向量機(jī)算法只給出了二類分類的算法,而在數(shù)據(jù)挖掘的實(shí)際應(yīng)用中,一般要解決多類的分類問題。可以通過多個(gè)二類支持向量機(jī)的組合來解決。主要有一對多組合模式、一對一組合模式和SVM決策樹;再就是通過構(gòu)造多個(gè)分類器的組合來解決。主要原理是克服SVM固有的缺點(diǎn),結(jié)合其他算法的優(yōu)勢,解決多類問題的分類精度。如:與粗集理論結(jié)合,形成一種優(yōu)勢互補(bǔ)的多類問題的組合分類器。
3.3.2 DeepLearning
DeepLearning本身算是MachineLearning的一個(gè)分支,簡單可以理解為Neural Network的發(fā)展。大約二三十年前,Neural Network曾經(jīng)是ML領(lǐng)域特別火熱的一個(gè)方向,但是后來確慢慢淡出了,原因包括以下幾個(gè)方面:
(1) 比較容易過訓(xùn)練,參數(shù)比較難確定;
(2) 訓(xùn)練速度比較慢,在層次比較少(小于等于3)的情況下效果并不比其它方法更優(yōu);
所以中間有大約20多年的時(shí)間,神經(jīng)網(wǎng)絡(luò)被關(guān)注很少,這段時(shí)間基本上由SVM和Boosting算法主導(dǎo)。但是,Hinton堅(jiān)持下來并最終(和Bengio、Yann.lecun等)提成了一個(gè)實(shí)際可行的Deep Learning框架。
3.3.3.1 Deep Learning與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)異同
Deep Learning與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)的相同在于Deep Learning采用了神經(jīng)網(wǎng)絡(luò)相似的分層結(jié)構(gòu),系統(tǒng)由包括輸入層、隱層(多層)、輸出層組成的多層網(wǎng)絡(luò),只有相鄰層節(jié)點(diǎn)之間有連接,同一層以及跨層節(jié)點(diǎn)之間相互無連接,每一層可以看作是一個(gè)Logistic Regression模型;這種分層結(jié)構(gòu),是比較接近人類大腦的結(jié)構(gòu)的。
而為了克服神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的問題,DL采用了與神經(jīng)網(wǎng)絡(luò)很不同的訓(xùn)練機(jī)制。傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中,采用的是Back Propagation的方式進(jìn)行,簡單來講就是采用迭代的算法來訓(xùn)練整個(gè)網(wǎng)絡(luò),隨機(jī)設(shè)定初值,計(jì)算當(dāng)前網(wǎng)絡(luò)的輸出,然后根據(jù)當(dāng)前輸出和label之間的 差去改變前面各層的參數(shù),直到收斂(整體是一個(gè)梯度下降法)。而DeepLearning整體上是一個(gè)Layer-Wise的訓(xùn)練機(jī)制。這樣做的原因是因?yàn)?,如果采用Back Propagation的機(jī)制,對于一個(gè)Deep Network(7層以上),殘差傳播到最前面的層已經(jīng)變得太小,出現(xiàn)所謂的Gradient Diffusion。
3.3.3.2 Deep Learning訓(xùn)練過程
(1)采用無標(biāo)定數(shù)據(jù)(有標(biāo)定數(shù)據(jù)也可)分層訓(xùn)練各層參數(shù),這一步可以看作是一個(gè)無監(jiān)督訓(xùn)練過程,是和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)區(qū)別最大的部分(這個(gè)過程可以看作是feature learning過程):具體的,先用無標(biāo)定數(shù)據(jù)訓(xùn)練第一層,訓(xùn)練時(shí)可以采用auto-encoder來學(xué)習(xí)第一層的參數(shù)(這一層可以看作是得到一個(gè)使得輸出和輸入差別最小的三層神經(jīng)網(wǎng)絡(luò)的隱層),由于模型capacity的限制以及稀疏性約束,使得得到的模型能夠?qū)W習(xí)到數(shù)據(jù)本身的結(jié)構(gòu),從而得到比輸入更具有表示能力的特征;在學(xué)習(xí)得到第n-1層后,將n-1層的輸出作為第n層的輸入,訓(xùn)練第n層,由此分別得到各層的參數(shù);這里面需要重點(diǎn)理解auto-encoder以及sparse的機(jī)制的原理和作用??梢詤⒖歼@篇文章。
(2)基于第一步得到的各層參數(shù)進(jìn)一步fine-tune整個(gè)多層模型的參數(shù),這一步是一個(gè)有監(jiān)督訓(xùn)練過程;第一步類似神經(jīng)網(wǎng)絡(luò)的隨機(jī)初始化初值過程,由于DL 的第一步不是隨機(jī)初始化,而是通過學(xué)習(xí)輸入數(shù)據(jù)的結(jié)構(gòu)得到的,因而這個(gè)初值更接近全局最優(yōu),從而能夠取得更好的效果;所以deep learning效果好很大程度上歸功于第一步的feature learning過程。
總之,deep learning能夠得到更好地表示數(shù)據(jù)的feature,同時(shí)由于模型的層次、參數(shù)很多,capacity足夠,因此,模型有能力表示大規(guī)模數(shù)據(jù),所以對于圖像、語音這種特征不明顯(需要手工設(shè)計(jì)且很多沒有直觀物理含義)的問題,能夠在大規(guī)模訓(xùn)練數(shù)據(jù)上取得更好的效果。此外,從模式識別特征和分類器的角 度,deep learning框架將feature和分類器結(jié)合到一個(gè)框架中,用數(shù)據(jù)去學(xué)習(xí)feature,在使用中減少了手工設(shè)計(jì)feature的巨大工作量(這是目前工業(yè)界工程師付出努力最多的方面),因此,不僅僅效果可以更好,而且,使用起來也有很多方便之處。
評論
查看更多