什么是貝葉斯定理?樸素貝葉斯有多“樸素”?終于有人講明白了
假設你正在玩拋硬幣猜正反的游戲。游戲看上去很公平,沒有人在干預硬幣結果,硬幣看上去也像是普通的硬幣。對于即將開始的下一局,請問你該如何下注?
理論上講,硬幣在落地后得到正面和反面的概率是一樣的,所以你可以隨便猜,總會猜對一半。但那畢竟是理論,你無法確保眼前的這枚硬幣也是如此。更何況,你無法提前拋足夠多次這枚硬幣,來驗證你的假設。
那該用怎樣的下注策略呢?答案是根據歷史信息來決定。比方說,已經拋了10次硬幣,其中有8次正面朝上。就是說通過10次實踐,硬幣正面朝上的概率是80%。雖然這個概率和它的理論值(50%)比可能有偏差,但它仍然是下注的重要參考。如果還有第11次拋硬幣,你就應該去猜正面朝上。
更極端點,如果硬幣扔了一億次都是正面朝上,那下一次反面朝上的概率是多少?我們能否堅信它是一枚特殊硬幣呢?不能。雖然下一次硬幣反面朝上的概率無限接近于零,但它不等于零。只要沒有對硬幣做出更進一步的確認,無論扔多少次,我們都無法排除反面朝上這個選項,只能無限降低對它的可能性的預期。
大部分人都是根據歷史經驗不斷修正自己的認知。畢竟我們不是先知,不能提前知道所有事件發(fā)生的概率。這種思考方式具有現實意義,它背后的數學原理是貝葉斯定理。
一什么是貝葉斯定理
預測在生活中必不可少,比如決定是否購買更多的股票、預測某個球隊是否獲勝、確定下個月是否外出旅游等。要做出準確的預測,不僅需要得到某個事件發(fā)生概率的理論值,還要結合實際經驗做出合理判斷。
換句話說,人對某一事件未來會發(fā)生的認知,大多取決于該事件或類似事件過去發(fā)生的頻率。這就是貝葉斯定理的數學模型,它最早由數學家托馬斯·貝葉斯提出。
貝葉斯生活在18世紀,他的本職工作是一位英格蘭長老會的牧師。1763年,他發(fā)表了論文《論有關機遇問題的求解》,提出了一種解決問題的框架思路,即通過不斷增加信息和經驗,逐步逼近真相或理解未知。這種思想奠定了貝葉斯理論的基礎。
貝葉斯定理的過程可以歸納為:“過去經驗”加上“新的證據”得到“修正后的判斷”。它提供了一種將新觀察到的證據和已有的經驗結合起來進行推斷的客觀方法。
假設有隨機事件A和B,它們的條件概率關系可以用以下數學公式表達:
- 其中,事件A是要考察的目標事件,P(A)是事件A的初始概率,稱為先驗概率,它是根據一些先前的觀測或者經驗得到的概率。
- B是新出現的一個事件,它會影響事件A。P(B)表示事件B發(fā)生的概率。
- P(B|A)表示當A發(fā)生時B的概率,它是一個條件概率。
- P(A|B)表示當B發(fā)生時A的概率(也是條件概率),它是我們要計算的后驗概率,指在得到一些觀測信息后某事件發(fā)生的概率。
貝葉斯公式給出了通過先驗概率和條件概率求出后驗概率的方法。舉個例子,我們假設A事件代表堵車,B事件代表下雨,并且已知以下數據:
某天下雨的概率是40%,即P(下雨)=0.4。
上班堵車的概率是80%,即P(堵車)=0.8。
如果上班堵車,則這天是雨天的概率有30%,即P(下雨|堵車)=0.3。
那么,我們就能求出下雨天上班堵車的概率:
P(堵車|下雨)
= P(堵車)×P(下雨|堵車) ÷P(下雨)
= 0.8×0.3÷0.4
= 0.6
這個計算并不復雜,但蘊含著深刻的含義。有時,先驗概率很容易得到,但對于不同的條件概率,其計算難度差別很大。比如醫(yī)生可以在心臟病人中統(tǒng)計男女占比,但很少會在只知道對方性別的情況下診斷對方得心臟病的概率。
另外,根據貝葉斯公式,先驗概率一般是由以往的數據分析或統(tǒng)計得到的概率數據。后驗概率是在某些條件下發(fā)生的概率,是在得到信息之后再重新加以修正的概率。也就是說,后驗概率可以在先驗概率的基礎上進行修正并得到。
1. 貝葉斯派和頻率派
基于貝葉斯的思考方式幾乎無時無刻不在發(fā)生。
人通常很少做出絕對的判斷,但會做出相對可信的推斷,并根據新的證據不斷更新之前的結論。比方說,沒有一個程序員能保證自己寫出來的代碼沒有任何缺陷。但是我們可以對它進行大量驗證,每通過一項測試,我們就更有把握確保這段代碼的質量。
在貝葉斯派的世界觀中,概率是被解釋為人們對一件事情發(fā)生的相信程度,也就是信心。假設你不確定一件事情的發(fā)生概率,但你知道一定存在這個概率值,于是你開始不斷重復做試驗,并記錄下每次的結果。
剛開始時,得到的后驗概率是不穩(wěn)定的。但隨著試驗次數的增加,觀測值的出現概率會越來越接近它的真實概率值。在這個過程中,我們不是從隨機性里推斷出確定性,而是保留了不確定性。這是貝葉斯派的思考方式。
不過,持有頻率派觀點的人對概率有另一種解釋。他們認為概率是事件在長時間內發(fā)生的頻率,也就是發(fā)生次數。比如,汽車事故發(fā)生的概率,可以認為是一段時間內發(fā)生車輛事故的次數。
不過人們發(fā)現,這個定義不適用于一些特殊情況,尤其是只會發(fā)生一次的事件。試想一下,選舉時我們討論某個候選人的獲選概率,但選舉本身在未來只會發(fā)生一次,永遠得不到多次選舉的數據。
為了解決這個矛盾,頻率派提出了“替代現實”的說法,套用今天物理學里的概念就是平行宇宙,頻率派認為概率是所有平行宇宙中發(fā)生的頻率。
有時,把概率理解為信心或頻率并不影響結果。比如一個人對汽車事故發(fā)生的信心就等同于他了解到的汽車事故的頻率。但有時,用貝葉斯派的觀點來解釋概率顯得更加自然。比如大會選舉的例子,貝葉斯派不用考慮什么平行宇宙,只要考慮對候選人的獲勝信心,把它當作選舉成功的概率,這種理解具有現實意義。
貝葉斯派認為概率代表了個人觀點,每個人都能給出自己認定的事件概率,它因人而異,沒有唯一的標準。某人把概率0賦予某個事件,表明他完全確定此事不會發(fā)生;如果概率是1,則說明他確信此事一定會發(fā)生。概率值在0和1之間,表示他心目中此事發(fā)生的可能性。
這種觀點為人與人之間的認知差異保留了余地。每個人擁有不同的信息、認知、判斷,這些差異導致了不同的人對同一事件發(fā)生有著不同的信心,這并不代表別人就是錯的。比如我在拋硬幣后偷看了結果,我就能確定某個結果出現的概率是1。顯然,我獲得的額外信息并不會改變硬幣本身的結果,但會使我和別人對結果賦予不同的概率值。
在貝葉斯派看來,對一個事件發(fā)生的信心等同于概率。這似乎是人們長期以來和現實世界打交道的方式。很多情況下,人們只能了解部分真相,但可以通過不斷收集證據來修正自己的觀念。
頻率派和貝葉斯派在考察不確定性時的出發(fā)點各不相同。頻率派認為事件本身具有某種客觀的隨機性,而貝葉斯派認為這不是事件的問題,而是觀察者不知道事件的結果。觀察者對事件了解得越多,擁有的證據越多,他對事件的判斷就越準確。
2. 貝葉斯推斷與應用
基于貝葉斯的推理與應用為何這些年來廣為流傳,為人津津樂道?答案是因為大數據。過去沒有大數據,所以先驗概率很難獲得。這些年來,很多數據被人們積累下來,貝葉斯模型的運用領域也越來越廣泛。
比如在一些語言翻譯的網站、醫(yī)療診斷的儀器中,就會用到貝葉斯的統(tǒng)計方法。還有在電子郵件軟件中,也集成了基于貝葉斯方法的垃圾郵件過濾功能。
貝葉斯定理告訴我們,即便獲得了新的證據,也不要完全放棄初始的信念。新的證據會讓我們對某些結果更有信心,或幫助我們修正初始信念的錯誤。
就是說,我們既要關注新的證據,又不能忽略初始信念。新的證據很重要,因為初始信念可能是錯的,這些證據可以用于做出修正。但同時,初始信念仍然是重要的基礎,不能只根據新證據就草率地做出判斷。關于這一點,讓我們來舉些例子。
假設中年婦女有1%的概率患有乳腺癌。有一臺醫(yī)療設備能檢驗女性胸部腫瘤。根據已有檢測數據,這臺設備有80%的概率能正確診斷出乳腺癌。但對于健康女性,它也有10%的概率做出誤判?,F在假設有一位婦女的檢查結果呈陽性,她被查出患有乳腺癌,那么她真正得癌的概率是多少?
大部分醫(yī)生認為既然設備已經檢查出了陽性,這位女性患有乳腺癌的概率就該很高,他們給出的答案通常在75%左右。但實際上,這個答案被高估了10倍。
貝葉斯定理告訴我們,1%的先驗概率,不會立刻變成75%的后驗概率,它只會增加到7.5%。很多醫(yī)生往往過于強調設備的準確率,認為檢查結果呈陽性,這位婦女患乳腺癌的概率就應該和設備的準確率差不多,在80%左右。
但這種直覺判斷是錯的。我們必須把更多的注意力放在患乳腺癌的女性的初始比例(即先驗概率)以及健康女性是假陽性的概率上。因為健康女性的占比遠高于患乳腺癌的人,所以她們被誤診為陽性的可能性也更大,這個數據不能輕易忽視。
再比如,假設一個盒子里放了很多球,其中紅球占85%,綠球占15%。有人從盒子中拿出一個球,這個人有色弱,假設他分辨顏色的準確率是80%。如果這個人說這是一個綠球,那么這個球是綠色的概率是多少呢?
讓我們來做一次計算:由于紅色的球被看成是綠色的概率是85%×20%,綠色的球被看成是綠色的概率是15%×80%,所以這個球是綠色的概率是0.15×0.8/(0.85×0.2+0.15×0.8)=41.38%。
也就是說,盡管這個人看到的是綠球,而且他分辨顏色的準確率達到80%,因為綠球本身的基數小,所以這個球是紅球的可能性更大。
通過上面兩個例子,我們可以發(fā)現,當先驗概率足夠強大時,即使出現新的證據,先驗概率也會表現出驚人的影響力。這給我們的啟示是,不能只把焦點放在最新獲得的信息上,同時要關注全局,考慮先驗概率這個重要前提。
二 樸素貝葉斯有多“樸素”
貝葉斯定理研究的是條件概率,也就是在特定條件下發(fā)生的概率問題。基于這一數學思想,人們提出了一種叫作樸素貝葉斯的算法。
樸素貝葉斯常用于解決分類問題,它的目的是把具有某些特征的樣本劃分到最可能屬于的類別中。也就是說,樣本屬于哪個類別的概率最大,就認為它屬于哪個類別。
該算法已經被用在郵件分類、文章分類、情感分析等很多應用場景。以郵件分類為例,算法通過統(tǒng)計郵件內容中單詞出現的頻率,對郵件做出判斷,比如發(fā)現了“掃碼”“匯款”等特定詞高頻出現,那么就判斷這封郵件疑似垃圾郵件。
既然叫作樸素貝葉斯算法,那它到底“樸素”在哪兒?
使用樸素貝葉斯算法要滿足一個基本假設:假定給定目標值的各個特征之間是相互獨立的,即條件獨立性。舉個例子,“鸚鵡會飛”和“鸚鵡會學人說話”這兩個短語是條件獨立的,因為它們之間沒有必然聯系。
而“鸚鵡會飛”和“鸚鵡是鳥”就不是條件獨立的,它們之間具有關聯:鸚鵡是鳥,所以它能飛;或者因為鸚鵡會飛,所以它才被叫作鳥??傊@兩個短語彼此影響,“鸚鵡會飛”影響了“鸚鵡是鳥”的結論,“鸚鵡是鳥”又導致了“鸚鵡會飛”,它們不是條件獨立的。
樸素貝葉斯算法為何要設置條件獨立的前提呢?這是因為,如果每個特征不是相互獨立的,在計算條件概率時,就必須把這些特征的所有排列組合都考慮一遍。這樣不僅計算量大,還會產生指數級的參數數量,實際執(zhí)行起來難度很大。
下面我們以文本分類為例,看看樸素貝葉斯算法的具體運作過程。
首先,確定不同特征條件下各類別的出現概率。比如要判斷一篇文章是經濟類文章還是體育類文章,可以把這個問題轉化為:當出現“銀行”“貸款”等特定詞語時,這篇文章屬于經濟類的概率更高,還是屬于體育類的概率更高?
其次,省略計算全概率。由于只是比較概率大小,因此不必計算每個特征出現的全概率。根據貝葉斯公式,全概率對所有類別都是同樣的分母,比較時可以忽略。即,對于任意一篇文章,出現“銀行”的概率有多大,含有“貸款”的概率又是多少,可以不必統(tǒng)計。
最后,也是樸素貝葉斯算法最核心的思想:假設各個特征是條件獨立的。這樣只要計算每個特征的條件概率,然后相乘比較,就能得出結論。就是說,不用考慮文章中“銀行”“貸款”這些詞語之間是否有關聯(實際上它們很可能是有關聯的),只要計算每個詞語的條件概率即可。
在這個例子中,假設待分類的文章中出現過“銀行”“貸款”這樣的詞語。而我們已經有一些經濟類和體育類的文章樣本,可以事先統(tǒng)計出不同文章出現不同詞匯的概率。現在要判斷手上這篇文章到底是經濟類文章還是體育類文章,可以計算以下兩個“分數”。
分數1= (一篇文章是經濟類文章的概率)×(經濟類文章出現“銀行”的概率)×(經濟類文章出現“貸款”的概率)
分數2= (一篇文章是體育類文章的概率)×(體育類文章出現“銀行”的概率)×(體育類文章出現“貸款”的概率)
如果分數1大于分數2,這篇文章就更有可能是經濟類文章,反之,則認為它是體育類文章。
當然,運用樸素貝葉斯算法還需要一些“技巧”。比如,算法要避免出現某個概率是0的情況。假設基于手上已有的學習樣本,經濟類文章恰巧沒有出現過“銀行”這個詞,這時得到的(經濟類文章出現“銀行”的概率)就是0,這就出了問題,因為只要有0的存在,總得分就一定是0,這會放大不常見單詞對結果的影響。
因此,有時會為每個詞的出現次數設定一個很小的初始值,以防止那些不存在的樣本對總體概率造成影響。
針對文本處理,盡管不同單詞之間存在聯系,每種語言也有它特定的語法規(guī)則,但樸素貝葉斯選擇忽略這些關聯性。這個“樸素”的假設使得計算過程大幅簡化,而從實踐來看,結論通常不會有過大的偏差。
這就是樸素貝葉斯的“樸素”思想,它人為給了一個非常強的前提假設。由于這一假設,模型包含的條件概率數量大幅減少,樸素貝葉斯算法的預測過程也大為簡化。當然,這么做也在一定程度上犧牲了分類準確性。
三 每個人都懂貝葉斯
貝葉斯定理雖然只是一個數學公式,但其內涵已遠遠超出了公式范疇。它告訴我們,要從不同角度去思考已有的想法,以不同的方式來檢驗它們,通過實踐不斷調整對問題的假設和看法。
貝葉斯定理提供了一種看待事物的全新視角。在一個不確定的環(huán)境下,每條信息都會影響原來的概率假設,需要根據最新的信息更新和改進決策,直到決策者從一切都不確定的狀態(tài)變成可以堅定信心的狀態(tài)。
人的認知過程或許就是如此。人類一直在探索和掌握新的知識,在這個過程中,一些知識被修正,錯誤的觀念被丟棄。
“燃素”就是很好的例子。這一概念最早出現在17世紀,當時人們不了解空氣的組成,也沒有氧氣、氮氣、氧化作用等相關知識。為了解釋燃燒現象,“燃素”的概念被提出,人們認為物體會燃燒是因為有了燃素。后來經過科學實驗,人們才知道燃燒是一種化學反應,自此“燃素”的概念才被徹底棄用。
除了認知更新,貝葉斯定理也解釋了人們?yōu)槭裁春茈y接受與自身經驗相悖的信息或觀念。因為只有條件概率足夠強大,才能改變先驗概率原本的影響。
舉例來說,以前大多數人相信“大地是平的”。公元前5世紀左右,古希臘哲學家畢達哥拉斯提出“地球是球形”的猜想,但當時他沒有什么證據。后來,亞里士多德根據月食時地影的形狀,給出了第一個科學證據。直到16世紀,葡萄牙人麥哲倫實現了人類歷史上的首次環(huán)球航海,證明了“地球是圓的”,人們這才開始普遍接受“地球”這個概念。
在推理小說中,偵探推理的過程也蘊含著貝葉斯定理的思想。優(yōu)秀的偵探都會在心理先做出一個假設,比如預設某個人是罪犯的先驗概率,然后根據不斷得到的線索和證據來更新后驗概率。得到的線索越多,證據越充分,對某人是罪犯的把握就越大。
在福爾摩斯推理小說中,福爾摩斯本人就是一個非常擅長貝葉斯推理的人。他第一眼見到華生時,就知道他來自阿富汗。福爾摩斯的推理過程是這樣的:眼前這位先生,具有醫(yī)務工作者的風度,但是一副軍人氣概。于是推測對方大概率是個軍醫(yī)。
他臉色黝黑,但是手腕的皮膚黑白分明,說明原來的膚色并非黑色,所以他是剛從氣候炎熱的地帶回來的。他面容憔悴,這就說明他是久病初愈而又歷盡了艱苦。他左臂受過傷,動作起來還有些僵硬不便。試問,一個英國的軍醫(yī)在氣候炎熱的地方歷盡艱苦,臂部還負過傷,這能在什么地方呢?自然只有在阿富汗了。
這樣一系列的假設、推理、驗證,足見福爾摩斯的智慧,也展現了貝葉斯推理的過程。
無論是在數學還是在生活實踐中,貝葉斯定理都有著重要的指導意義。究其原因,是由于一件事情由“因”推導出“果”是容易的,但是要做逆運算就很困難。比如一個人向窗戶扔球,球有很大可能性會打破窗戶。我們的思考和認知都在“由因索果”這個方向上。
但如果我們只知道結果,即窗戶破了,想要推斷原因,那就必須得到更多的信息,比如到底是哪個男孩扔球打破了窗戶?窗戶是被球打破的嗎?解決這個逆概率問題要比正向推導困難得多,但貝葉斯方法為我們提供了一種估算逆概率難題的實用方法。
總的來說,我們可以從思維推導的正方向入手,直接估算那些有把握的概率,然后利用貝葉斯公式,得到逆方向上較難推導的條件概率。這是貝葉斯定理在統(tǒng)計學中的重要應用。
關于作者:徐晟,某商業(yè)銀行IT技術主管,畢業(yè)于上海交通大學,從事IT技術領域工作十余年,對科技發(fā)展、人工智能有自己獨到的見解,專注于智能運維(AIOps)、數據可視化、容量管理等方面工作。
本文摘編自《大話機器智能:一書看透AI的底層運行邏輯》,經出版方授權發(fā)布。(ISBN:9787111696193)