终极算法【6】——贝叶斯学派
本質(zhì)上,貝葉斯定理不僅僅是一個(gè)簡單的規(guī)則,當(dāng)你收到新的論據(jù)時(shí),它用來改變你對(duì)某個(gè)假設(shè)的信任度:如果論據(jù)和假設(shè)一致,假設(shè)成立的概率上升,反之則下降。
如果我們觀察一個(gè)即使沒有該原因也會(huì)發(fā)生的結(jié)果,那么能肯定的是,該原因的證據(jù)力不足。貝葉斯通過以下句子概括了:P(原因|結(jié)果)隨著P(結(jié)果),即結(jié)果的先驗(yàn)概率(也就是在原因不明的情況下結(jié)果出現(xiàn)的概率)的下降而下降。最終,其他條件不變,一個(gè)原因是前驗(yàn)的可能性越大,它該成為后驗(yàn)的可能性就越大。綜上所述,貝葉斯定理認(rèn)為: P(原因|結(jié)果)=P(原因)*P(結(jié)果|原因)/P(結(jié)果)
用A代替原因,用B代替結(jié)果,然后為了簡潔,把乘法符號(hào)刪掉,就得到貝葉斯字母公式: P(A|B)=P(A)P(B|A)/P(B)
貝葉斯定理之所以有用,是因?yàn)橥ǔ=o定原因后,我們就會(huì)知道結(jié)果,但我們想知道的是已知的結(jié)果,如何找出原因。貝葉斯定理讓我們由原因推出結(jié)果,又由結(jié)果知道原因,但其重要性遠(yuǎn)非如此。對(duì)于貝葉斯定理的信仰者來說,這個(gè)偽裝起來的公式其實(shí)就是機(jī)器學(xué)習(xí)中的F=ma等式,很多結(jié)論和應(yīng)用都是在這個(gè)等式的基礎(chǔ)上得出的。
貝葉斯學(xué)派回答的是:概率并非頻率,而是一種主觀程度上的信任。因此,用概率做什么由自己決定,而貝葉斯推理讓你做的事就是:通過新證據(jù)來修正你之前相信的東西,得到后來相信的東西。
如果學(xué)習(xí)算法利用貝葉斯定理,且給定原因時(shí),假定結(jié)果相互獨(dú)立,那么該學(xué)習(xí)算法被稱為“樸素貝葉斯分類器”。沒有人能肯定是誰發(fā)明了樸素貝葉斯算法。在1973年的一本模式識(shí)別教科書中,它被提到過,當(dāng)時(shí)并未注明出處,但它真正流行起來是在20世紀(jì)90年代,那時(shí)研究人員驚喜地發(fā)現(xiàn),它很多時(shí)候比許多更為復(fù)雜的學(xué)習(xí)算法還要準(zhǔn)確。
起初看起來可能不是這樣,但樸素貝葉斯法與感知器算法密切相關(guān)。感知器增加權(quán)重,而樸素貝葉斯法則增加概率,但如果你選中一種算法,后者會(huì)轉(zhuǎn)化成前者。兩者都可以概括成“如果......那么......”的簡單規(guī)則,這樣每個(gè)先例都會(huì)多多少少體現(xiàn)在結(jié)果中,而不是在結(jié)果中“全有或全無”。
HMM(隱藏的馬爾科夫模型)有助于模擬所有種類的序列,但它們遠(yuǎn)遠(yuǎn)不如符號(hào)學(xué)派的“如果......那么......”規(guī)則靈活,在這個(gè)規(guī)則中,任何事都可以以前提的形式出現(xiàn),而在任意下游規(guī)則中,一條規(guī)則的結(jié)果可以反過來當(dāng)作前提。然而,如果我們?cè)试S如此隨意的結(jié)構(gòu)在實(shí)踐中存在,那么需要掌握的概率數(shù)量將會(huì)呈爆發(fā)式增長。
很長一段時(shí)間,沒有人知道如何打破這個(gè)循環(huán),而研究者們只能求助于特別方案,比如將置信度估算與規(guī)則掛鉤,并以某種方式將它們聯(lián)合起來。20世紀(jì)80年代終于有了突破,朱亞迪.珀?duì)柊l(fā)明了一種新的表示方法:貝葉斯網(wǎng)絡(luò)。珀?duì)栆庾R(shí)到,擁有一個(gè)隨機(jī)變量之間復(fù)雜的依賴關(guān)系網(wǎng)絡(luò)也沒什么,只要每個(gè)變量僅僅直接依賴其他幾個(gè)變量。
在任意貝葉斯網(wǎng)絡(luò)中也是同樣的道理:為了獲得完整狀態(tài)的概率,只需將單個(gè)變量表格中相應(yīng)行上的概率相乘。因此,只要條件獨(dú)立性有效,轉(zhuǎn)換到更加簡潔的表示方法不會(huì)導(dǎo)致信息丟失。這樣我們就可以很容易算出極端非尋常狀態(tài)的概率,包括之前未觀察到的狀態(tài)。
我們可以看到樸素貝葉斯法、馬爾科夫鏈、HMM都是貝葉斯網(wǎng)絡(luò)的特殊例子。貝葉斯網(wǎng)絡(luò)對(duì)貝葉斯學(xué)派來說,就像邏輯與符號(hào)學(xué)者的關(guān)系:一種通用語,可以讓我們很好地對(duì)各式各樣的情形進(jìn)行編碼,然后設(shè)計(jì)出與這些情形相一致的算法。
推理的關(guān)鍵問題是你能否使填好的圖“看起來像一棵樹”,而不讓樹干變得太密。樹干的“厚度”是物種數(shù)量的大小。當(dāng)枝干過于茂密時(shí),我們的唯一選擇就是求助于近似推理。
有一個(gè)方法,珀?duì)栐陉P(guān)于貝葉斯網(wǎng)絡(luò)的書中,將其當(dāng)作練習(xí),也就是假裝圖形沒有閉環(huán),并來來回回傳播概率,直到這些概率集中于一點(diǎn)。
然而,最受人青睞的選擇就是借酒澆愁,喝的酩酊大醉,然后整夜都在跌跌撞撞。該選擇的技術(shù)術(shù)語為“馬爾科夫鏈蒙特卡洛理論”(MCMC):有“蒙特卡洛”這個(gè)部分,是因?yàn)檫@個(gè)方法涉及機(jī)遇;有“馬爾科夫鏈”部分,是因?yàn)樗婕安扇∫幌盗写胧?#xff0c;每個(gè)措施只能依賴于前一個(gè)措施。MCMC中的思想就是隨便走走,就像眾所周知的醉漢那樣,以這樣的方式從網(wǎng)絡(luò)的這個(gè)狀態(tài)跳到另一個(gè)狀態(tài)。
人們?cè)谡務(wù)揗CMC時(shí),往往把它當(dāng)作一種模擬,但它其實(shí)不是:馬爾科夫鏈不會(huì)模仿任何真實(shí)的程序,我們將其創(chuàng)造出來,目的是為了從貝葉斯網(wǎng)絡(luò)中有效生成樣本,因?yàn)樨惾~斯網(wǎng)絡(luò)本身就不是序變模式。
既然我們知道了如何解決推理難題,就可以從數(shù)據(jù)中掌握貝葉斯網(wǎng)絡(luò)了,因?yàn)閷?duì)貝葉斯學(xué)派來說,學(xué)習(xí)只是另一種形式的概率推理。需要做的只是運(yùn)用貝葉斯定理,把假設(shè)當(dāng)作可能的原因,把數(shù)據(jù)當(dāng)作觀察到的效果:
P(假設(shè)|數(shù)據(jù))=P(假設(shè))*P(數(shù)據(jù)|假設(shè))/P(數(shù)據(jù))
假設(shè)可以和整個(gè)貝葉斯網(wǎng)絡(luò)一樣復(fù)雜,或者和硬幣正面朝上的概率一樣簡單。
實(shí)際上,對(duì)于貝葉斯學(xué)派來說,沒有所謂的真相。你有一個(gè)優(yōu)先于假設(shè)的分布,在見到數(shù)據(jù)后,它變成了后驗(yàn)分布,這是貝葉斯定理給出的說法,也就是貝葉斯定理的全部。
貝葉斯法不僅僅適用于學(xué)習(xí)貝葉斯網(wǎng)絡(luò),還適用于其特殊情況。我們可以將先驗(yàn)分布置于任意級(jí)別的假設(shè)中(規(guī)則組、神經(jīng)網(wǎng)絡(luò)、程序),然后在給定數(shù)據(jù)的條件下,利用假設(shè)的可能性來對(duì)其進(jìn)行更新。貝葉斯學(xué)派的觀點(diǎn)就是,選擇什么表示方法由你決定,但得利用貝葉斯定理來掌握它。
我們可能認(rèn)為貝葉斯學(xué)派和符號(hào)學(xué)派相處的很好,因?yàn)榭紤]到他們都相信學(xué)習(xí)的第一原理方法,而不相信自然啟發(fā)的方法。事實(shí)不是這樣的,符號(hào)學(xué)派不喜歡概率,符號(hào)學(xué)派指出我們因?yàn)楦怕识冻龅母甙捍鷥r(jià)。反過來,貝葉斯學(xué)派指出了邏輯的脆弱性。
貝葉斯學(xué)派和符號(hào)學(xué)派一致認(rèn)為,先驗(yàn)假設(shè)不可避免,但對(duì)于他們認(rèn)可的先驗(yàn)知識(shí)種類卻存在分歧。對(duì)于貝葉斯學(xué)派來說,知識(shí)越過模型的結(jié)構(gòu)和參數(shù),進(jìn)入先驗(yàn)分布中。原則上,之前的參數(shù)可以是任意我們喜歡的值,但貝葉斯學(xué)派趨向于選擇信息量不足的先驗(yàn)假設(shè),因?yàn)檫@樣更易于計(jì)算。但符號(hào)學(xué)派則要靈活的多:作為先驗(yàn)知識(shí),你可以為自己的學(xué)習(xí)算法提供任何能用邏輯編碼的東西。
顯然,我們既需要邏輯,也需要概率。將聯(lián)結(jié)學(xué)派和進(jìn)化學(xué)派結(jié)合起來很簡單:只要改善網(wǎng)絡(luò)結(jié)構(gòu),利用反向傳播來掌握參數(shù)。但將邏輯和概率統(tǒng)一起來要困難的多。多數(shù)專家相信,將邏輯和概率相統(tǒng)一是不可能的。
到目前為止,我們談到的所有學(xué)派有一個(gè)共同點(diǎn):他們都學(xué)習(xí)研究現(xiàn)象中的顯式模型,無論它是一組規(guī)則、一個(gè)多層傳感器、一個(gè)基因計(jì)劃,還是一個(gè)貝葉斯網(wǎng)絡(luò)。當(dāng)他們沒有足夠的數(shù)據(jù)來做這件事時(shí),就會(huì)被難住。但類比學(xué)派可以從甚至小到一個(gè)例子的數(shù)據(jù)中學(xué)習(xí),因?yàn)樗麄兘^不會(huì)形成一種模式。
參考文獻(xiàn):
????終極算法. [美] Pedro Domingos 著. 黃芳萍 譯
總結(jié)
以上是生活随笔為你收集整理的终极算法【6】——贝叶斯学派的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C指针详解
- 下一篇: lab 常用配置参数 代码片段