小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

數(shù)學(xué)之美番外篇:平凡而又神奇的貝葉斯方法

 昵稱31750011 2016-12-03

概率論只不過是把常識用數(shù)學(xué)公式表達(dá)了出來。

——拉普拉斯

記得讀本科的時(shí)候,最喜歡到城里的計(jì)算機(jī)書店里面去閑逛,一逛就是好幾個(gè)小時(shí);有一次,在書店看到一本書,名叫貝葉斯方法。當(dāng)時(shí)數(shù)學(xué)系的課程還沒有學(xué)到概率統(tǒng)計(jì)。我心想,一個(gè)方法能夠?qū)iT寫出一本書來,肯定很牛逼。后來,我發(fā)現(xiàn)當(dāng)初的那個(gè)樸素歸納推理成立了——這果然是個(gè)牛逼的方法。

——題記

目錄

0. 前言
1. 歷史
    1.1 一個(gè)例子:自然語言的二義性
    1.2 貝葉斯公式
2. 拼寫糾正
3. 模型比較與貝葉斯奧卡姆剃刀
    3.1 再訪拼寫糾正
    3.2 模型比較理論(Model Comparasion)與貝葉斯奧卡姆剃刀(Bayesian Occam’s Razor)
    3.3 最小描述長度原則
    3.4 最優(yōu)貝葉斯推理
4. 無處不在的貝葉斯
    4.1 中文分詞
    4.2 統(tǒng)計(jì)機(jī)器翻譯
    4.3 貝葉斯圖像識別,Analysis by Synthesis   
    4.4 EM 算法與基于模型的聚類
    4.5 最大似然與最小二乘
5. 樸素貝葉斯方法(又名“愚蠢者的貝葉斯(idiot’s bayes)”)
    5.1 垃圾郵件過濾器
    5.2 為什么樸素貝葉斯方法令人詫異地好——一個(gè)理論解釋
6. 層級貝葉斯模型
    6.1 隱馬可夫模型(HMM)
7. 貝葉斯網(wǎng)絡(luò)

0. 前言

這是一篇關(guān)于貝葉斯方法的科普文,我會(huì)盡量少用公式,多用平白的語言敘述,多舉實(shí)際例子。更嚴(yán)格的公式和計(jì)算我會(huì)在相應(yīng)的地方注明參考資料。貝葉斯方法被證明是非常 general 且強(qiáng)大的推理框架,文中你會(huì)看到很多有趣的應(yīng)用。

1. 歷史

托馬斯·貝葉斯(Thomas Bayes)同學(xué)的詳細(xì)生平在這里。以下摘一段 wikipedia 上的簡介:

所謂的貝葉斯方法源于他生前為解決一個(gè)“逆概”問題寫的一篇文章,而這篇文章是在他死后才由他的一位朋友發(fā)表出來的。在貝葉斯寫這篇文章之前,人們已經(jīng)能夠計(jì)算“正向概率”,如“假設(shè)袋子里面有N個(gè)白球,M個(gè)黑球,你伸手進(jìn)去摸一把,摸出黑球的概率是多大”。而一個(gè)自然而然的問題是反過來:“如果我們事先并不知道袋子里面黑白球的比例,而是閉著眼睛摸出一個(gè)(或好幾個(gè))球,觀察這些取出來的球的顏色之后,那么我們可以就此對袋子里面的黑白球的比例作出什么樣的推測”。這個(gè)問題,就是所謂的逆概問題。

實(shí)際上,貝葉斯當(dāng)時(shí)的論文只是對這個(gè)問題的一個(gè)直接的求解嘗試,并不清楚他當(dāng)時(shí)是不是已經(jīng)意識到這里面包含著的深刻的思想。然而后來,貝葉斯方法席卷了概率論,并將應(yīng)用延伸到各個(gè)問題領(lǐng)域,所有需要作出概率預(yù)測的地方都可以見到貝葉斯方法的影子,特別地,貝葉斯是機(jī)器學(xué)習(xí)的核心方法之一。這背后的深刻原因在于,現(xiàn)實(shí)世界本身就是不確定的,人類的觀察能力是有局限性的(否則有很大一部分科學(xué)就沒有必要做了——設(shè)想我們能夠直接觀察到電子的運(yùn)行,還需要對原子模型爭吵不休嗎?),我們?nèi)粘K^察到的只是事物表面上的結(jié)果,沿用剛才那個(gè)袋子里面取球的比方,我們往往只能知道從里面取出來的球是什么顏色,而并不能直接看到袋子里面實(shí)際的情況。這個(gè)時(shí)候,我們就需要提供一個(gè)猜測(hypothesis,更為嚴(yán)格的說法是“假設(shè)”,這里用“猜測”更通俗易懂一點(diǎn)),所謂猜測,當(dāng)然就是不確定的(很可能有好多種乃至無數(shù)種猜測都能滿足目前的觀測),但也絕對不是兩眼一抹黑瞎蒙——具體地說,我們需要做兩件事情:1. 算出各種不同猜測的可能性大小。2. 算出最靠譜的猜測是什么。第一個(gè)就是計(jì)算特定猜測的后驗(yàn)概率,對于連續(xù)的猜測空間則是計(jì)算猜測的概率密度函數(shù)。第二個(gè)則是所謂的模型比較,模型比較如果不考慮先驗(yàn)概率的話就是最大似然方法。

1.1 一個(gè)例子:自然語言的二義性

下面舉一個(gè)自然語言的不確定性的例子。當(dāng)你看到這句話:

The girl saw the boy with a telescope.

你對這句話的含義有什么猜測?平常人肯定會(huì)說:那個(gè)女孩拿望遠(yuǎn)鏡看見了那個(gè)男孩(即你對這個(gè)句子背后的實(shí)際語法結(jié)構(gòu)的猜測是:The girl saw-with-a-telescope the boy )。然而,仔細(xì)一想,你會(huì)發(fā)現(xiàn)這個(gè)句子完全可以解釋成:那個(gè)女孩看見了那個(gè)拿著望遠(yuǎn)鏡的男孩(即:The girl saw the-boy-with-a-telescope )。那為什么平常生活中我們每個(gè)人都能夠迅速地對這種二義性進(jìn)行消解呢?這背后到底隱藏著什么樣的思維法則?我們留到后面解釋。

1.2 貝葉斯公式

貝葉斯公式是怎么來的?

我們還是使用 wikipedia 上的一個(gè)例子:

一所學(xué)校里面有 60% 的男生,40% 的女生。男生總是穿長褲,女生則一半穿長褲一半穿裙子。有了這些信息之后我們可以容易地計(jì)算“隨機(jī)選取一個(gè)學(xué)生,他(她)穿長褲的概率和穿裙子的概率是多大”,這個(gè)就是前面說的“正向概率”的計(jì)算。然而,假設(shè)你走在校園中,迎面走來一個(gè)穿長褲的學(xué)生(很不幸的是你高度近似,你只看得見他(她)穿的是否長褲,而無法確定他(她)的性別),你能夠推斷出他(她)是男生的概率是多大嗎?

一些認(rèn)知科學(xué)的研究表明(《決策與判斷》以及《Rationality for Mortals》第12章:小孩也可以解決貝葉斯問題),我們對形式化的貝葉斯問題不擅長,但對于以頻率形式呈現(xiàn)的等價(jià)問題卻很擅長。在這里,我們不妨把問題重新敘述成:你在校園里面隨機(jī)游走,遇到了 N 個(gè)穿長褲的人(仍然假設(shè)你無法直接觀察到他們的性別),問這 N 個(gè)人里面有多少個(gè)女生多少個(gè)男生。

你說,這還不簡單:算出學(xué)校里面有多少穿長褲的,然后在這些人里面再算出有多少女生,不就行了?

我們來算一算:假設(shè)學(xué)校里面人的總數(shù)是 U 個(gè)。60% 的男生都穿長褲,于是我們得到了 U * P(Boy) * P(Pants|Boy) 個(gè)穿長褲的(男生)(其中 P(Boy) 是男生的概率 = 60%,這里可以簡單的理解為男生的比例;P(Pants|Boy) 是條件概率,即在 Boy 這個(gè)條件下穿長褲的概率是多大,這里是 100% ,因?yàn)樗心猩即╅L褲)。40% 的女生里面又有一半(50%)是穿長褲的,于是我們又得到了 U * P(Girl) * P(Pants|Girl) 個(gè)穿長褲的(女生)。加起來一共是 U * P(Boy) * P(Pants|Boy) U * P(Girl) * P(Pants|Girl) 個(gè)穿長褲的,其中有 U * P(Girl) * P(Pants|Girl) 個(gè)女生。兩者一比就是你要求的答案。

