華文網

零基礎概率論入門:貝葉斯推斷

【編者按】由資料科學家Jonny Brooks-Bartlett撰寫的零基礎概率論教程的第三篇,貝葉斯推斷。

上一篇文章介紹了機器學習和統計模型中的參數估計的最大似然方法。本文我們將介紹參數估計的另一個方法——貝葉斯推斷。我同時將展示如何把這個方法看成最大似然的泛化版本,以及在什麼情況下兩個方法是等價的。

我們假定讀者瞭解概率論的一些基礎概念,例如邊緣概率和條件概率。本系列的第一篇文章介紹了這些概念。另外,瞭解高斯分佈的基礎知識對理解本文會有所幫助,

不過這不是必須的。

數學定義

在數學上,貝葉斯定理定義為:

其中,P(A|B)表示已知B事件發生的前提下A事件發生的概率(P(B|A)同理,只是A、B事件的角色互換了),P(A)和P(B)是A事件、B事件發生的邊緣概率。

例子

數學定義經常太抽象,令人生畏,所以讓我們使用一個例子來理解這個定義。我在本系列的第一篇文章使用過一個抽撲克牌的例子。一副牌有52張,

26張紅色,26張黑色。已知抽中的牌是紅色,這張牌的數字是4的概率是多少?

我們用數學符號表示以上問題,P(4|紅)。之前我們計算出這一概率是1/13(總共有26張紅色的牌,其中有2張是4)但現在讓我們使用貝葉斯定理來計算這個概率。

我們需要計算出貝葉斯定理右邊的各項:

P(B|A) = P(紅|4) = 1/2

P(A) = P(4) = 4/52 = 1/13

P(B) = P(紅) = 1/2

將以上數字代入貝葉斯定理,我們得到1/13,和我們預期的答案一致。

貝葉斯定理如何允許我們納入先驗信念?

之前我提到過貝葉斯定理允許我們納入先驗信念,

但是只看前文給出的等式,很難看出這是怎麼辦到的。所以讓我們使用題圖中的霜淇淋和天氣的例子。

A表示我們看到霜淇淋的事件,B表示天氣事件。接著我們也許會問已知天氣類型的前提下,銷售霜淇淋的概率是多少?在數學上這寫作P(A=霜淇淋銷售 | B=天氣類型),對應于貝葉斯定理等式的左側。

注意:我之前提到了我可能通過一家店鋪的資料獲得先驗知識,

但是其實我完全可以編造完全主觀的先驗知識,不基於任何資料。有可能某人基於個人經歷和特定的領域知識獲得先驗知識。先驗知識的選擇會影響最終的計算。我會在本文後面的部分詳細討論先驗信念的強度如何影響結果。

貝葉斯推斷

定義

現在我們知道貝葉斯定理是什麼,以及它的用法,我們可以開始回答貝葉斯推斷是什麼這一問題。

首先,(在統計學上)推斷是推理資料的種群分佈或概率分佈的性質的過程。上一篇最大似然的文章其實就包含了這一過程。我們基於觀察到的一組資料點決定均值的最大似然估計。

因此貝葉斯推斷不過是使用貝葉斯定理推理資料的種群分佈或概率分佈的性質的過程。

將貝葉斯定理應用於分佈

到目前為止,所有的例子中,貝葉斯定理的每一項的值都是單個數字。這意味著我們得到的答案也將是單個數字。然而,有時候單個數字可能不怎麼合適。

在前文的霜淇淋的例子中,我們看到銷售霜淇淋的先驗概率是0.3。然而,如果0.3只是我的最佳猜測,我並不是非常確定,會怎麼樣?概率也可能是0.25或0.4。在這一情形下,用一個分佈來表示我們的先驗信念可能更加合適(見下圖)。這一分佈被稱為先驗分佈。

上圖為表示任意一天霜淇淋銷售的兩個分佈。藍色曲線和金色曲線的峰值均位於0.3附近,如前所述,這是我們對霜淇淋銷售的先驗概率的最佳猜測。而f(x)在其他處的值並不為零,表明我們並不是完全確信0.3是霜淇淋銷售的真實值。藍色曲線顯示它可能是0到0.5之間的任何值,而金色曲線顯示它可能是0和1之間的任何值。相比藍色曲線,金色曲線更為舒展,峰值更低,這意味著金色曲線表達的先驗概率“不那麼確定”。

基於類似的方法,我們可以用分佈表示貝葉斯定理中的其他項。當我們處理模型的時候,大多數情況下我們都需要使用分佈。

貝葉斯定理的模型形式

前文介紹貝葉斯定理的定義時,我使用A、B表示事件。但關於貝葉斯定理的模型形式的文獻往往使用不同的符號。

我們通常使用Θ而不是A。Θ表示一組參數。所以如果我們嘗試估計高斯分佈的參數值,那麼Θ表示均值μ和標準差σ(在數學上寫作Θ = {μ, σ})。

我們通常使用data或者y = {y1, y2, …, yn},而不是B。這代表資料,也就是我們的觀測集合。我會在等式中顯式地使用data,希望這能讓等式看起來不那麼晦澀。

因此,貝葉斯定理的模型形式寫作:

P(Θ)為先驗分佈,表示我們關於參數的真值的信念,就像我們之前用分佈表示我們關於霜淇淋銷售的概率的信念。

等式左邊的P(Θ|data)稱為後驗分佈。它表示基於已經觀測到的資料計算出等式右邊的各項之後我們對參數的信念。

其實我們之間已經接觸過P(data|Θ)。如果你讀完了我前一篇關於最大似然的文章,那麼你會記得我們提到過L(data; μ, σ) 是(高斯分佈的)似然分佈。好,P(data|Θ) 正是這個,它是改頭換面的似然分佈。有時它寫作ℒ(Θ; data),都是一回事。有時它被稱為證據。

因此,我們可以通過證據更新我們的先驗信念來計算我們的參數的後驗分佈。

這給了我們充足的資訊來討論使用貝葉斯推斷來推斷參數的一個例子。但是首先……

為什麼我完全忽視了P(data)?

除了資料的邊緣概率之外,P(data)並沒有什麼特別的名字。記住,我們關心的是參數值,而P(data)並沒有提到參數。事實上,P(data)甚至不是一個分佈。它只是一個數字。我們已經觀測到了資料,因此我們計算出P(data)。一般而言,結果我們發現計算P(data)會非常困難,存在太多方法計算它的方法。Prasoon Goyal的這篇博客解釋了其中一些方法。

P(data)之所以重要,是因為它得出的數字是一個歸一化常量。概率分佈的一個必要條件是一個事件的所有可能性的概率之和為1(例如,投擲一枚6面骰得到1、2、3、4、5、6點的全概率等於1)。歸一化常量通過確保分佈之和(其實我應該說積分,因為通常我們碰到的是連續分佈,不過目前這麼說太過於賣弄學問了)等於1來確保所得的後驗分佈是真實概率分佈。

在某些情況下,我們並不關心分佈的這一性質。我們只關心分佈的峰值何時出現,而不在乎分佈是否歸一化。在這一情況下,很多人把貝葉斯定理的模型形式寫作

其中∝表示“成比例”。這顯式地表明瞭真實後驗分佈不等於右邊的式子,因為我們沒有考慮歸一化常量P(data)。

貝葉斯推斷的例子

幹得不錯,都讀到這裡了。閱讀了這些理論之後你可能需要休息一下。下面我們將繼續討論一個用貝葉斯推斷來處理會比較順手的例子。我們將使用的例子是求氫鍵的長度。你並不需要知道氫鍵是什麼。我只是拿它做一個例子,這是在我讀博的時候幫助朋友解決的一個問題(當時我們在生化部門)。

