共軛分布


在貝葉斯概率理論中,如果后驗概率和先驗概率滿足同樣的分布律,那么,先驗分布和后驗分布被叫做共軛分布,同時,先驗分布叫做似然函數的共軛先驗分布。

Beta分布是二項式分布的共軛先驗分布,而狄利克雷(Dirichlet)分布是多項式分布的共軛分布。

共軛的意思是,以Beta分布和二項式分布為例,數據符合二項分布的時候,參數的先驗分布和后驗分布都能保持Beta分布的形式,這種形式不變的好處是,我們能夠在先驗分布中賦予參數很明確的物理意義,這個物理意義可以延續到后續分布中進行解釋,同時從先驗變換到后驗過程中從數據中補充的知識也容易有物理解釋。


我們還是從一個例子講起。假如你有一個硬幣,它有可能是不均勻的,所以投這個硬幣有 θ 的概率拋出Head,有 (1−θ) 的概率拋出Tail。如果拋了五次這個硬幣,有三次是Head,有兩次是Tail,這個 θ 最有可能是多少呢?如果你必須給出一個確定的值,並且你完全根據目前觀測的結果來估計 θ,那么顯然你會得出結論 θ=3/5。

但上面這種點估計的方法顯然有漏洞,這種漏洞主要體現在實驗次數比較少的時候,所得出的點估計結果可能有較大偏差。大數定理也告訴我們,在重復實驗中,隨着實驗次數的增加,事件發生的頻率才趨於一個穩定值。一個比較極端的例子是,如果你拋出五次硬幣,全部都是Head。那么按照之前的邏輯,你將估計 θ 的值等於 1。也就是說,你估計這枚硬幣不管怎么投,都朝上!但是按正常思維推理,我們顯然不太會相信世界上有這么厲害的硬幣,顯然硬幣還是有一定可能拋出Tail的。就算觀測到再多次的Head,拋出Tail的概率還是不可能為0。

前面介紹的貝葉斯定理或許可以幫助我們。在貝葉斯學派看來,參數 θ 不再是一個固定的值了,而是滿足一定的概率分布!回想一下前面介紹的先驗概率和后驗概率。在估計 θ 時,我們心中可能有一個根據經驗的估計,即先驗概率,P(θ)。而給定一系列實驗觀察結果 X 的條件下,我們可以得到后驗概率為

image

在上面的貝葉斯公式中,P(θ) 就是個概率分布。這個概率分布可以是任何概率分布,比如高斯分布,或者剛剛提過的 Beta 分布。下圖是Beta(5,2)的概率分布圖。如果我們將這個概率分布作為 P(θ),那么我們在還未拋硬幣前,便認為 θ 很可能接近於0.8,而不大可能是個很小的值或是一個很大的值。換言之,我們在拋硬幣前,便估計這枚硬幣更可能有0.8的概率拋出正面。

雖然 P(θ) 可以是任何種類的概率分布,但是如果使用Beta 分布,會讓之后的計算更加方便。我們接着繼續看便知道這是為什么了。況且,通過調節 Beta 分布中的 a 和 b,你可以讓這個概率分布變成各種你想要的形狀!Beta 分布已經很足夠表達我們事先對 θ的估計了。

現在我們已經估計好了 P(θ) 為一個 Beta 分布,那么 P(X|θ) 是多少呢?其實就是個二項(Binomial)分布。繼續以前面拋5次硬幣拋出3次Head的觀察結果為例,X=拋5次硬幣3次結果為Head的事件,image

貝葉斯公式中分母上的 P(X) 是個Normalizer,或者叫做邊緣概率。在 θ 是離散的情況下,P(X) 就是 θ 為不同值的時候,P(X|θ) 的求和。例如,假設我們事先估計硬幣拋出正面的概率只可能是0.5或者0.8,那么 P(X)=P(X|θ=0.5)+P(X|θ=0.8),計算時分別將 θ=0.5 和 θ=0.8 代入到前面的二項分布公式中。而如果我們采用 Beta 分布,θ的概率分布在[0,1]之間是連續的,所以要用積分,即

image

下面的證明就告訴我們:P(θ) 是個 Beta 分布,那么在觀測到“X=拋5次硬幣中出現3個head”的事件后,P(θ|X) 依舊是個 Beta 分布!只是這個概率分布的形狀因為觀測的事件而發生了變化。

image

