從一條關於事件的定理,到一套學習的方法
你最早是在條件機率那一階遇見貝氏定理的,當時它是用來翻轉一個條件機率的工具:P(A given B) = P(B given A) P(A) / P(B)。那是一則關於兩個事件的陳述。驅動所有現代資料分析的那一躍,是把完全相同的代數,套用到的不是某個事件,而是某個未知的數——一枚硬幣真正的偏心、一種藥物真正的療效、一個星系真正的距離——並把我們對那個數的不確定,當成一個完整的機率分配來對待。這一步就是貝氏推論,它把一次翻轉,變成一條學習法則。
把那個未知量寫成 theta。在看到任何資料之前,我們把對 theta 的信念編碼成一個先驗分配,P(theta)。資料 D 抵達後,概似度 P(D given theta) 衡量的是:每一個 theta 的候選值,會把我們恰好看到的這份資料預測得多好。貝氏定理把兩者合成為後驗,P(theta given D)——也就是資料進來之後我們對 theta 的信念。用一句話說:後驗正比於概似乘以先驗。這一階的整部引擎,就架在這一句話上。
P(D given theta) * P(theta)
P(theta given D) = ---------------------------
P(D)
posterior = likelihood x prior / evidence
P(D) = integral over theta of P(D given theta) * P(theta)
(the normalizing constant; just makes the posterior integrate to 1)概似度不是 theta 上的機率
這裡最常見的一個混淆,值得在我們動手算任何東西之前先釘死。概似度 P(D given theta) 要當成 theta 的函數來讀,而把資料 D 固定在你實際觀測到的那份上。作為 theta 的函數,它「不是」一個機率分配:它的積分不必等於 1,它底下的面積也毫無意義。它只告訴你:在資料之下,每一個 theta 各自的相對可信程度。機率的陳述是由先驗提供的;概似度只是替它重新加權。
這也順手釐清了一個頻率學派的反射動作。經典的最大概似估計挑出讓概似度最大的那一個 theta——也就是最能解釋資料的那個值,僅此而已。貝氏學派則保留整條曲線,再把它乘上先驗。若你的先驗在 theta 上是平坦的(均勻),後驗就只是概似度重新歸一化的結果,而它的峰恰好落在最大概似估計上。所以最大概似估計,不過是「碰巧從平坦先驗出發、又只回報峰值」的那種貝氏學派的特例。回報整條後驗的貝氏學派,攜帶的資訊嚴格地更多。
一次完整的更新:這枚硬幣公平嗎?
令 theta 為一枚硬幣出現正面的機率,落在 [0, 1] 之間。我們擲它 10 次,看到 8 次正面。對任一 theta 而言,概似度就是該結果的二項機率:P(10 次中 8 次正面 given theta) 正比於 theta^8 * (1 - theta)^2,其中的二項係數被併進了我們稍後會歸一化掉的常數裡。注意這條概似度在 theta = 0.8 處達到峰值——即最大概似估計——但它是一座寬闊的山丘,而非一根尖峰,因為 10 次擲幣並不算多少證據。
現在我們需要一個先驗。假設我們確實一無所知,採用平坦先驗 P(theta) = 1 於 [0, 1] 上。那麼後驗正比於 theta^8 * (1 - theta)^2——也就是概似度,重新歸一化到積分為 1。後驗的平均算出來是 (8 + 1) / (10 + 2) = 9/12 = 0.75,比原始的 0.8 略微被拉回中央,因為平坦先驗悄悄貢獻了「一次想像中的正面與一次想像中的反面」的權重。這份溫和的收縮是個優點:在資料稀少時,先驗使我們不致過早押注在 0.8 上。
- 替未知量與其先驗命名:theta 落在 [0, 1] 是出現正面的機率;取平坦先驗 P(theta) = 1。
- 替你實際看到的資料寫出概似度:10 次中 8 次正面,給出正比於 theta^8 * (1 - theta)^2 的概似度。
- 先驗乘以概似度:後驗正比於 1 * theta^8 * (1 - theta)^2。
- 歸一化,使後驗密度積分為 1,然後替它做總結——此處後驗平均為 (8+1)/(10+2) = 0.75。
- 用後驗回答真正的問題:例如算出 P(theta > 0.5 given D),以衡量我們對「硬幣偏向正面」有多少把握。
共軛先驗:當算術自動消失
一般而言,徒手算那個歸一化積分相當折磨人,而在更高維度裡,它正是接下來蒙地卡羅與 MCMC 那幾篇指南存在的目的——要去攻克的核心困難。但對這枚硬幣,有一條魔法捷徑。把平坦先驗換成一個 Beta 分配,Beta(a, b),其密度正比於 theta^(a-1) * (1 - theta)^(b-1)。把它乘上二項概似度 theta^h * (1 - theta)^t(h 次正面、t 次反面),指數就只是相加:後驗正比於 theta^(a + h - 1) * (1 - theta)^(b + t - 1),這恰恰就是 Beta(a + h, b + t)。
這就是共軛先驗的概念:一個先驗族,當它與某個給定的概似度配對時,會交回一個落在同一族裡的後驗。更新於是變成純粹的記帳——把觀測到的正面數加到 a 上,把觀測到的反面數加到 b 上,就完成了;無須任何積分。我們先前用的平坦先驗,其實只是 Beta(1, 1) 的喬裝,這也正是為何我們的後驗平均算出來是 (8+1)/(10+2):Beta(a, b) 的平均是 a/(a+b),所以更新後便是 (a+h)/(a+b+h+t) = (1+8)/(1+1+8+2)。先驗參數 a 與 b 讀作「假想計數」——你假裝在真實資料之前已先見過的正面與反面次數。
讀懂後驗,並對先驗保持誠實
後驗就是答案,但你通常需要替它做總結。像後驗平均這樣的點總結只是一個數字;而一個可信區間資訊量遠大得多。一個 95% 可信區間,不過是一個容納了 95% 後驗機率的區間,因此你可以直白地說「在這份資料與先驗之下,theta 落在此處的機率是 95%」。這句關於參數的直接機率陳述,恰恰是頻率學派的信賴區間「不能」給你的——一個微妙但真切的區別,我們會在統計學那一篇裡把它磨利。
你真正想要的,往往是一個預測,而非那個參數。後驗預測分配回答的是「下一次擲幣會怎樣?」——做法是把新結果的概似度,對「整條後驗」取平均,而不是對單一的最佳猜測 theta 取平均。對我們這枚在平坦先驗下擲出 10 中 8 正面的硬幣而言,下一擲為正面的預測機率就是後驗平均 0.75——而關鍵在於,它把我們對 theta 殘餘的不確定也算了進去,而非假裝我們確知 theta = 0.8。若代入單一的點估計,便會低估這個預測實際上有多不確定。
最後,是那個界定整套方法的誠實警語。後驗依賴於先驗,所以一個貝氏結論的站得住腳程度,至多只等於其背後那個先驗——先驗挑得差,你就可能讓答案產生偏差,而且並不存在一個人人都同意的全然「客觀」的選擇。實務上的防線是真切的:當資料充足時概似度會主導,合理的先驗會收斂到幾乎相同的後驗;你可以跨好幾個先驗做敏感度檢查;而把先驗公開陳述出來,使你的假設可被稽核而非藏匿。貝氏對頻率學派之爭,骨子裡正是關於這一點的辯論:給一個未知的常數安上一個機率,究竟是一種優勢,還是一種越界。兩個陣營算的是同一個概似度——他們分道揚鑣之處,在於 theta 是否配擁有一個屬於自己的分配。