我加上了這張圖片是因為我覺得它看起來挺不錯的,有助於打斷密集的文本,某種意義上也和我們要討論的例子相關。別擔心,你不需要理解這張圖片以理解我們的貝葉斯推斷過程。萬一你好奇這張圖片從哪裡來,那我告訴你這張圖片是我用Inkscape自己做的。

讓我們假定氫鍵的長度在3.2Å到4.0Å之間(我google了一下得到了這個結果,埃,Å,是一個長度單位,1Å等於0.1納米,所以我們談論的是一個非常小的尺度)。這一資訊將構成我們的先驗。用概率分佈的術語來說,我將其形式化地表示為均值μ = 3.6Å、標準差σ = 0.2Å的高斯分佈(見下圖)。

氫鍵長度的先驗概率

現在我們提供一些資料(準確的說,是基於均值為3Å、標準差為0.4Å的高斯分佈隨機生成的5個資料點。在現實世界場景中,這些資料將來自科學試驗的結果),這些資料給出了氫鍵的長度(下圖中金色的點)。我們可以使用最大似然得到資料的似然分佈,正如我們在前一篇文章中所做的那樣。假定資料是使用可以用高斯分佈描述的過程生成的,我們得到下圖中金色曲線表示的似然分佈。注意最大似然估計得到的5個資料點的均值低於3(約為2.8Å)。

藍色曲線為氫鍵的先驗分佈,金色曲線為氫鍵的似然分佈

現在我們有兩個高斯分佈,藍色代表先驗,金色代表似然。我們並不在乎歸一化常量,因此我們具備了計算未歸一的後驗分佈的一切資訊。回顧一下,表示高斯分佈的概率分佈的等式為:

所以我們將取兩個分佈的乘積。我不會在這裡詳細列出數學上的運算過程,因為這會很淩亂。如果你對數學感興趣,你可以參考這篇文檔的前2頁。下圖中的粉色曲線表示所得的後驗分佈。

藍色分佈與金色分佈相乘得到粉色的後驗分佈曲線

現在我們得到了氫鍵長度的後驗分佈,我們可以從中提取資料。例如,我們可以使用分佈的期望值來估計距離。或者我們可以計算方差以量化我們結論的不確定性。從後驗分佈中,我們最常計算的是眾數。眾數經常被用來估計感興趣的參數的真值,我們稱其為最大後驗概率估計(Maximum a posteriori probability estimate),簡稱MAP估計。在我們的例子中,後驗分佈同時也是高斯分佈,因此均值等於眾數(也等於中位數),氫鍵距離的MAP估計位於分佈的峰頂處(約為3.2Å)。

結語

怎麼總是高斯分佈?

你會注意到,我們所有關於分佈的例子中都使用了高斯分佈。主要的一個原因是這大大簡化了數學。但是在貝葉斯推斷的例子中 ,我們得計算兩個分佈的乘積。我說過這很淩亂,所以我沒有詳細列出數學計算過程。但是即便我自己沒有進行這些數學計算,我早就知道後驗分佈會是高斯分佈。因為高斯分佈具有一個特別的性質,使得高斯分佈易於處理。高斯分佈和自身的高斯似然函數是共軛的。這意味著,如果我將一個高斯先驗分佈乘以一個高斯似然函數,我將得到一個高斯後驗函數。後驗與先驗來自同一分佈家族(它們都是高斯分佈)意味著它們是共軛分佈。在這個例子中,先驗分佈是一個共軛先驗。

在很多推斷的場景中,我們選擇使所得分佈共軛的似然和先驗,因為這簡化了數學。資料科學中的一個例子是隱含狄利克雷分佈(LDA),這是一種在多個文檔(語料庫)中搜尋主題的無監督學習演算法。Edwin Chen的博客上有一篇非常出色的LDA的介紹。

在某些情形下,我們不能簡單地選擇簡化後驗分佈計算過程的先驗或似然。有時似然和/或先驗分佈看起來會很嚇人,手工計算後驗不容易,甚至不可能。在這些情形下,我們可以使用不同的方法計算後驗分佈。最常用的方法之一是瑪律可夫鏈蒙特卡羅法。Ben Shaver寫過一篇很棒的文章無需數學公式就讓你明白什麼是瑪律可夫鏈蒙特卡羅法,以非常平易近人的方式解釋了這一技術。