因為觀測前后,對 θ 估計的概率分布均為 Beta 分布,這就是為什么使用 Beta 分布方便我們計算的原因了。當我們得知 P(θ|X)=Beta(θ|a+3,b+2)后,我們就只要根據 Beta 分布的特性,得出 θ 最有可能等於多少了。(即 θ 等於多少時,觀測后得到的 Beta 分布有最大的概率密度)。

例如下圖,仔細觀察新得到的 Beta 分布,和上一圖中的概率分布對比,發現峰值從0.8左右的位置移向了0.7左右的位置。這是因為新觀測到的數據中,5次有3次是head(60%),這讓我們覺得,θ 沒有0.8那么高。但由於我們之前覺得 θ 有0.8那么高,我們覺得拋出head的概率肯定又要比60%高一些!這就是Bayesian方法和普通的統計方法不同的地方。我們結合自己的先驗概率和觀測結果來給出預測。

如果我們投的不是硬幣,而是一個多面體(比如骰子),那么我們就要使用 Dirichlet 分布了。使用Dirichlet 分布之目的,也是為了讓觀測后得到的posterior probability依舊是 Dirichlet 分布。關於 Dirichlet 分布的話題我們會在后續的文章中繼續介紹。

到此為止,我們終於可以引出“共軛性”的概念了!后驗概率分布(正⽐於先驗和似然函數的乘積)擁有與先驗分布相同的函數形式。這個性質被叫做共軛性(Conjugacy)。共軛先驗(conjugate prior)有着很重要的作⽤。它使得后驗概率分布的函數形式與先驗概率相同,因此使得貝葉斯分析得到了極⼤的簡化。例如,二項分布的參數之共軛先驗就是我們前面介紹的 Beta 分布。多項式分布的參數之共軛先驗則是 Dirichlet 分布,⽽⾼斯分布的均值之共軛先驗是另⼀個⾼斯分布。

總的來說,對於給定的概率分布 P(X|θ),我們可以尋求一個與該似然函數 ,即P(X|θ), 共軛的先驗分布 P(θ),如此一來后驗分布 P(θ|X) 就會同先驗分布具有相同的函數形式。而且對於任何指數族成員來說,都存在有一個共軛先驗。

總結:所謂共軛就是指這兩個概率分布具有相同的形式。


對於應用貝葉斯理論的人來說,當你觀察一個事件x ,你預估計並給出其內部參數θ ,表示你對於事件x 發生的置信程度。如果你熟悉貝葉斯方法,當你每次觀測到新的x 數據時你就會更新你預先給出的參數θ 。那么就要問了,你新觀測到的x 樣本點對於你改變樣本參數θ 的影響有多大?這就取決與你一開始對參數θ 的確定程度。如果你給出的參數θ 基於你經過上千上萬次認真實驗得到的因此你很確定你的參數值,那么單一的新數據不會對參數有多大影響。但是如果你的參數θ 的估計僅僅是從一個不可靠的朋友那聽來的,那么新數據對於你重新估計參數值θ 的影響就會大很多。當然,當你重新估計θ 的時候,你也要重新估計你新參數值的確定程度(置信程度)。換個方式說,你就是要計算θ 的可能值的新概率分布。新概率分布為P(θ | x),其計算可以使用貝葉斯法則:

image

P(x |θ )表示以預估θ 為參數的 x概率分布,可以直接求得。P(θ )是已有原始的θ 概率分布。不同設定參數的精確度決定了你對θ 的置信程度。所以分子部分可以直接計算求得。分母部分的計算很棘手。對於任意分布形式,積分計算可能會有很多困難。也許你並不是想找出參數θ 的整個分布。你只是想求得一個最優值來做預測。如果這是你的目標,那你就可以選取分布 P(θ | x),求θ 的值使得 P(θ | x)最大,作為新的參數。由於我們已經獲得了P(θ | x)的形式,所以可以得到對於參數的置信程度。(可以理解為最大似然法求參數)實際中,利用最大似然法求參數θ 通常很困難。因為有局部最優解的存在,還有優化問題中的一些普遍問題。對於足夠簡單的分布,可以利用EM 算法保證參數收斂到一個局部最優解。但是對於復雜得多的分布,這個方法就變得力不從心,這就要利用近似算法。所以要盡量保證 P(x |θ )和 P(θ )簡單。P(x |θ )分布的選擇是模型選擇的問題,選擇復雜的模型可以更好的反應數據的深層形式,但也會增加更多的時間和內存開銷。假設在確定 P(θ )分布形式之前我們先選擇模型的形式。那么如何確定 P(θ )的最佳的分布形式?注意每次你觀測一個新數據的時候,你就要計算一次上面等式。這樣在觀察數據的過程中,你就要乘上許多不同的概率分布。如果 P(θ )分布沒有選擇好, P(θ )會很快變得非常麻煩。聰明的你會發現,選取 P(θ )作為P(x |θ )分布的共軛先驗。如果P(x |θ )乘以 P(θ )然后歸一化結果后其形式和 P(θ )的形式一樣,那么我們就說 P(θ )共軛於P(x |θ )。注: P(x |θ )我們也稱作似然函數。先驗概率 P(θ )和似然函數的乘積,然后歸一化得到后驗概率P(θ | x)。共軛先驗的定義為:如果后驗概率分布和先驗概率分布有相同的形式(如同為指數族分布),則后驗概率分布和先驗概率分布統稱共軛分布。那么先驗概率 P(θ )稱為似然函數的共軛先驗。考慮一個離散情況的例子:投擲一個非均勻硬幣(正反面概率不相等),可以使用參數為θ 伯努利模型,那么結果x 的分布形式為:(關於伯努利分布可以參考其他資料)