下面我們把這個(gè)答案形式化一下:我們要求的是 P(Girl|Pants) (穿長褲的人里面有多少女生),我們計(jì)算的結(jié)果是 U * P(Girl) * P(Pants|Girl) / [U * P(Boy) * P(Pants|Boy) U * P(Girl) * P(Pants|Girl)] 。容易發(fā)現(xiàn)這里校園內(nèi)人的總數(shù)是無關(guān)的,可以消去。于是得到

P(Girl|Pants) = P(Girl) * P(Pants|Girl) / [P(Boy) * P(Pants|Boy) P(Girl) * P(Pants|Girl)]

注意,如果把上式收縮起來,分母其實(shí)就是 P(Pants) ,分子其實(shí)就是 P(Pants, Girl) 。而這個(gè)比例很自然地就讀作:在穿長褲的人( P(Pants) )里面有多少(穿長褲)的女孩( P(Pants, Girl) )。

上式中的 Pants 和 Boy/Girl 可以指代一切東西,所以其一般形式就是:

P(B|A) = P(A|B) * P(B) / [P(A|B) * P(B) P(A|~B) * P(~B) ]

收縮起來就是:

P(B|A) = P(AB) / P(A)

其實(shí)這個(gè)就等于:

P(B|A) * P(A) = P(AB)

難怪拉普拉斯說概率論只是把常識用數(shù)學(xué)公式表達(dá)了出來。

然而,后面我們會(huì)逐漸發(fā)現(xiàn),看似這么平凡的貝葉斯公式,背后卻隱含著非常深刻的原理。

2. 拼寫糾正

經(jīng)典著作《人工智能:現(xiàn)代方法》的作者之一 Peter Norvig 曾經(jīng)寫過一篇介紹如何寫一個(gè)拼寫檢查/糾正器的文章(原文在這里,徐宥的翻譯版在這里,這篇文章很深入淺出,強(qiáng)烈建議讀一讀),里面用到的就是貝葉斯方法,這里我們不打算復(fù)述他寫的文章,而是簡要地將其核心思想介紹一下。

首先,我們需要詢問的是:“問題是什么?

問題是我們看到用戶輸入了一個(gè)不在字典中的單詞,我們需要去猜測:“這個(gè)家伙到底真正想輸入的單詞是什么呢?”用剛才我們形式化的語言來敘述就是,我們需要求:

P(我們猜測他想輸入的單詞 | 他實(shí)際輸入的單詞)

這個(gè)概率。并找出那個(gè)使得這個(gè)概率最大的猜測單詞。顯然,我們的猜測未必是唯一的,就像前面舉的那個(gè)自然語言的歧義性的例子一樣;這里,比如用戶輸入: thew ,那么他到底是想輸入 the ,還是想輸入 thaw ?到底哪個(gè)猜測可能性更大呢?幸運(yùn)的是我們可以用貝葉斯公式來直接出它們各自的概率,我們不妨將我們的多個(gè)猜測記為 h1 h2 .. ( h 代表 hypothesis),它們都屬于一個(gè)有限且離散的猜測空間 H (單詞總共就那么多而已),將用戶實(shí)際輸入的單詞記為 D ( D 代表 Data ,即觀測數(shù)據(jù)),于是

P(我們的猜測1 | 他實(shí)際輸入的單詞)

可以抽象地記為:

P(h1 | D)

類似地,對于我們的猜測2,則是 P(h2 | D)。不妨統(tǒng)一記為:

P(h | D)

運(yùn)用一次貝葉斯公式,我們得到:

P(h | D) = P(h) * P(D | h) / P(D)

對于不同的具體猜測 h1 h2 h3 .. ,P(D) 都是一樣的,所以在比較 P(h1 | D) 和 P(h2 | D) 的時(shí)候我們可以忽略這個(gè)常數(shù)。即我們只需要知道:

P(h | D) ∝ P(h) * P(D | h) (注:那個(gè)符號的意思是“正比例于”,不是無窮大,注意符號右端是有一個(gè)小缺口的。)

這個(gè)式子的抽象含義是:對于給定觀測數(shù)據(jù),一個(gè)猜測是好是壞,取決于“這個(gè)猜測本身獨(dú)立的可能性大?。ㄏ闰?yàn)概率,Prior )”和“這個(gè)猜測生成我們觀測到的數(shù)據(jù)的可能性大小”(似然,Likelihood )的乘積。具體到我們的那個(gè) thew 例子上,含義就是,用戶實(shí)際是想輸入 the 的可能性大小取決于 the 本身在詞匯表中被使用的可能性(頻繁程度)大?。ㄏ闰?yàn)概率)和 想打 the 卻打成 thew 的可能性大?。ㄋ迫唬┑某朔e。

下面的事情就很簡單了,對于我們猜測為可能的每個(gè)單詞計(jì)算一下 P(h) * P(D | h) 這個(gè)值,然后取最大的,得到的就是最靠譜的猜測。

一點(diǎn)注記:Norvig 的拼寫糾正器里面只提取了編輯距離為 2 以內(nèi)的所有已知單詞。這是為了避免去遍歷字典中每個(gè)單詞計(jì)算它們的 P(h) * P(D | h) ,但這種做法為了節(jié)省時(shí)間帶來了一些誤差。但話說回來難道我們?nèi)祟愓娴幕厝ケ闅v每個(gè)可能的單詞來計(jì)算他們的后驗(yàn)概率嗎?不可能。實(shí)際上,根據(jù)認(rèn)知神經(jīng)科學(xué)的觀點(diǎn),我們首先根據(jù)錯(cuò)誤的單詞做一個(gè) bottom-up 的關(guān)聯(lián)提取,提取出有可能是實(shí)際單詞的那些候選單詞,這個(gè)提取過程就是所謂的基于內(nèi)容的提取,可以根據(jù)錯(cuò)誤單詞的一些模式片段提取出有限的一組候選,非??斓乜s小的搜索空間(比如我輸入 explaination ,單詞里面就有充分的信息使得我們的大腦在常數(shù)時(shí)間內(nèi)把可能性 narrow down 到 explanation 這個(gè)單詞上,至于具體是根據(jù)哪些線索——如音節(jié)——來提取,又是如何在生物神經(jīng)網(wǎng)絡(luò)中實(shí)現(xiàn)這個(gè)提取機(jī)制的,目前還是一個(gè)沒有弄清的領(lǐng)域)。然后,我們對這有限的幾個(gè)猜測做一個(gè) top-down 的預(yù)測,看看到底哪個(gè)對于觀測數(shù)據(jù)(即錯(cuò)誤單詞)的預(yù)測效力最好,而如何衡量預(yù)測效率則就是用貝葉斯公式里面的那個(gè) P(h) * P(D | h) 了——雖然我們很可能使用了一些啟發(fā)法來簡化計(jì)算。后面我們還會(huì)提到這樣的 bottom-up 的關(guān)聯(lián)提取。

3. 模型比較與奧卡姆剃刀

3.1 再訪拼寫糾正

介紹了貝葉斯拼寫糾正之后,接下來的一個(gè)自然而然的問題就來了:“為什么?”為什么要用貝葉斯公式?為什么貝葉斯公式在這里可以用?我們可以很容易地領(lǐng)會(huì)為什么貝葉斯公式用在前面介紹的那個(gè)男生女生長褲裙子的問題里是正確的。但為什么這里?

為了回答這個(gè)問題,一個(gè)常見的思路就是想想:非得這樣嗎?因?yàn)槿绻阆氲搅肆硪环N做法并且證明了它也是靠譜的,那么將它與現(xiàn)在這個(gè)一比較,也許就能得出很有價(jià)值的信息。那么對于拼寫糾錯(cuò)問題你能想到其他方案嗎?

不管怎樣,一個(gè)最常見的替代方案就是,選擇離 thew 的編輯距離最近的。然而 the 和 thaw 離 thew 的編輯距離都是 1 。這可咋辦捏?你說,不慌,那還是好辦。我們就看到底哪個(gè)更可能被錯(cuò)打?yàn)?thew 就是了。我們注意到字母 e 和字母 w 在鍵盤上離得很緊,無名指一抽筋就不小心多打出一個(gè) w 來,the 就變成 thew 了。而另一方面 thaw 被錯(cuò)打成 thew 的可能性就相對小一點(diǎn),因?yàn)?e 和 a 離得較遠(yuǎn)而且使用的指頭相差一個(gè)指頭(一個(gè)是中指一個(gè)是小指,不像 e 和 w 使用的指頭靠在一塊——神經(jīng)科學(xué)的證據(jù)表明緊鄰的身體設(shè)施之間容易串位)。OK,很好,因?yàn)槟悻F(xiàn)在已經(jīng)是在用最大似然方法了,或者直白一點(diǎn),你就是在計(jì)算那個(gè)使得 P(D | h) 最大的 h 。

而貝葉斯方法計(jì)算的是什么?是 P(h) * P(D | h) 。多出來了一個(gè) P(h) 。我們剛才說了,這個(gè)多出來的 P(h) 是特定猜測的先驗(yàn)概率。為什么要摻和進(jìn)一個(gè)先驗(yàn)概率?剛才說的那個(gè)最大似然不是挺好么?很雄辯地指出了 the 是更靠譜的猜測。有什么問題呢?既然這樣,我們就從給最大似然找茬開始吧——我們假設(shè)兩者的似然程度是一樣或非常相近,這樣不就難以區(qū)分哪個(gè)猜測更靠譜了嗎?比如用戶輸入tlp ,那到底是 top 還是 tip ?(這個(gè)例子不怎么好,因?yàn)?top 和 tip 的詞頻可能仍然是接近的,但一時(shí)想不到好的英文單詞的例子,我們不妨就假設(shè) top 比 tip 常見許多吧,這個(gè)假設(shè)并不影響問題的本質(zhì)。)這個(gè)時(shí)候,當(dāng)最大似然不能作出決定性的判斷時(shí),先驗(yàn)概率就可以插手進(jìn)來給出指示——“既然你無法決定,那么我告訴你,一般來說 top 出現(xiàn)的程度要高許多,所以更可能他想打的是 top ”)。

以上只是最大似然的一個(gè)問題,即并不能提供決策的全部信息。

最大似然還有另一個(gè)問題:即便一個(gè)猜測與數(shù)據(jù)非常符合,也并不代表這個(gè)猜測就是更好的猜測,因?yàn)檫@個(gè)猜測本身的可能性也許就非常低。比如 MacKay 在《Information Theory : Inference and Learning Algorithms》里面就舉了一個(gè)很好的例子:-1 3 7 11 你說是等差數(shù)列更有可能呢?還是 -X^3 / 11 9/11*X^2 23/11 每項(xiàng)把前項(xiàng)作為 X 帶入后計(jì)算得到的數(shù)列?此外曲線擬合也是,平面上 N 個(gè)點(diǎn)總是可以用 N-1 階多項(xiàng)式來完全擬合,當(dāng) N 個(gè)點(diǎn)近似但不精確共線的時(shí)候,用 N-1 階多項(xiàng)式來擬合能夠精確通過每一個(gè)點(diǎn),然而用直線來做擬合/線性回歸的時(shí)候卻會(huì)使得某些點(diǎn)不能位于直線上。你說到底哪個(gè)好呢?多項(xiàng)式?還是直線?一般地說肯定是越低階的多項(xiàng)式越靠譜(當(dāng)然前提是也不能忽視“似然”P(D | h) ,明擺著一個(gè)多項(xiàng)式分布您愣是去拿直線擬合也是不靠譜的,這就是為什么要把它們兩者乘起來考慮。),原因之一就是低階多項(xiàng)式更常見,先驗(yàn)概率( P(h) )較大(原因之二則隱藏在 P(D | h) 里面),這就是為什么我們要用樣條來插值,而不是直接搞一個(gè) N-1 階多項(xiàng)式來通過任意 N 個(gè)點(diǎn)的原因。

以上分析當(dāng)中隱含的哲學(xué)是,觀測數(shù)據(jù)總是會(huì)有各種各樣的誤差,比如觀測誤差(比如你觀測的時(shí)候一個(gè) MM 經(jīng)過你一不留神,手一抖就是一個(gè)誤差出現(xiàn)了),所以如果過分去尋求能夠完美解釋觀測數(shù)據(jù)的模型,就會(huì)落入所謂的數(shù)據(jù)過配(overfitting)的境地,一個(gè)過配的模型試圖連誤差(噪音)都去解釋(而實(shí)際上噪音又是不需要解釋的),顯然就過猶不及了。所以 P(D | h) 大不代表你的 h (猜測)就是更好的 h。還要看 P(h) 是怎樣的。所謂奧卡姆剃刀精神就是說:如果兩個(gè)理論具有相似的解釋力度,那么優(yōu)先選擇那個(gè)更簡單的(往往也正是更平凡的,更少繁復(fù)的,更常見的)。

過分匹配的另一個(gè)原因在于當(dāng)觀測的結(jié)果并不是因?yàn)檎`差而顯得“不精確”而是因?yàn)檎鎸?shí)世界中對數(shù)據(jù)的結(jié)果產(chǎn)生貢獻(xiàn)的因素太多太多,跟噪音不同,這些偏差是一些另外的因素集體貢獻(xiàn)的結(jié)果,不是你的模型所能解釋的——噪音那是不需要解釋——一個(gè)現(xiàn)實(shí)的模型往往只提取出幾個(gè)與結(jié)果相關(guān)度很高,很重要的因素(cause)。這個(gè)時(shí)候觀察數(shù)據(jù)會(huì)傾向于圍繞你的有限模型的預(yù)測結(jié)果呈正態(tài)分布,于是你實(shí)際觀察到的結(jié)果就是這個(gè)正態(tài)分布的隨機(jī)取樣,這個(gè)取樣很可能受到其余因素的影響偏離你的模型所預(yù)測的中心,這個(gè)時(shí)候便不能貪心不足地試圖通過改變模型來“完美”匹配數(shù)據(jù),因?yàn)槟切┦菇Y(jié)果偏離你的預(yù)測的貢獻(xiàn)因素不是你這個(gè)有限模型里面含有的因素所能概括的,硬要打腫臉充胖子只能導(dǎo)致不實(shí)際的模型,舉個(gè)教科書例子:身高和體重的實(shí)際關(guān)系近似于一個(gè)二階多項(xiàng)式的關(guān)系,但大家都知道并不是只有身高才會(huì)對體重產(chǎn)生影響,物理世界影響體重的因素太多太多了,有人身材高大卻瘦得跟稻草,有人卻是橫長豎不長。但不可否認(rèn)的是總體上來說,那些特殊情況越是特殊就越是稀少,呈圍繞最普遍情況(胖瘦適中)的正態(tài)分布,這個(gè)分布就保證了我們的身高——體重相關(guān)模型能夠在大多數(shù)情況下做出靠譜的預(yù)測。但是——?jiǎng)偛耪f了,特例是存在的,就算不是特例,人有胖瘦,密度也有大小,所以完美符合身高——體重的某個(gè)假想的二階多項(xiàng)式關(guān)系的人是不存在的,我們又不是歐幾里德幾何世界當(dāng)中的理想多面體,所以,當(dāng)我們對人群隨機(jī)抽取了 N 個(gè)樣本(數(shù)據(jù)點(diǎn))試圖對這 N 個(gè)數(shù)據(jù)點(diǎn)擬合出一個(gè)多項(xiàng)式的話就得注意,它肯定得是二階多項(xiàng)式,我們要做的只是去根據(jù)數(shù)據(jù)點(diǎn)計(jì)算出多項(xiàng)式各項(xiàng)的參數(shù)(一個(gè)典型的方法就是最小二乘);它肯定不是直線(我們又不是稻草),也不是三階多項(xiàng)式四階多項(xiàng)式.. 如果硬要完美擬合 N 個(gè)點(diǎn),你可能會(huì)整出一個(gè) N-1 階多項(xiàng)式來——設(shè)想身高和體重的關(guān)系是 5 階多項(xiàng)式看看?

3.2 模型比較理論(Model Comparasion)與貝葉斯奧卡姆剃刀(Bayesian Occam’s Razor)

實(shí)際上,模型比較就是去比較哪個(gè)模型(猜測)更可能隱藏在觀察數(shù)據(jù)的背后。其基本思想前面已經(jīng)用拼寫糾正的例子來說明了。我們對用戶實(shí)際想輸入的單詞的猜測就是模型,用戶輸錯(cuò)的單詞就是觀測數(shù)據(jù)。我們通過:

P(h | D) ∝ P(h) * P(D | h)

來比較哪個(gè)模型最為靠譜。前面提到,光靠 P(D | h) (即“似然”)是不夠的,有時(shí)候還需要引入 P(h) 這個(gè)先驗(yàn)概率。奧卡姆剃刀就是說 P(h) 較大的模型有較大的優(yōu)勢,而最大似然則是說最符合觀測數(shù)據(jù)的(即 P(D | h) 最大的)最有優(yōu)勢。整個(gè)模型比較就是這兩方力量的拉鋸。我們不妨再舉一個(gè)簡單的例子來說明這一精神:你隨便找枚硬幣,擲一下,觀察一下結(jié)果。好,你觀察到的結(jié)果要么是“正”,要么是“反”(不,不是少林足球那枚硬幣:P ),不妨假設(shè)你觀察到的是“正”?,F(xiàn)在你要去根據(jù)這個(gè)觀測數(shù)據(jù)推斷這枚硬幣擲出“正”的概率是多大。根據(jù)最大似然估計(jì)的精神,我們應(yīng)該猜測這枚硬幣擲出“正”的概率是 1 ,因?yàn)檫@個(gè)才是能最大化 P(D | h) 的那個(gè)猜測。然而每個(gè)人都會(huì)大搖其頭——很顯然,你隨機(jī)摸出一枚硬幣這枚硬幣居然沒有反面的概率是“不存在的”,我們對一枚隨機(jī)硬幣是否一枚有偏硬幣,偏了多少,是有著一個(gè)先驗(yàn)的認(rèn)識的,這個(gè)認(rèn)識就是絕大多數(shù)硬幣都是基本公平的,偏得越多的硬幣越少見(可以用一個(gè) beta 分布來表達(dá)這一先驗(yàn)概率)。將這個(gè)先驗(yàn)正態(tài)分布 p(θ) (其中 θ 表示硬幣擲出正面的比例,小寫的 p 代表這是概率密度函數(shù))結(jié)合到我們的問題中,我們便不是去最大化 P(D | h) ,而是去最大化 P(D | θ) * p(θ) ,顯然 θ = 1 是不行的,因?yàn)?P(θ=1) 為 0 ,導(dǎo)致整個(gè)乘積也為 0 。實(shí)際上,只要對這個(gè)式子求一個(gè)導(dǎo)數(shù)就可以得到最值點(diǎn)。

以上說的是當(dāng)我們知道先驗(yàn)概率 P(h) 的時(shí)候,光用最大似然是不靠譜的,因?yàn)樽畲笏迫坏牟聹y可能先驗(yàn)概率非常小。然而,有些時(shí)候,我們對于先驗(yàn)概率一無所知,只能假設(shè)每種猜測的先驗(yàn)概率是均等的,這個(gè)時(shí)候就只有用最大似然了。實(shí)際上,統(tǒng)計(jì)學(xué)家和貝葉斯學(xué)家有一個(gè)有趣的爭論,統(tǒng)計(jì)學(xué)家說:我們讓數(shù)據(jù)自己說話。言下之意就是要摒棄先驗(yàn)概率。而貝葉斯支持者則說:數(shù)據(jù)會(huì)有各種各樣的偏差,而一個(gè)靠譜的先驗(yàn)概率則可以對這些隨機(jī)噪音做到健壯。事實(shí)證明貝葉斯派勝利了,勝利的關(guān)鍵在于所謂先驗(yàn)概率其實(shí)也是經(jīng)驗(yàn)統(tǒng)計(jì)的結(jié)果,譬如為什么我們會(huì)認(rèn)為絕大多數(shù)硬幣是基本公平的?為什么我們認(rèn)為大多數(shù)人的肥胖適中?為什么我們認(rèn)為膚色是種族相關(guān)的,而體重則與種族無關(guān)?先驗(yàn)概率里面的“先驗(yàn)”并不是指先于一切經(jīng)驗(yàn),而是僅指先于我們“當(dāng)前”給出的觀測數(shù)據(jù)而已,在硬幣的例子中先驗(yàn)指的只是先于我們知道投擲的結(jié)果這個(gè)經(jīng)驗(yàn),而并非“先天”。

然而,話說回來,有時(shí)候我們必須得承認(rèn),就算是基于以往的經(jīng)驗(yàn),我們手頭的“先驗(yàn)”概率還是均勻分布,這個(gè)時(shí)候就必須依賴用最大似然,我們用前面留下的一個(gè)自然語言二義性問題來說明這一點(diǎn):

The girl saw the boy with a telescope.

到底是 The girl saw-with-a-telescope the boy 這一語法結(jié)構(gòu),還是 The girl saw the-boy-with-a-telescope 呢?兩種語法結(jié)構(gòu)的常見程度都差不多(你可能會(huì)覺得后一種語法結(jié)構(gòu)的常見程度較低,這是事后偏見,你只需想想 The girl saw the boy with a book 就知道了。當(dāng)然,實(shí)際上從大規(guī)模語料統(tǒng)計(jì)結(jié)果來看后一種語法結(jié)構(gòu)的確稍稍不常見一丁點(diǎn),但是絕對不足以解釋我們對第一種結(jié)構(gòu)的強(qiáng)烈傾向)。那么到底為什么呢?

我們不妨先來看看 MacKay 在書中舉的一個(gè)漂亮的例子:

i1

圖中有多少個(gè)箱子?特別地,那棵書后面是一個(gè)箱子?還是兩個(gè)箱子?還是三個(gè)箱子?還是.. 你可能會(huì)覺得樹后面肯定是一個(gè)箱子,但為什么不是兩個(gè)呢?如下圖:

i2

很簡單,你會(huì)說:要是真的有兩個(gè)箱子那才怪了,怎么就那么巧這兩個(gè)箱子剛剛好顏色相同,高度相同呢?

用概率論的語言來說,你剛才的話就翻譯為:猜測 h 不成立,因?yàn)?P(D | h) 太小(太巧合)了。我們的直覺是:巧合(小概率)事件不會(huì)發(fā)生。所以當(dāng)一個(gè)猜測(假設(shè))使得我們的觀測結(jié)果成為小概率事件的時(shí)候,我們就說“才怪呢,哪能那么巧捏?!”

現(xiàn)在我們可以回到那個(gè)自然語言二義性的例子,并給出一個(gè)完美的解釋了:如果語法結(jié)構(gòu)是 The girl saw the-boy-with-a-telecope 的話,怎么那個(gè)男孩偏偏手里拿的就是望遠(yuǎn)鏡——一個(gè)可以被用來 saw-with 的東東捏?這也忒小概率了吧。他咋就不會(huì)拿本書呢?拿什么都好。怎么偏偏就拿了望遠(yuǎn)鏡?所以唯一的解釋是,這個(gè)“巧合”背后肯定有它的必然性,這個(gè)必然性就是,如果我們將語法結(jié)構(gòu)解釋為 The girl saw-with-a-telescope the boy 的話,就跟數(shù)據(jù)完美吻合了——既然那個(gè)女孩是用某個(gè)東西去看這個(gè)男孩的,那么這個(gè)東西是一個(gè)望遠(yuǎn)鏡就完全可以解釋了(不再是小概率事件了)。

自然語言二義性很常見,譬如上文中的一句話:

參見《決策與判斷》以及《Rationality for Mortals》第12章:小孩也可以解決貝葉斯問題

就有二義性:到底是參見這兩本書的第 12 章,還是僅僅是第二本書的第 12 章呢?如果是這兩本書的第 12 章那就是咄咄怪事了,怎么恰好兩本書都有第 12 章,都是講同一個(gè)問題,更詭異的是,標(biāo)題還相同呢?

注意,以上做的是似然估計(jì)(即只看 P(D | h) 的大小),不含先驗(yàn)概率。通過這兩個(gè)例子,尤其是那個(gè)樹后面的箱子的例子我們可以看到,似然估計(jì)里面也蘊(yùn)含著奧卡姆剃刀:樹后面的箱子數(shù)目越多,這個(gè)模型就越復(fù)雜。單個(gè)箱子的模型是最簡單的。似然估計(jì)選擇了更簡單的模型。

這個(gè)就是所謂的貝葉斯奧卡姆剃刀(Bayesian Occam’s Razor),因?yàn)檫@個(gè)剃刀工作在貝葉斯公式的似然(P(D | h) )上,而不是模型本身( P(h) )的先驗(yàn)概率上,后者是傳統(tǒng)的奧卡姆剃刀。關(guān)于貝葉斯奧卡姆剃刀我們再來看一個(gè)前面說到的曲線擬合的例子:如果平面上有 N 個(gè)點(diǎn),近似構(gòu)成一條直線,但絕不精確地位于一條直線上。這時(shí)我們既可以用直線來擬合(模型1),也可以用二階多項(xiàng)式(模型2)擬合,也可以用三階多項(xiàng)式(模型3),.. ,特別地,用 N-1 階多項(xiàng)式便能夠保證肯定能完美通過 N 個(gè)數(shù)據(jù)點(diǎn)。那么,這些可能的模型之中到底哪個(gè)是最靠譜的呢?前面提到,一個(gè)衡量的依據(jù)是奧卡姆剃刀:越是高階的多項(xiàng)式越是繁復(fù)和不常見。然而,我們其實(shí)并不需要依賴于這個(gè)先驗(yàn)的奧卡姆剃刀,因?yàn)橛腥丝赡軙?huì)爭辯說:你怎么就能說越高階的多項(xiàng)式越不常見呢?我偏偏覺得所有階多項(xiàng)式都是等可能的。好吧,既然如此那我們不妨就扔掉 P(h) 項(xiàng),看看 P(D | h) 能告訴我們什么。我們注意到越是高階的多項(xiàng)式,它的軌跡彎曲程度越是大,到了八九階簡直就是直上直下,于是我們不僅要問:一個(gè)比如說八階多項(xiàng)式在平面上隨機(jī)生成的一堆 N 個(gè)點(diǎn)偏偏恰好近似構(gòu)成一條直線的概率(即 P(D | h) )有多大?太小太小了。反之,如果背后的模型是一條直線,那么根據(jù)該模型生成一堆近似構(gòu)成直線的點(diǎn)的概率就大得多了。這就是貝葉斯奧卡姆剃刀。

這里只是提供一個(gè)關(guān)于貝葉斯奧卡姆剃刀的科普,強(qiáng)調(diào)直觀解釋,更多理論公式請參考 MacKay 的著作 《Information Theory : Inference and Learning Algorithms》第 28 章。

3.3 最小描述長度原則

貝葉斯模型比較理論與信息論有一個(gè)有趣的關(guān)聯(lián):

P(h | D) ∝ P(h) * P(D | h)

兩邊求對數(shù),將右式的乘積變成相加:

ln P(h | D) ∝ ln P(h) ln P(D | h)

顯然,最大化 P(h | D) 也就是最大化 ln P(h | D)。而 ln P(h) ln P(D | h) 則可以解釋為模型(或者稱“假設(shè)”、“猜測”)h 的編碼長度加上在該模型下數(shù)據(jù) D 的編碼長度。使這個(gè)和最小的模型就是最佳模型。

而究竟如何定義一個(gè)模型的編碼長度,以及數(shù)據(jù)在模型下的編碼長度則是一個(gè)問題。更多可參考 Mitchell 的 《Machine Learning》的 6.6 節(jié),或 Mackay 的 28.3 節(jié))

3.4 最優(yōu)貝葉斯推理

所謂的推理,分為兩個(gè)過程,第一步是對觀測數(shù)據(jù)建立一個(gè)模型。第二步則是使用這個(gè)模型來推測未知現(xiàn)象發(fā)生的概率。我們前面都是講的對于觀測數(shù)據(jù)給出最靠譜的那個(gè)模型。然而很多時(shí)候,雖然某個(gè)模型是所有模型里面最靠譜的,但是別的模型也并不是一點(diǎn)機(jī)會(huì)都沒有。譬如第一個(gè)模型在觀測數(shù)據(jù)下的概率是 0.5 。第二個(gè)模型是 0.4 ,第三個(gè)是 0.1 。如果我們只想知道對于觀測數(shù)據(jù)哪個(gè)模型最可能,那么只要取第一個(gè)就行了,故事到此結(jié)束。然而很多時(shí)候我們建立模型是為了推測未知的事情的發(fā)生概率,這個(gè)時(shí)候,三個(gè)模型對未知的事情發(fā)生的概率都會(huì)有自己的預(yù)測,僅僅因?yàn)槟骋粋€(gè)模型概率稍大一點(diǎn)就只聽他一個(gè)人的就太不民主了。所謂的最優(yōu)貝葉斯推理就是將三個(gè)模型對于未知數(shù)據(jù)的預(yù)測結(jié)論加權(quán)平均起來(權(quán)值就是模型相應(yīng)的概率)。顯然,這個(gè)推理是理論上的制高點(diǎn),無法再優(yōu)了,因?yàn)樗呀?jīng)把所有可能性都考慮進(jìn)去了。

只不過實(shí)際上我們是基本不會(huì)使用這個(gè)框架的,因?yàn)橛?jì)算模型可能非常費(fèi)時(shí)間,二來模型空間可能是連續(xù)的,即有無窮多個(gè)模型(這個(gè)時(shí)候需要計(jì)算模型的概率分布)。結(jié)果還是非常費(fèi)時(shí)間。所以這個(gè)被看作是一個(gè)理論基準(zhǔn)。

4. 無處不在的貝葉斯

以下我們再舉一些實(shí)際例子來說明貝葉斯方法被運(yùn)用的普遍性,這里主要集中在機(jī)器學(xué)習(xí)方面,因?yàn)槲也皇菍W(xué)經(jīng)濟(jì)的,否則還可以找到一堆經(jīng)濟(jì)學(xué)的例子。

4.1 中文分詞

貝葉斯是機(jī)器學(xué)習(xí)的核心方法之一。比如中文分詞領(lǐng)域就用到了貝葉斯。Google 研究員吳軍在《數(shù)學(xué)之美》系列中就有一篇是介紹中文分詞的,這里只介紹一下核心的思想,不做贅述,詳細(xì)請參考吳軍的文章(這里)。

分詞問題的描述為:給定一個(gè)句子(字串),如:

南京市長江大橋

如何對這個(gè)句子進(jìn)行分詞(詞串)才是最靠譜的。例如:

1. 南京市/長江大橋

2. 南京/市長/江大橋

這兩個(gè)分詞,到底哪個(gè)更靠譜呢?

我們用貝葉斯公式來形式化地描述這個(gè)問題,令 X 為字串(句子),Y 為詞串(一種特定的分詞假設(shè))。我們就是需要尋找使得 P(Y|X) 最大的 Y ,使用一次貝葉斯可得:

P(Y|X) ∝ P(Y)*P(X|Y)

用自然語言來說就是 這種分詞方式(詞串)的可能性 乘以 這個(gè)詞串生成我們的句子的可能性。我們進(jìn)一步容易看到:可以近似地將 P(X|Y) 看作是恒等于 1 的,因?yàn)槿我饧傧氲囊环N分詞方式之下生成我們的句子總是精準(zhǔn)地生成的(只需把分詞之間的分界符號扔掉即可)。于是,我們就變成了去最大化 P(Y) ,也就是尋找一種分詞使得這個(gè)詞串(句子)的概率最大化。而如何計(jì)算一個(gè)詞串:

W1, W2, W3, W4 ..

的可能性呢?我們知道,根據(jù)聯(lián)合概率的公式展開:P(W1, W2, W3, W4 ..) = P(W1) * P(W2|W1) * P(W3|W2, W1) * P(W4|W1,W2,W3) * .. 于是我們可以通過一系列的條件概率(右式)的乘積來求整個(gè)聯(lián)合概率。然而不幸的是隨著條件數(shù)目的增加(P(Wn|Wn-1,Wn-2,..,W1) 的條件有 n-1 個(gè)),數(shù)據(jù)稀疏問題也會(huì)越來越嚴(yán)重,即便語料庫再大也無法統(tǒng)計(jì)出一個(gè)靠譜的 P(Wn|Wn-1,Wn-2,..,W1) 來。為了緩解這個(gè)問題,計(jì)算機(jī)科學(xué)家們一如既往地使用了“天真”假設(shè):我們假設(shè)句子中一個(gè)詞的出現(xiàn)概率只依賴于它前面的有限的 k 個(gè)詞(k 一般不超過 3,如果只依賴于前面的一個(gè)詞,就是2元語言模型(2-gram),同理有 3-gram 、 4-gram 等),這個(gè)就是所謂的“有限地平線”假設(shè)。雖然這個(gè)假設(shè)很傻很天真,但結(jié)果卻表明它的結(jié)果往往是很好很強(qiáng)大的,后面要提到的樸素貝葉斯方法使用的假設(shè)跟這個(gè)精神上是完全一致的,我們會(huì)解釋為什么像這樣一個(gè)天真的假設(shè)能夠得到強(qiáng)大的結(jié)果。目前我們只要知道,有了這個(gè)假設(shè),剛才那個(gè)乘積就可以改寫成: P(W1) * P(W2|W1) * P(W3|W2) * P(W4|W3) .. (假設(shè)每個(gè)詞只依賴于它前面的一個(gè)詞)。而統(tǒng)計(jì) P(W2|W1) 就不再受到數(shù)據(jù)稀疏問題的困擾了。對于我們上面提到的例子“南京市長江大橋”,如果按照自左到右的貪婪方法分詞的話,結(jié)果就成了“南京市長/江大橋”。但如果按照貝葉斯分詞的話(假設(shè)使用 3-gram),由于“南京市長”和“江大橋”在語料庫中一起出現(xiàn)的頻率為 0 ,這個(gè)整句的概率便會(huì)被判定為 0 。 從而使得“南京市/長江大橋”這一分詞方式勝出。

一點(diǎn)注記:有人可能會(huì)疑惑,難道我們?nèi)祟愐彩腔谶@些天真的假設(shè)來進(jìn)行推理的?不是的。事實(shí)上,統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法所統(tǒng)計(jì)的東西往往處于相當(dāng)表層(shallow)的層面,在這個(gè)層面機(jī)器學(xué)習(xí)只能看到一些非常表面的現(xiàn)象,有一點(diǎn)科學(xué)研究的理念的人都知道:越是往表層去,世界就越是繁復(fù)多變。從機(jī)器學(xué)習(xí)的角度來說,特征(feature)就越多,成百上千維度都是可能的。特征一多,好了,高維詛咒就產(chǎn)生了,數(shù)據(jù)就稀疏得要命,不夠用了。而我們?nèi)祟惖挠^察水平顯然比機(jī)器學(xué)習(xí)的觀察水平要更深入一些,為了避免數(shù)據(jù)稀疏我們不斷地發(fā)明各種裝置(最典型就是顯微鏡),來幫助我們直接深入到更深層的事物層面去觀察更本質(zhì)的聯(lián)系,而不是在淺層對表面現(xiàn)象作統(tǒng)計(jì)歸納。舉一個(gè)簡單的例子,通過對大規(guī)模語料庫的統(tǒng)計(jì),機(jī)器學(xué)習(xí)可能會(huì)發(fā)現(xiàn)這樣一個(gè)規(guī)律:所有的“他”都是不會(huì)穿 bra 的,所有的“她”則都是穿的。然而,作為一個(gè)男人,卻完全無需進(jìn)行任何統(tǒng)計(jì)學(xué)習(xí),因?yàn)樯顚拥囊?guī)律就決定了我們根本不會(huì)去穿 bra 。至于機(jī)器學(xué)習(xí)能不能完成后者(像人類那樣的)這個(gè)推理,則是人工智能領(lǐng)域的經(jīng)典問題。至少在那之前,聲稱統(tǒng)計(jì)學(xué)習(xí)方法能夠終結(jié)科學(xué)研究原文)的說法是純粹外行人說的話。

4.2 統(tǒng)計(jì)機(jī)器翻譯

統(tǒng)計(jì)機(jī)器翻譯因?yàn)槠浜唵?,自?dòng)(無需手動(dòng)添加規(guī)則),迅速成為了機(jī)器翻譯的事實(shí)標(biāo)準(zhǔn)。而統(tǒng)計(jì)機(jī)器翻譯的核心算法也是使用的貝葉斯方法。

問題是什么?統(tǒng)計(jì)機(jī)器翻譯的問題可以描述為:給定一個(gè)句子 e ,它的可能的外文翻譯 f 中哪個(gè)是最靠譜的。即我們需要計(jì)算:P(f|e) 。一旦出現(xiàn)條件概率貝葉斯總是挺身而出:

P(f|e) ∝ P(f) * P(e|f)

這個(gè)式子的右端很容易解釋:那些先驗(yàn)概率較高,并且更可能生成句子 e 的外文句子 f 將會(huì)勝出。我們只需簡單統(tǒng)計(jì)(結(jié)合上面提到的 N-Gram 語言模型)就可以統(tǒng)計(jì)任意一個(gè)外文句子 f 的出現(xiàn)概率。然而 P(e|f) 卻不是那么好求的,給定一個(gè)候選的外文局子 f ,它生成(或?qū)?yīng))句子 e 的概率是多大呢?我們需要定義什么叫 “對應(yīng)”,這里需要用到一個(gè)分詞對齊的平行語料庫,有興趣的可以參考 《Foundations of Statistical Natural Language Processing》第 13 章,這里摘選其中的一個(gè)例子:假設(shè) e 為:John loves Mary 。我們需要考察的首選 f 是:Jean aime Marie (法文)。我們需要求出 P(e|f) 是多大,為此我們考慮 e 和 f 有多少種對齊的可能性,如:

John (Jean) loves (aime) Marie (Mary)

就是其中的一種(最靠譜的)對齊,為什么要對齊,是因?yàn)橐坏R了之后,就可以容易地計(jì)算在這個(gè)對齊之下的 P(e|f) 是多大,只需計(jì)算:

P(John|Jean) * P(loves|aime) * P(Marie|Mary)

即可。

然后我們遍歷所有的對齊方式,并將每種對齊方式之下的翻譯概率 ∑ 求和。便可以獲得整個(gè)的 P(e|f) 是多大。

一點(diǎn)注記:還是那個(gè)問題:難道我們?nèi)祟愓娴氖怯眠@種方式進(jìn)行翻譯的?highly unlikely 。這種計(jì)算復(fù)雜性非常高的東西連三位數(shù)乘法都搞不定的我們才不會(huì)笨到去使用呢。根據(jù)認(rèn)知神經(jīng)科學(xué)的認(rèn)識,很可能我們是先從句子到語義(一個(gè)逐層往上(bottom-up)抽象的 folding 過程),然后從語義根據(jù)另一門語言的語法展開為另一門語言(一個(gè)逐層往下(top-down)的具體化 unfolding 過程)。如何可計(jì)算地實(shí)現(xiàn)這個(gè)過程,目前仍然是個(gè)難題。(我們看到很多地方都有 bottom-up/top-down 這樣一個(gè)對稱的過程,實(shí)際上有人猜測這正是生物神經(jīng)網(wǎng)絡(luò)原則上的運(yùn)作方式,對視覺神經(jīng)系統(tǒng)的研究尤其證明了這一點(diǎn),Hawkins 在 《On Intelligence》 里面提出了一種 HTM (Hierarchical Temporal Memory)模型正是使用了這個(gè)原則。)

4.3 貝葉斯圖像識別,Analysis by Synthesis

貝葉斯方法是一個(gè)非常 general 的推理框架。其核心理念可以描述成:Analysis by Synthesis (通過合成來分析)。06 年的認(rèn)知科學(xué)新進(jìn)展上有一篇 paper 就是講用貝葉斯推理來解釋視覺識別的,一圖勝千言,下圖就是摘自這篇 paper :

i3

首先是視覺系統(tǒng)提取圖形的邊角特征,然后使用這些特征自底向上地激活高層的抽象概念(比如是 E 還是 F 還是等號),然后使用一個(gè)自頂向下的驗(yàn)證來比較到底哪個(gè)概念最佳地解釋了觀察到的圖像。

4.4  EM 算法與基于模型的聚類

聚類是一種無指導(dǎo)的機(jī)器學(xué)習(xí)問題,問題描述:給你一堆數(shù)據(jù)點(diǎn),讓你將它們最靠譜地分成一堆一堆的。聚類算法很多,不同的算法適應(yīng)于不同的問題,這里僅介紹一個(gè)基于模型的聚類,該聚類算法對數(shù)據(jù)點(diǎn)的假設(shè)是,這些數(shù)據(jù)點(diǎn)分別是圍繞 K 個(gè)核心的 K 個(gè)正態(tài)分布源所隨機(jī)生成的,使用 Han JiaWei 的《Data Ming: Concepts and Techniques》中的圖:

i4

圖中有兩個(gè)正態(tài)分布核心,生成了大致兩堆點(diǎn)。我們的聚類算法就是需要根據(jù)給出來的那些點(diǎn),算出這兩個(gè)正態(tài)分布的核心在什么位置,以及分布的參數(shù)是多少。這很明顯又是一個(gè)貝葉斯問題,但這次不同的是,答案是連續(xù)的且有無窮多種可能性,更糟的是,只有當(dāng)我們知道了哪些點(diǎn)屬于同一個(gè)正態(tài)分布圈的時(shí)候才能夠?qū)@個(gè)分布的參數(shù)作出靠譜的預(yù)測,現(xiàn)在兩堆點(diǎn)混在一塊我們又不知道哪些點(diǎn)屬于第一個(gè)正態(tài)分布,哪些屬于第二個(gè)。反過來,只有當(dāng)我們對分布的參數(shù)作出了靠譜的預(yù)測時(shí)候,才能知道到底哪些點(diǎn)屬于第一個(gè)分布,那些點(diǎn)屬于第二個(gè)分布。這就成了一個(gè)先有雞還是先有蛋的問題了。為了解決這個(gè)循環(huán)依賴,總有一方要先打破僵局,說,不管了,我先隨便整一個(gè)值出來,看你怎么變,然后我再根據(jù)你的變化調(diào)整我的變化,然后如此迭代著不斷互相推導(dǎo),最終收斂到一個(gè)解。這就是 EM 算法。

EM 的意思是“Expectation-Maximazation”,在這個(gè)聚類問題里面,我們是先隨便猜一下這兩個(gè)正態(tài)分布的參數(shù):如核心在什么地方,方差是多少。然后計(jì)算出每個(gè)數(shù)據(jù)點(diǎn)更可能屬于第一個(gè)還是第二個(gè)正態(tài)分布圈,這個(gè)是屬于 Expectation 一步。有了每個(gè)數(shù)據(jù)點(diǎn)的歸屬,我們就可以根據(jù)屬于第一個(gè)分布的數(shù)據(jù)點(diǎn)來重新評估第一個(gè)分布的參數(shù)(從蛋再回到雞),這個(gè)是 Maximazation 。如此往復(fù),直到參數(shù)基本不再發(fā)生變化為止。這個(gè)迭代收斂過程中的貝葉斯方法在第二步,根據(jù)數(shù)據(jù)點(diǎn)求分布的參數(shù)上面。

4.5 最大似然與最小二乘

i5

學(xué)過線性代數(shù)的大概都知道經(jīng)典的最小二乘方法來做線性回歸。問題描述是:給定平面上 N 個(gè)點(diǎn),(這里不妨假設(shè)我們想用一條直線來擬合這些點(diǎn)——回歸可以看作是擬合的特例,即允許誤差的擬合),找出一條最佳描述了這些點(diǎn)的直線。

一個(gè)接踵而來的問題就是,我們?nèi)绾味x最佳?我們設(shè)每個(gè)點(diǎn)的坐標(biāo)為 (Xi, Yi) 。如果直線為 y = f(x) 。那么 (Xi, Yi) 跟直線對這個(gè)點(diǎn)的“預(yù)測”:(Xi, f(Xi)) 就相差了一個(gè) ΔYi = |Yi – f(Xi)| 。最小二乘就是說尋找直線使得 (ΔY1)^2 (ΔY2)^2 .. (即誤差的平方和)最小,至于為什么是誤差的平方和而不是誤差的絕對值和,統(tǒng)計(jì)學(xué)上也沒有什么好的解釋。然而貝葉斯方法卻能對此提供一個(gè)完美的解釋。

我們假設(shè)直線對于坐標(biāo) Xi 給出的預(yù)測 f(Xi) 是最靠譜的預(yù)測,所有縱坐標(biāo)偏離 f(Xi) 的那些數(shù)據(jù)點(diǎn)都含有噪音,是噪音使得它們偏離了完美的一條直線,一個(gè)合理的假設(shè)就是偏離路線越遠(yuǎn)的概率越小,具體小多少,可以用一個(gè)正態(tài)分布曲線來模擬,這個(gè)分布曲線以直線對 Xi 給出的預(yù)測 f(Xi) 為中心,實(shí)際縱坐標(biāo)為 Yi 的點(diǎn) (Xi, Yi) 發(fā)生的概率就正比于 EXP[-(ΔYi)^2]。(EXP(..) 代表以常數(shù) e 為底的多少次方)。

現(xiàn)在我們回到問題的貝葉斯方面,我們要想最大化的后驗(yàn)概率是:

P(h|D) ∝ P(h) * P(D|h)

又見貝葉斯!這里 h 就是指一條特定的直線,D 就是指這 N 個(gè)數(shù)據(jù)點(diǎn)。我們需要尋找一條直線 h 使得 P(h) * P(D|h) 最大。很顯然,P(h) 這個(gè)先驗(yàn)概率是均勻的,因?yàn)槟臈l直線也不比另一條更優(yōu)越。所以我們只需要看 P(D|h) 這一項(xiàng),這一項(xiàng)是指這條直線生成這些數(shù)據(jù)點(diǎn)的概率,剛才說過了,生成數(shù)據(jù)點(diǎn) (Xi, Yi) 的概率為 EXP[-(ΔYi)^2] 乘以一個(gè)常數(shù)。而 P(D|h) = P(d1|h) * P(d2|h) * .. 即假設(shè)各個(gè)數(shù)據(jù)點(diǎn)是獨(dú)立生成的,所以可以把每個(gè)概率乘起來。于是生成 N 個(gè)數(shù)據(jù)點(diǎn)的概率為 EXP[-(ΔY1)^2] * EXP[-(ΔY2)^2] * EXP[-(ΔY3)^2] * .. = EXP{-[(ΔY1)^2 (ΔY2)^2 (ΔY3)^2 ..]} 最大化這個(gè)概率就是要最小化 (ΔY1)^2 (ΔY2)^2 (ΔY3)^2 .. 。 熟悉這個(gè)式子嗎?

5. 樸素貝葉斯方法

樸素貝葉斯方法是一個(gè)很特別的方法,所以值得介紹一下。我們用樸素貝葉斯在垃圾郵件過濾中的應(yīng)用來舉例說明。

5.1 貝葉斯垃圾郵件過濾器

問題是什么?問題是,給定一封郵件,判定它是否屬于垃圾郵件。按照先例,我們還是用 D 來表示這封郵件,注意 D 由 N 個(gè)單詞組成。我們用 h 來表示垃圾郵件,h- 表示正常郵件。問題可以形式化地描述為求:

P(h |D) = P(h ) * P(D|h ) / P(D)

P(h-|D) = P(h-) * P(D|h-) / P(D)

其中 P(h ) 和 P(h-) 這兩個(gè)先驗(yàn)概率都是很容易求出來的,只需要計(jì)算一個(gè)郵件庫里面垃圾郵件和正常郵件的比例就行了。然而 P(D|h ) 卻不容易求,因?yàn)?D 里面含有 N 個(gè)單詞 d1, d2, d3, .. ,所以P(D|h ) = P(d1,d2,..,dn|h ) 。我們又一次遇到了數(shù)據(jù)稀疏性,為什么這么說呢?P(d1,d2,..,dn|h ) 就是說在垃圾郵件當(dāng)中出現(xiàn)跟我們目前這封郵件一模一樣的一封郵件的概率是多大!開玩笑,每封郵件都是不同的,世界上有無窮多封郵件。瞧,這就是數(shù)據(jù)稀疏性,因?yàn)榭梢钥隙ǖ卣f,你收集的訓(xùn)練數(shù)據(jù)庫不管里面含了多少封郵件,也不可能找出一封跟目前這封一模一樣的。結(jié)果呢?我們又該如何來計(jì)算 P(d1,d2,..,dn|h ) 呢?

我們將 P(d1,d2,..,dn|h )  擴(kuò)展為: P(d1|h ) * P(d2|d1, h ) * P(d3|d2,d1, h ) * .. 。熟悉這個(gè)式子嗎?這里我們會(huì)使用一個(gè)更激進(jìn)的假設(shè),我們假設(shè) di 與 di-1 是完全條件無關(guān)的,于是式子就簡化為 P(d1|h ) * P(d2|h ) * P(d3|h ) * .. 。這個(gè)就是所謂的條件獨(dú)立假設(shè),也正是樸素貝葉斯方法的樸素之處。而計(jì)算 P(d1|h ) * P(d2|h ) * P(d3|h ) * .. 就太簡單了,只要統(tǒng)計(jì) di 這個(gè)單詞在垃圾郵件中出現(xiàn)的頻率即可。關(guān)于貝葉斯垃圾郵件過濾更多的內(nèi)容可以參考這個(gè)條目,注意其中提到的其他資料。

一點(diǎn)注記:這里,為什么有這個(gè)數(shù)據(jù)稀疏問題,還是因?yàn)榻y(tǒng)計(jì)學(xué)習(xí)方法工作在淺層面,世界上的單詞就算不再變多也是非常之多的,單詞之間組成的句子也是變化多端,更不用說一篇文章了,文章數(shù)目則是無窮的,所以在這個(gè)層面作統(tǒng)計(jì),肯定要被數(shù)據(jù)稀疏性困擾。我們要注意,雖然句子和文章的數(shù)目是無限的,然而就拿郵件來說,如果我們只關(guān)心郵件中句子的語義(進(jìn)而更高抽象層面的“意圖”(語義,意圖如何可計(jì)算地定義出來是一個(gè)人工智能問題),在這個(gè)層面上可能性便大大縮減了,我們關(guān)心的抽象層面越高,可能性越小。單詞集合和句子的對應(yīng)是多對一的,句子和語義的對應(yīng)又是多對一的,語義和意圖的對應(yīng)還是多對一的,這是個(gè)層級體系。神經(jīng)科學(xué)的發(fā)現(xiàn)也表明大腦的皮層大致有一種層級結(jié)構(gòu),對應(yīng)著越來越抽象的各個(gè)層面,至于如何具體實(shí)現(xiàn)一個(gè)可放在計(jì)算機(jī)內(nèi)的大腦皮層,仍然是一個(gè)未解決問題,以上只是一個(gè)原則(principle)上的認(rèn)識,只有當(dāng) computational 的 cortex 模型被建立起來了之后才可能將其放入電腦。

5.2 為什么樸素貝葉斯方法令人詫異地好——一個(gè)理論解釋

樸素貝葉斯方法的條件獨(dú)立假設(shè)看上去很傻很天真,為什么結(jié)果卻很好很強(qiáng)大呢?就拿一個(gè)句子來說,我們怎么能魯莽地聲稱其中任意一個(gè)單詞出現(xiàn)的概率只受到它前面的 3 個(gè)或 4 個(gè)單詞的影響呢?別說 3 個(gè),有時(shí)候一個(gè)單詞的概率受到上一句話的影響都是絕對可能的。那么為什么這個(gè)假設(shè)在實(shí)際中的表現(xiàn)卻不比決策樹差呢?有人對此提出了一個(gè)理論解釋,并且建立了什么時(shí)候樸素貝葉斯的效果能夠等價(jià)于非樸素貝葉斯的充要條件,這個(gè)解釋的核心就是:有些獨(dú)立假設(shè)在各個(gè)分類之間的分布都是均勻的所以對于似然的相對大小不產(chǎn)生影響;即便不是如此,也有很大的可能性各個(gè)獨(dú)立假設(shè)所產(chǎn)生的消極影響或積極影響互相抵消,最終導(dǎo)致結(jié)果受到的影響不大。具體的數(shù)學(xué)公式請參考這篇 paper 。

6. 層級貝葉斯模型

i6

層級貝葉斯模型是現(xiàn)代貝葉斯方法的標(biāo)志性建筑之一。前面講的貝葉斯,都是在同一個(gè)事物層次上的各個(gè)因素之間進(jìn)行統(tǒng)計(jì)推理,然而層次貝葉斯模型在哲學(xué)上更深入了一層,將這些因素背后的因素(原因的原因,原因的原因,以此類推)囊括進(jìn)來。一個(gè)教科書例子是:如果你手頭有 N 枚硬幣,它們是同一個(gè)工廠鑄出來的,你把每一枚硬幣擲出一個(gè)結(jié)果,然后基于這 N 個(gè)結(jié)果對這 N 個(gè)硬幣的 θ (出現(xiàn)正面的比例)進(jìn)行推理。如果根據(jù)最大似然,每個(gè)硬幣的 θ 不是 1 就是 0 (這個(gè)前面提到過的),然而我們又知道每個(gè)硬幣的 p(θ) 是有一個(gè)先驗(yàn)概率的,也許是一個(gè) beta 分布。也就是說,每個(gè)硬幣的實(shí)際投擲結(jié)果 Xi 服從以 θ 為中心的正態(tài)分布,而 θ 又服從另一個(gè)以 Ψ 為中心的 beta 分布。層層因果關(guān)系就體現(xiàn)出來了。進(jìn)而 Ψ 還可能依賴于因果鏈上更上層的因素,以此類推。

6.1 隱馬可夫模型(HMM)

i7

吳軍在數(shù)學(xué)之美系列里面介紹的隱馬可夫模型(HMM)就是一個(gè)簡單的層級貝葉斯模型:

那么怎么根據(jù)接收到的信息來推測說話者想表達(dá)的意思呢?我們可以利用叫做“隱含馬爾可夫模型”(Hidden Markov Model)來解決這些問題。以語音識別為例,當(dāng)我們觀測到語音信號 o1,o2,o3 時(shí),我們要根據(jù)這組信號推測出發(fā)送的句子 s1,s2,s3。顯然,我們應(yīng)該在所有可能的句子中找最有可能性的一個(gè)。用數(shù)學(xué)語言來描述,就是在已知 o1,o2,o3,…的情況下,求使得條件概率 P (s1,s2,s3,…|o1,o2,o3….) 達(dá)到最大值的那個(gè)句子 s1,s2,s3,…

吳軍的文章中這里省掉沒說的是,s1, s2, s3, .. 這個(gè)句子的生成概率同時(shí)又取決于一組參數(shù),這組參數(shù)決定了 s1, s2, s3, .. 這個(gè)馬可夫鏈的先驗(yàn)生成概率。如果我們將這組參數(shù)記為 λ ,我們實(shí)際上要求的是:P(S|O, λ) (其中 O 表示 o1,o2,o3,.. ,S表示 s1,s2,s3,..)

當(dāng)然,上面的概率不容易直接求出,于是我們可以間接地計(jì)算它。利用貝葉斯公式并且省掉一個(gè)常數(shù)項(xiàng),可以把上述公式等價(jià)變換成

P(o1,o2,o3,…|s1,s2,s3….) * P(s1,s2,s3,…)

其中

P(o1,o2,o3,…|s1,s2,s3….) 表示某句話 s1,s2,s3…被讀成 o1,o2,o3,…的可能性, 而 P(s1,s2,s3,…) 表示字串 s1,s2,s3,…本身能夠成為一個(gè)合乎情理的句子的可能性,所以這個(gè)公式的意義是用發(fā)送信號為 s1,s2,s3…這個(gè)數(shù)列的可能性乘以 s1,s2,s3.. 本身可以一個(gè)句子的可能性,得出概率。

這里,s1,s2,s3…本身可以一個(gè)句子的可能性其實(shí)就取決于參數(shù) λ ,也就是語言模型。所以簡而言之就是發(fā)出的語音信號取決于背后實(shí)際想發(fā)出的句子,而背后實(shí)際想發(fā)出的句子本身的獨(dú)立先驗(yàn)概率又取決于語言模型。

7. 貝葉斯網(wǎng)絡(luò)

吳軍已經(jīng)對貝葉斯網(wǎng)絡(luò)作了科普,請直接跳轉(zhuǎn)到這里。更詳細(xì)的理論參考所有機(jī)器學(xué)習(xí)的書上都有。

參考資料

一堆機(jī)器學(xué)習(xí),一堆概率統(tǒng)計(jì),一堆 Google ,和一堆 Wikipedia 條目,一堆 paper 。

部分書籍參考《機(jī)器學(xué)習(xí)與人工智能資源導(dǎo)引》。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多