我們獲得新資料時會發生什麼?

貝葉斯推斷的一個巨大優勢就是你不需要大量資料就可以使用它。一個觀察足夠更新先驗。事實上,貝葉斯框架允許你隨著資料的流入反覆運算地即時更新你的信念。你具備對某事的先驗信念(例如,參數的值),接著你收到了一些資料。你可以像我們之前做的那樣通過計算後驗概率來更新你的信念。之後,我們收到更多的資料。因此我們的後驗這時變成了先驗。我們可以通過基於新資料得到的似然更新我們的新先驗,再次得到一個新後驗。無限循環往復,不斷更新你的信念。

卡爾曼濾波(及其變體)是一個很好的例子。它用於許多場景,但在資料科學中,最引人注目的應用是無人駕駛汽車。我讀博期間在蛋白質結晶學中使用了卡爾曼濾波的一個變體,無軌跡卡爾曼濾波(Unscented Kalman filter),並給實現這一變體的開源套裝軟體貢獻了代碼。你可以參考Tim Babb的博客How a Kalman filter works, in pictures(卡爾曼濾波工作機制圖示),一個很好的卡爾曼濾波的視覺化描述。

使用先驗作為正則化項

前文的氫鍵長度例子中我們生成的資料表明2.8Å是最佳估計。然而,如果我們僅僅根據資料進行估計,我們可能會有過擬合的風險。如果資料收集過程出了差錯,這個問題會很嚴重。在貝葉斯框架中,我們可以使用先驗來解決這個問題。在我們的例子中,一個3.6Å的高斯先驗得到了一個後驗分佈,該分佈給出的氫鍵長度的MAP估計為3.2Å。這展示了我們的先驗在估計參數值時可以作為正則化項。

先驗和似然給出的權重取決於兩個分佈的相對不確定性。在下圖中我們可以從圖像上看到這一點。顏色和前文一樣,藍色代表先驗分佈,金色代表似然,粉色代表後驗。左圖中,你可以看到,先驗(藍色)遠不如似然(金色)那樣舒展。因此相比似然,後驗更接近先驗。右圖的情況恰恰相反。

因此,如果我們希望增加一個參數的正則化,我們可以相對於似然收緊先驗分佈。

Michael Green寫過一篇The truth about Bayesian priors and overfitting(貝葉斯先驗和過擬合的真相),詳細討論了這一問題,並給出了如何設置先驗的建議。

什麼時候MAP估計等於最大似然估計?

當先驗分佈是均勻分佈時,MAP估計等於先驗分佈。下面是一個均勻分佈的例子。

我們看到,均勻分佈賦予x軸上的每個值相同的權重(它是一條水平線)。直覺上它表示缺乏哪個值可能性更大的任何先驗知識。在這一情形下,所有的權重歸於似然函數,所以當我們將先驗與似然相乘的時候,所得的後驗精確地重現了似然。因此,我們可以把最大似然方法看成MAP的一個特例。

當我開始寫這篇文章的時候,實際上我沒想到會這麼長。所以非常感謝你閱讀到這裡。我真的很感激。和前兩篇一樣,如果有什麼不清楚的,或者我有什麼地方搞錯的,歡迎留言。本系列的下一篇文章我大概會嘗試介紹如何使用變數消除法處理P(data),我這篇文章中略過的歸一化常量。當然,如果有人希望我寫點別的,我可能會改變主意。;)

感謝閱讀!

這意味著我們得到的答案也將是單個數字。然而,有時候單個數字可能不怎麼合適。

在前文的霜淇淋的例子中,我們看到銷售霜淇淋的先驗概率是0.3。然而,如果0.3只是我的最佳猜測,我並不是非常確定,會怎麼樣?概率也可能是0.25或0.4。在這一情形下,用一個分佈來表示我們的先驗信念可能更加合適(見下圖)。這一分佈被稱為先驗分佈。

上圖為表示任意一天霜淇淋銷售的兩個分佈。藍色曲線和金色曲線的峰值均位於0.3附近,如前所述,這是我們對霜淇淋銷售的先驗概率的最佳猜測。而f(x)在其他處的值並不為零,表明我們並不是完全確信0.3是霜淇淋銷售的真實值。藍色曲線顯示它可能是0到0.5之間的任何值,而金色曲線顯示它可能是0和1之間的任何值。相比藍色曲線,金色曲線更為舒展,峰值更低,這意味著金色曲線表達的先驗概率“不那麼確定”。

基於類似的方法,我們可以用分佈表示貝葉斯定理中的其他項。當我們處理模型的時候,大多數情況下我們都需要使用分佈。

貝葉斯定理的模型形式

前文介紹貝葉斯定理的定義時,我使用A、B表示事件。但關於貝葉斯定理的模型形式的文獻往往使用不同的符號。

我們通常使用Θ而不是A。Θ表示一組參數。所以如果我們嘗試估計高斯分佈的參數值,那麼Θ表示均值μ和標準差σ(在數學上寫作Θ = {μ, σ})。

我們通常使用data或者y = {y1, y2, …, yn},而不是B。這代表資料,也就是我們的觀測集合。我會在等式中顯式地使用data,希望這能讓等式看起來不那麼晦澀。

因此,貝葉斯定理的模型形式寫作:

P(Θ)為先驗分佈,表示我們關於參數的真值的信念,就像我們之前用分佈表示我們關於霜淇淋銷售的概率的信念。

等式左邊的P(Θ|data)稱為後驗分佈。它表示基於已經觀測到的資料計算出等式右邊的各項之後我們對參數的信念。

其實我們之間已經接觸過P(data|Θ)。如果你讀完了我前一篇關於最大似然的文章,那麼你會記得我們提到過L(data; μ, σ) 是(高斯分佈的)似然分佈。好,P(data|Θ) 正是這個,它是改頭換面的似然分佈。有時它寫作ℒ(Θ; data),都是一回事。有時它被稱為證據。

因此,我們可以通過證據更新我們的先驗信念來計算我們的參數的後驗分佈。

這給了我們充足的資訊來討論使用貝葉斯推斷來推斷參數的一個例子。但是首先……

為什麼我完全忽視了P(data)?

除了資料的邊緣概率之外,P(data)並沒有什麼特別的名字。記住,我們關心的是參數值,而P(data)並沒有提到參數。事實上,P(data)甚至不是一個分佈。它只是一個數字。我們已經觀測到了資料,因此我們計算出P(data)。一般而言,結果我們發現計算P(data)會非常困難,存在太多方法計算它的方法。Prasoon Goyal的這篇博客解釋了其中一些方法。

P(data)之所以重要,是因為它得出的數字是一個歸一化常量。概率分佈的一個必要條件是一個事件的所有可能性的概率之和為1(例如,投擲一枚6面骰得到1、2、3、4、5、6點的全概率等於1)。歸一化常量通過確保分佈之和(其實我應該說積分,因為通常我們碰到的是連續分佈,不過目前這麼說太過於賣弄學問了)等於1來確保所得的後驗分佈是真實概率分佈。

在某些情況下,我們並不關心分佈的這一性質。我們只關心分佈的峰值何時出現,而不在乎分佈是否歸一化。在這一情況下,很多人把貝葉斯定理的模型形式寫作

其中∝表示“成比例”。這顯式地表明瞭真實後驗分佈不等於右邊的式子,因為我們沒有考慮歸一化常量P(data)。

貝葉斯推斷的例子

幹得不錯,都讀到這裡了。閱讀了這些理論之後你可能需要休息一下。下面我們將繼續討論一個用貝葉斯推斷來處理會比較順手的例子。我們將使用的例子是求氫鍵的長度。你並不需要知道氫鍵是什麼。我只是拿它做一個例子,這是在我讀博的時候幫助朋友解決的一個問題(當時我們在生化部門)。

我加上了這張圖片是因為我覺得它看起來挺不錯的,有助於打斷密集的文本,某種意義上也和我們要討論的例子相關。別擔心,你不需要理解這張圖片以理解我們的貝葉斯推斷過程。萬一你好奇這張圖片從哪裡來,那我告訴你這張圖片是我用Inkscape自己做的。

讓我們假定氫鍵的長度在3.2Å到4.0Å之間(我google了一下得到了這個結果,埃,Å,是一個長度單位,1Å等於0.1納米,所以我們談論的是一個非常小的尺度)。這一資訊將構成我們的先驗。用概率分佈的術語來說,我將其形式化地表示為均值μ = 3.6Å、標準差σ = 0.2Å的高斯分佈(見下圖)。

氫鍵長度的先驗概率

現在我們提供一些資料(準確的說,是基於均值為3Å、標準差為0.4Å的高斯分佈隨機生成的5個資料點。在現實世界場景中,這些資料將來自科學試驗的結果),這些資料給出了氫鍵的長度(下圖中金色的點)。我們可以使用最大似然得到資料的似然分佈,正如我們在前一篇文章中所做的那樣。假定資料是使用可以用高斯分佈描述的過程生成的,我們得到下圖中金色曲線表示的似然分佈。注意最大似然估計得到的5個資料點的均值低於3(約為2.8Å)。

藍色曲線為氫鍵的先驗分佈,金色曲線為氫鍵的似然分佈

現在我們有兩個高斯分佈,藍色代表先驗,金色代表似然。我們並不在乎歸一化常量,因此我們具備了計算未歸一的後驗分佈的一切資訊。回顧一下,表示高斯分佈的概率分佈的等式為:

所以我們將取兩個分佈的乘積。我不會在這裡詳細列出數學上的運算過程,因為這會很淩亂。如果你對數學感興趣,你可以參考這篇文檔的前2頁。下圖中的粉色曲線表示所得的後驗分佈。

藍色分佈與金色分佈相乘得到粉色的後驗分佈曲線

現在我們得到了氫鍵長度的後驗分佈,我們可以從中提取資料。例如,我們可以使用分佈的期望值來估計距離。或者我們可以計算方差以量化我們結論的不確定性。從後驗分佈中,我們最常計算的是眾數。眾數經常被用來估計感興趣的參數的真值,我們稱其為最大後驗概率估計(Maximum a posteriori probability estimate),簡稱MAP估計。在我們的例子中,後驗分佈同時也是高斯分佈,因此均值等於眾數(也等於中位數),氫鍵距離的MAP估計位於分佈的峰頂處(約為3.2Å)。

結語

怎麼總是高斯分佈?

你會注意到,我們所有關於分佈的例子中都使用了高斯分佈。主要的一個原因是這大大簡化了數學。但是在貝葉斯推斷的例子中 ,我們得計算兩個分佈的乘積。我說過這很淩亂,所以我沒有詳細列出數學計算過程。但是即便我自己沒有進行這些數學計算,我早就知道後驗分佈會是高斯分佈。因為高斯分佈具有一個特別的性質,使得高斯分佈易於處理。高斯分佈和自身的高斯似然函數是共軛的。這意味著,如果我將一個高斯先驗分佈乘以一個高斯似然函數,我將得到一個高斯後驗函數。後驗與先驗來自同一分佈家族(它們都是高斯分佈)意味著它們是共軛分佈。在這個例子中,先驗分佈是一個共軛先驗。

在很多推斷的場景中,我們選擇使所得分佈共軛的似然和先驗,因為這簡化了數學。資料科學中的一個例子是隱含狄利克雷分佈(LDA),這是一種在多個文檔(語料庫)中搜尋主題的無監督學習演算法。Edwin Chen的博客上有一篇非常出色的LDA的介紹。

在某些情形下,我們不能簡單地選擇簡化後驗分佈計算過程的先驗或似然。有時似然和/或先驗分佈看起來會很嚇人,手工計算後驗不容易,甚至不可能。在這些情形下,我們可以使用不同的方法計算後驗分佈。最常用的方法之一是瑪律可夫鏈蒙特卡羅法。Ben Shaver寫過一篇很棒的文章無需數學公式就讓你明白什麼是瑪律可夫鏈蒙特卡羅法,以非常平易近人的方式解釋了這一技術。

我們獲得新資料時會發生什麼?

貝葉斯推斷的一個巨大優勢就是你不需要大量資料就可以使用它。一個觀察足夠更新先驗。事實上,貝葉斯框架允許你隨著資料的流入反覆運算地即時更新你的信念。你具備對某事的先驗信念(例如,參數的值),接著你收到了一些資料。你可以像我們之前做的那樣通過計算後驗概率來更新你的信念。之後,我們收到更多的資料。因此我們的後驗這時變成了先驗。我們可以通過基於新資料得到的似然更新我們的新先驗,再次得到一個新後驗。無限循環往復,不斷更新你的信念。

卡爾曼濾波(及其變體)是一個很好的例子。它用於許多場景,但在資料科學中,最引人注目的應用是無人駕駛汽車。我讀博期間在蛋白質結晶學中使用了卡爾曼濾波的一個變體,無軌跡卡爾曼濾波(Unscented Kalman filter),並給實現這一變體的開源套裝軟體貢獻了代碼。你可以參考Tim Babb的博客How a Kalman filter works, in pictures(卡爾曼濾波工作機制圖示),一個很好的卡爾曼濾波的視覺化描述。

使用先驗作為正則化項

前文的氫鍵長度例子中我們生成的資料表明2.8Å是最佳估計。然而,如果我們僅僅根據資料進行估計,我們可能會有過擬合的風險。如果資料收集過程出了差錯,這個問題會很嚴重。在貝葉斯框架中,我們可以使用先驗來解決這個問題。在我們的例子中,一個3.6Å的高斯先驗得到了一個後驗分佈,該分佈給出的氫鍵長度的MAP估計為3.2Å。這展示了我們的先驗在估計參數值時可以作為正則化項。

先驗和似然給出的權重取決於兩個分佈的相對不確定性。在下圖中我們可以從圖像上看到這一點。顏色和前文一樣,藍色代表先驗分佈,金色代表似然,粉色代表後驗。左圖中,你可以看到,先驗(藍色)遠不如似然(金色)那樣舒展。因此相比似然,後驗更接近先驗。右圖的情況恰恰相反。

因此,如果我們希望增加一個參數的正則化,我們可以相對於似然收緊先驗分佈。

Michael Green寫過一篇The truth about Bayesian priors and overfitting(貝葉斯先驗和過擬合的真相),詳細討論了這一問題,並給出了如何設置先驗的建議。

什麼時候MAP估計等於最大似然估計?

當先驗分佈是均勻分佈時,MAP估計等於先驗分佈。下面是一個均勻分佈的例子。

我們看到,均勻分佈賦予x軸上的每個值相同的權重(它是一條水平線)。直覺上它表示缺乏哪個值可能性更大的任何先驗知識。在這一情形下,所有的權重歸於似然函數,所以當我們將先驗與似然相乘的時候,所得的後驗精確地重現了似然。因此,我們可以把最大似然方法看成MAP的一個特例。

當我開始寫這篇文章的時候,實際上我沒想到會這麼長。所以非常感謝你閱讀到這裡。我真的很感激。和前兩篇一樣,如果有什麼不清楚的,或者我有什麼地方搞錯的,歡迎留言。本系列的下一篇文章我大概會嘗試介紹如何使用變數消除法處理P(data),我這篇文章中略過的歸一化常量。當然,如果有人希望我寫點別的,我可能會改變主意。;)

感謝閱讀!