image

其共軛先驗為beta 分布,具有兩個參數α 和β ,我們稱之為超參數(hyperparameters)。簡單解釋就是,這兩個參數決定了我們的θ 參數。Beta 分布形式為:

image

同樣θ 為硬幣為正面的概率。取值范圍為0 到1。所以這個方程是歸一化的方程。假如你觀察一次投硬幣x 事件然后要更新關於參數θ 的置信度。Beta函數的分母是一個歸一化測常數,計算P(θ | x)的時候可以忽略它,只要計算完后再歸一化即可。

image

歸一化這個等式后會得到另一個beta 分布,就是伯努利分布的共軛先驗。
如果對二項分布熟悉,beta 分布的分子部分和二項分布非階乘部分很相似,歸一化后得到的beta
分布為:

image

注:二項分布的形式為:

image

也可以寫作:

image

可以看出,beta 分布和二項式分布幾乎是一樣的。他們最大的不同點是,beta 分布是帶有預設定參數α 和β 關於θ 的函數。而二項分布是帶有預設定參數θ 和α +β 關於α 的函數。很顯然beta 分布共軛於二項式分布。另外一個區別是:beta 分布用伽馬函數作為歸一化系數,而二項分布使用階乘系數。回憶伽馬函數只是將系數向實數域的一個擴展。這樣就允許α 和β 為任意正實數。而二項式的系數只能定義為任意正整數。關於更多關於二項分布, beta 分布, gama 函數的內容見鏈接http://www.mhtl.uwaterloo.ca/courses/me755/web_chap1.pdf。現在想一下這些問題,共軛先驗有什么意義?它僅僅是我們的一種數學計算工具嗎?答案顯然不是,它有更深的意義對於beta 分布的形式。考慮上面的內容,如果你已經觀察了很多數據,那么再觀察另外一個數據對於你對模型的認識並不會改變多少。如果,你僅僅一開始觀測了少量數據,那么觀察另外的單一數據對於你的模型參數置信度影響就會很大。你可以通過共軛先驗的形式獲得這個直覺上的判斷。

考慮投硬幣的例子,我們設α 和β 為得到正面和反面的次數,將其作為beta 分布的參數,實驗有兩種情況:第一種我們投10 次,3 次正面7 次反面。第二種投10000 次,3000 次正面,7000次反面。從這個beta 分布中很容易得到兩種情況下各自“聲稱正面概率為30%”的置信度的不同。(如果我們對一個模型沒有任何先驗知識,我們可以將beta 分布的兩個參數α 和β 都等於1,beta 分布變成均勻分布。或者將兩個系數都等於N+1。將這個兩個超參數設為小於1 的值,那么模型就具有了“負數據”,可以讓我們避免對於真實數據中帶有噪音的參數θ 過度擬合。)注:上面一段有異議,關於兩個參數α 和β 都等於1,表示模型沒有先驗知識是有爭議的。Haldane 先驗 alpha = beta = 0 and Jeffreys' 先驗模型, alpha = beta = 0.5。概括一下,beta 分布是伯努利分布和二項式分布的共軛先驗。在做貝葉斯理論相關計算時非常有用和有效。也可使用實數和虛數的先驗數據。其他共軛先驗如狄利克雷分布是多項式分布的共軛先驗,原理是相似的。


參考文獻:http://blog.csdn.net/baimafujinji/article/details/51374202

               http://lesswrong.com/lw/5sn/the_joys_of_conjugate_priors/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM