大數據背後的神秘公式—貝葉斯公式
大數據、人工智慧、海難搜救、生物醫學、郵件過濾,這些看起來彼此不相關的領域之間有什麼聯繫?答案是,它們都會用到同一個數學公式—— 貝葉斯公式。它雖然看起來很簡單、很不起眼,但卻有著深刻的內涵。那麼貝葉斯公式是如何從默默無聞到現在廣泛應用、無所不能的呢?
一 什麼是貝葉斯公式18世紀英國業餘數學家托馬斯·貝葉斯(Thomas Bayes,1702~1761)提出過一種看上去似乎顯而易見的觀點:「用客觀的新信息更新我們最初關於某個事物的信念後,我們就會得到一個新的、改進了的信念。」 這個研究成果,因為簡單而顯得平淡無奇,直到他死後的兩年才於1763年由他的朋友理查德·普萊斯幫助發表。它的數學原理很容易理解,簡單說就是,如果你看到一個人總是做一些好事,則會推斷那個人多半會是一個好人。這就是說,當你不能準確知悉一個事物的本質時,你可以依靠與事物特定本質相關的事件出現的多少去判斷其本質屬性的概率。用數學語言表達就是:支持某項屬性的事件發生得愈多,則該屬性成立的可能性就愈大。 與其他統計學方法不同,貝葉斯方法建立在主觀判斷的基礎上,你可以先估計一個值,然後根據客觀事實不斷修正。
1774年,法國數學家皮埃爾-西蒙·拉普拉斯(Pierre-Simon Laplace,1749-1827)獨立地再次發現了貝葉斯公式。拉普拉斯關心的問題是:當存在著大量數據,但數據又可能有各種各樣的錯誤和遺漏的時候,我們如何才能從中找到真實的規律。拉普拉斯研究了男孩和女孩的生育比例。有人觀察到,似乎男孩的出生數量比女孩更高。這一假說到底成立不成立呢?拉普拉斯不斷地搜集新增的出生記錄,並用之推斷原有的概率是否準確。每一個新的記錄都減少了不確定性的範圍。拉普拉斯給出了我們現在所用的貝葉斯公式的表達:
P(A/B)=P(B/A)*P(A)/P(B),
該公式表示在B事件發生的條件下A事件發生的條件概率,等於A事件發生條件下B事件發生的條件概率乘以A事件的概率,再除以B事件發生的概率。公式中,P(A)也叫做先驗概率,P(A/B)叫做後驗概率。嚴格地講,貝葉斯公式至少應被稱為「貝葉斯-拉普拉斯公式」。
二 默默無聞200年貝葉斯公式現在已經非常流行,甚至在熱門美劇《生活大爆炸》中謝耳朵也秀了一下。但它真正得到重視和廣泛應用卻是最近二三十年的事,其間被埋沒了200多年。這是為什麼呢?原因在於我們有另外一種數學工具——經典統計學,或者叫頻率主義統計學(我們在學校學的主要是這種統計學),它在200多年的時間裡一直表現不錯。從理論上講,它可以揭示一切現象產生的原因,既不需要構建模型,也不需要默認條件,只要進行足夠多次的測量,隱藏在數據背後的原因就會自動揭開面紗。
在經典統計學看來,科學是關於客觀事實的研究,我們只要反覆觀察一個可重複的現象,直到積累了足夠多的數據,就能從中推斷出有意義的規律。而貝葉斯方法卻要求科學家像算命先生一樣,從主觀猜測出發,這顯然不符合科學精神。就連拉普拉斯後來也放棄了貝葉斯方法這一思路,轉向經典統計學。因為他發現,如果數據量足夠大,人們完全可以通過直接研究這些樣本來推斷總體的規律。
打個比方來幫助我們理解這兩種統計學方法的區別。假如我們想知道某個區域裏海拔最低的地方,經典統計學的方法是首先進行觀測,取得區域內不同地方的海拔數據,然後從中找出最低點。這個數據量必須足夠多,以反映區域內地形全貌的特徵,這樣我們才能相信找到的就是實際上的最低點。而貝葉斯方法是我不管哪裡最低,就憑感覺在區域內隨便選個地方開始走,每一步都往下走,雖然中間可能有一些曲折,但相信這樣走早晚能夠到達最低點。 可以看出,貝葉斯方法的關鍵問題是這個最終到達的低點可能不是真正的最低點,而是某個相對低點,它可能對該區域的地形(碗型、馬鞍形等)和最初我們主觀選擇的出發點有依賴性。如果問題域是碗型的,我們到達的就是最低點;但如果是馬鞍形或者其他複雜曲面,那麼我們到達的可能是多個相對低點(極點)中的一個,而不是真正的最低點。這是貝葉斯方法最受經典統計學方法詬病的原因,也是它在過去的200多年被雪藏的原因所在。
貝葉斯方法原理示意圖:
三 初顯威力長期以來,貝葉斯方法雖然沒有得到主流學界的認可,但其實我們經常會不自覺地應用它來進行決策,而且還非常有效。比如炮兵在射擊時會使用貝葉斯方法進行瞄準。炮彈與子彈不同,它的飛行軌跡是拋物線,瞄準的難度更大,因此他們會先根據計算和經驗把炮管調整到一個可能命中的瞄準角度(先驗概率),然後再根據炮彈的實際落點進行調整(後驗概率),這樣在經過2-3次射擊和調整後炮彈就能夠命中目標了。
在日常生活中,我們也常使用貝葉斯方法進行決策。比如在一個陌生的地方找餐館吃飯,因為之前不了解哪家餐館好,似乎只能隨機選擇,但實際上並非如此,我們會根據貝葉斯方法,利用以往積累的經驗來提供判斷的線索。經驗告訴我們,通常那些坐滿了客人的餐館的食物要更美味些,而那些客人寥寥的餐館,食物可能不怎麼樣而且可能會被宰。這樣,我們就往往通過觀察餐廳的上座率來選擇餐館就餐。這就是我們根據先驗知識進行的主觀判斷。在吃過以後我們對這個餐館有了更多實際的了解,以後再選擇時就更加容易了。 所以說,在我們認識事物不全面的情況下,貝葉斯方法是一種很好的利用經驗幫助作出更合理判斷的方法。
而兩個標誌性的事件在讓學術界開始重視貝葉斯方法上起到了重要作用。
1聯邦黨人文集作者公案1787年5月,美國各州(當時為13個)代表在費城召開制憲會議;1787年9月,美國的憲法草案被分發到各州進行討論。一批反對派以「反聯邦主義者」為筆名,發表了大量文章對該草案提出批評。憲法起草人之一亞歷山大·漢密爾頓著急了,他找到曾任外交國務秘書(即後來的國務卿)的約翰·傑伊,以及紐約市國會議員麥迪遜,一同以普布利烏斯(Publius)的筆名發表文章,向公眾解釋為什麼美國需要一部憲法。他們走筆如飛,通常在一周之內就會發表3-4篇新的評論。1788年,他們所寫的85篇文章結集出版,這就是美國歷史上著名的《聯邦黨人文集》。
《聯邦黨人文集》出版的時候,漢密爾頓堅持匿名發表,於是,這些文章到底出自誰人之手,成了一樁公案。1810年,漢密爾頓接受了一個政敵的決鬥挑戰,但出於基督徒的宗教信仰,他決意不向對方開槍。在決鬥之前數日,漢密爾頓自知時日不多,他列出了一份《聯邦黨人文集》的作者名單。1818年,麥迪遜又提出了另一份作者名單。這兩份名單並不一致。在85篇文章中,有73篇文章的作者身份較為明確,其餘12篇存在爭議。
1955年,哈佛大學統計學教授Fredrick Mosteller找到芝加哥大學的年輕統計學家David Wallance,建議他跟自己一起做一個小課題,他想用統計學的方法,鑒定出《聯邦黨人文集》的作者身份。
但這根本就不是一個小課題。漢密爾頓和麥迪遜都是文章高手,他們的文風非常接近。從已經確定作者身份的那部分文本來看,漢密爾頓寫了9.4萬字,麥迪遜寫了11.4萬字。漢密爾頓每個句子的平均長度是34.55字,而麥迪遜是34.59字。就寫作風格而論,漢密爾頓和麥迪遜簡直就是一對雙胞胎。漢密爾頓和麥迪遜寫這些文章,用了大約一年的時間,而Mosteller和Wallance甄別出作者的身份花了10多年的時間。
如何分辨兩人寫作風格的細微差別,並據此判斷每篇文章的作者就是問題的關鍵。他們所採用的方法就是以貝葉斯公式為核心的包含兩個類別的分類演算法。先挑選一些能夠反映作者寫作風格的辭彙,在已經確定了作者的文本中,對這些特徵辭彙的出現頻率進行統計,然後再統計這些辭彙在那些不確定作者的文本中的出現頻率,從而根據詞頻的差別推斷其作者歸屬。這其實和我們現在使用的垃圾郵件過濾器的原理是一樣的。
他們是在沒有計算機幫助的條件下用手工處理「大數據」,這一工程的耗時耗力是可想而知的。將近100個哈佛大學的學生幫助他們處理數據。學生們用最原始的方式,用打字機把《聯邦黨人文集》的文本打出來,然後把每個單詞剪下來,按照字母表的順序,把這些單詞分門別類地彙集在一起。有個學生幹得累了,伸了個懶腰,長長地呼了一口氣。他這一口氣用力太猛,一下子把剛剛歸置好的單詞條吹得如柳絮紛飛,一屋子學生瞬間石化,估計很多人連滅了他的心都有。而這只是手工大數據時代的日常。
Mosteller和Wallance這是要在乾草垛里找繡花針。他們首先剔除掉用不上的辭彙。比如,《聯邦黨人文集》里經常談到「戰爭」、「立法權」、「行政權」等,這些辭彙是因主題而出現,並不反映不同作者的寫作風格。只有像「in」,「an」,「of」,「upon」這些介詞、連詞等才能顯示出作者風格的微妙差異。一位歷史學家好心地告訴他們,有一篇1916年的論文提到,漢密爾頓總是用「while」,而麥迪遜則總是用「whilst」。但僅僅有這一個線索是不夠的。「while」和「whilst」在這12篇作者身份待定的文章里出現的次數不夠多。況且,漢密爾頓和麥迪遜有時候會合寫一篇文章,也保不齊他們會互相改文章,要是漢密爾頓把麥迪遜的「whilst」都改成了「while」呢?
當學生們把每個單詞的小紙條歸類、粘好之後,他們發現,漢密爾頓的文章里平均每一頁紙會出現兩次「upon」,而麥迪遜幾乎一次也不用。漢密爾頓更喜歡用「enough」,麥迪遜則很少用。其它一些有用的辭彙包括:「there」、「on」等等。1964年,Mosteller和Wallance發表了他們的研究成果。他們的結論是,這12篇文章的作者很可能都是麥迪遜。他們最拿不準的是第55篇,麥迪遜是作者的概率是240:1。
這個研究引起了極大的轟動,但最受震撼的不是憲法研究者,而是統計學家。Mosteller和Wallance的研究,把貝葉斯公式這個被統計學界禁錮了200年的幽靈從瓶子中釋放了出來。
2天蠍號核潛艇搜救2014年初馬航MH370航班失聯,所有人都密切關注搜救的進展情況。那麼我們是用什麼方法在茫茫大海中尋找失聯的飛機或者船隻的呢?這要從天蠍號核潛艇說起。
1968年5月,美國海軍的天蠍號核潛艇在大西洋亞速海海域突然失蹤,潛艇和艇上的99名海軍官兵全部杳無音信。按照事後調查報告的說法,罪魁禍首是這艘潛艇上的一枚奇怪的魚雷,發射出去後竟然敵我不分,扭頭射向自己,讓潛艇中彈爆炸。
為了尋找天蠍號的位置,美國政府從國內調集了包括多位專家的搜索部隊前往現場,其中包括一位名叫John Craven的數學家,他的頭銜是「美國海軍特別計劃部首席科學家」。在搜尋潛艇的問題上,Craven提出的方案使用了上面提到的貝葉斯公式。他召集了數學家、潛艇專家、海事搜救等各個領域的專家。每個專家都有自己擅長的領域,但並非通才,沒有專家能準確估計到在出事前後潛艇到底發生了什麼。有趣的是,Craven並不是按照慣常的思路要求團隊成員互相協商尋求一個共識,而是讓各位專家編寫了各種可能的「劇本」,讓他們按照自己的知識和經驗對於情況會向哪一個方向發展進行猜測,並評估每種情境出現的可能性。據說,為了給枯燥的工作增加一些趣味,Craven還準備了威士忌酒作為「投注」正確的獎品。
因為在Craven的方案中,結果很多是這些專家以猜測、投票甚至可以說賭博的形式得到的,不可能保證所有結果的準確性,他的這一做法受到了很多同行的質疑。可是因為搜索潛艇的任務緊迫,沒有時間進行精確的實驗、建立完整可靠的理論,Craven的辦法不失為一個可行的辦法。
由於失事時潛艇航行的速度快慢、行駛方向、爆炸衝擊力的大小、爆炸時潛艇方向舵的指向都是未知量,即使知道潛艇在哪裡爆炸,也很難確定潛艇殘骸最後被海水衝到哪裡。Craven粗略估計了一下,半徑20英里的圓圈內的數千英尺深的海底,都是天蠍號核潛艇可能沉睡的地方,要在這麼大的範圍,這麼深的海底找到潛艇幾乎成了不可能完成的任務。
Craven把各位專家的意見綜合到一起,得到了一張20英裏海域的概率圖。整個海域被劃分成了很多個小格子,每個小格子有兩個概率值p和q,p是潛艇躺在這個格子里的概率,q是如果潛艇在這個格子里,它被搜索到的概率。按照經驗,第二個概率值主要跟海域的水深有關,在深海區域搜索失事潛艇的「漏網」可能性會更大。如果一個格子被搜索後,沒有發現潛艇的蹤跡,那麼按照貝葉斯公式,這個格子潛艇存在的概率就會降低:
由於所有格子概率的總和是1,這時其他格子潛艇存在的概率值就會上升:
每次尋找時,先挑選整個區域內潛艇存在概率值最高的一個格子進行搜索,如果沒有發現,概率分布圖會被「洗牌」一次,搜尋船隻就會駛向新的「最可疑格子」進行搜索,這樣一直下去,直到找到天蠍號為止。
最初開始搜救時,海軍人員對Craven和其團隊的建議嗤之以鼻,他們憑經驗估計潛艇是在爆炸點的東側海底。但幾個月的搜索一無所獲,他們才不得不聽從了Craven的建議,按照概率圖在爆炸點的西側尋找。經過幾次搜索,潛艇果然在爆炸點西南方的海底被找到了。
由於這種基於貝葉斯公式的方法在後來多次搜救實踐中被成功應用,現在已經成為海難空難搜救的通行做法。
2009年法航空難搜救的後驗概率分布圖:
2014馬航MH370失聯搜索區域:
與計算機的結合使貝葉斯公式巨大的實用價值進一步體現出來,它不但為我們提供了一條全新的問題解決路徑,帶來工具和理念的革命,而且甚至可能是人類大腦本身的認知和構建方式。
推薦閱讀:
※能否訓練一個AI,能夠自動製作OSU!的鋪面?
※機器學習初學者該如何選讀適合自己水平的論文?
※用libsvm做時間序列預測,為什麼訓練數據越少越準確?
※如何認識和看待人工智慧?人工智慧的巔峰是什麼?
※人工智慧是什麼?