JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

貝氏定理與信念更新

以例子開路、溫和講解證據應當如何改變你的判斷——條件機率,先驗、似然與後驗,那個著名的公式,以及悄悄訓練了半個機器學習領域的最大似然思想。

取決於你已知資訊的機率

在本階你已經見過隨機變數機率分布。貝氏定理,就是把這套機器拿來回答一個非常貼近人的問題:*既然我已經看到了某些跡象,我該如何更新自己原本的判斷?*這一步——把新證據轉化為修正後的信念——正是大量統計學與機器學習的脈搏所在。

你需要的第一個觀念是條件機率:在*已知*另一件事為真的前提下,某件事發生的可能性。我們寫作 P(A | B),讀作「在 B 的條件下 A 的機率」。那道豎線意思是「在 B 已經發生的那個世界裡」。比如,隨機一個人帶傘的機率是一個數;而*在外面正下雨的前提下*他帶傘的機率,通常要高一些。所謂條件化,無非是把世界縮小到與你所觀察到的情形相符的那些情況,再在這個更小的世界裡問你的問題。

三個詞:先驗、似然、後驗

貝氏式思考把任何更新問題拆成三個有名字的部件。先驗是你在新證據到來*之前*所持的信念:你事先賦予某個假設的一個機率。似然衡量這個假設對你實際看到的證據解釋得有多好:如果假設為真,這個觀察出現的機率有多大?後驗則是你把兩者結合之後*修正*過的信念。這三者合在一起,先驗、似然與後驗,就是這套方法的全部詞彙。

一個好用的心象:先驗是你的起點,似然是證據施加的那股拉力,後驗是你被拉扯之後的落點。強證據(似然非常一邊倒)拉得很猛,能掀翻一個不算堅定的先驗;弱證據或模稜兩可的證據幾乎拉不動你,於是後驗仍貼近先驗。任何事都不會絕對確定——你最終得到的總是一份信念的*分布*,而不是一錘定音的判決。

當這個循環一遍遍運轉——隨著更多資料到來,今天的後驗成為明天的先驗——你就擁有了貝氏推斷的引擎。它其實是審慎之人本就會用的推理方式的一個規範化版本:先持一個暫定的看法,觀察發生了什麼,再按證據有多出人意料的程度去相應地調整。

公式,以及一個完整算例

下面就是貝氏定理本身,把名字標上去,它就再也不像一句魔咒了:

P(H | E) = P(E | H) * P(H) / P(E)

  P(H | E)  posterior  -> belief AFTER seeing evidence
  P(E | H)  likelihood -> how well H explains E
  P(H)      prior      -> belief BEFORE the evidence
  P(E)      evidence   -> total chance of seeing E at all
後驗 = 似然乘以先驗,再除以證據出現的總機率。分母只是個歸一化因子,讓各機率加起來等於 1。

我們用經典的「醫學檢測」謎題把它落到實處,因為答案幾乎讓所有人都吃驚。某種病的患病率是千分之一。檢測能查出99%的真實病例(這是你患病時的似然),但它也有5%的假陽性率(對 5% 的健康人會誤報)。現在你檢測呈陽性。你真正患病的機率是多少?

  1. 先驗:檢測前,P(患病) = 0.001,於是 P(健康) = 0.999。
  2. 患病時陽性的似然 = 0.99;健康時陽性的似然 = 0.05。
  3. 證據(出現陽性的總機率)= 0.99×0.001 + 0.05×0.999 = 0.00099 + 0.04995 = 0.05094。
  4. 後驗:P(患病 | 陽性) = 0.00099 / 0.05094 ≈ 0.019——還不到 2%。

請再讀一遍:一項*99% 準確*的檢測呈陽性,仍然意味著你大約有 98% 的可能沒事。原因就在於先驗。這病實在太罕見,在龐大的健康人群中產生的少量假陽性,遠遠蓋過了真陽性。貝氏定理強迫你始終把基礎發生率放在視野裡——一旦忽略先驗,你就會反應過度得離譜。(不過,一次陽性也並非毫無意義:你的信念從 0.1% 跳到了約 2%,足足升了二十倍,這正是醫生為什麼會再開一項獨立的複檢。)

最大似然:先驗那位低調的表親

貝氏要的是後驗,但要誠實地求後驗,就得對一個先驗作出承諾——而有時你並不想這麼做。最大似然走的是更精簡的一條路。它不問「給定資料我該相信什麼」,而是問「哪一組未知量的取值,會讓我所看到的資料出現得最有可能?」你選出讓似然最大的那個假設,到此為止。這就是最大似然估計,它無處不在。

一個小例子:你把一枚彎曲的硬幣拋 10 次,得到 7 次正面。這枚硬幣出正面的真實機率是多少?最大似然給出 0.7——在這個取值下,「10 中 7」出現得最有可能。這恰好就是你直覺早已給出的答案。關鍵在於,那份*直覺*其實是一套精確的數學程序,而這套程序可以推廣到有幾百萬個未知量、直覺徹底失靈的模型上去。

下面這座橋把貝氏接回來,也把本階串了起來。最大似然其實就是關掉了先驗的貝氏——假定一切假設事先同樣可信,於是後驗完全由似然來驅動。當你確實毫無先驗知識時,這樣做是誠實的;當你其實有先驗知識時,這樣做就有風險:在資料極少的情況下,忽略一個合理的先驗,會讓一次小小的偶然(比如那枚彎幣恰好碰運氣出了 7 次正面)被太當真。

它在機器學習裡出現在哪兒

這並不是跑題——它正是模型如何學習的脊梁。當你訓練幾乎任何一個分類器或迴歸器時,你所最小化的那個損失函數,往往不過是負對數似然的偽裝。「找出讓訓練資料最有可能的參數」與「找出讓損失最小的參數」,常常是*同一句話*的兩種寫法。所以你剛剛認識的最大似然思想,悄悄驅動著訓練中極大的一部分。

貝氏定理也直接登台主演。那個名字歡快的小分類器——樸素貝氏——把公式徑直套在文字上,用於垃圾郵件過濾卻出奇地好用:它只是把各個詞的似然相乘,再讓「垃圾 vs 非垃圾」的先驗來左右天平。而垃圾郵件過濾器、醫學檢測、詐騙偵測器,全都共享同一個陷阱:當你要找的東西很罕見時,即便是準確的探測器,只要不尊重基礎發生率,也會被假警報淹沒。

還有一條要帶著往後走的誠實告誡。後驗只與它的輸入一樣可靠:有偏的先驗,或設錯的似然,會給出一個自信滿滿卻錯誤的答案,外面還裹著數字的權威。貝氏並不會憑空製造確定性——它只是為你餵進去的那份確定性記帳。如今對不確定性量化的關注之所以存在,正是因為真實系統不僅要說出*預測了什麼*,還要說出*有多確定*;而一個沒有拿現實檢驗過的機率,可能危險地過度自信。