以下內容轉自:http://www.xperseverance.net/blogs/2012/03/510/
cnblogs無法表示數學公式,原博客數學公式可以表達出來。
Dirichlet分布可以看做是分布之上的分布。如何理解這句話,我們可以先舉個例子:假設我們有一個骰子,其有六面,分別為{1,2,3,4,5,6}。現在我們做了10000次投擲的實驗,得到的實驗結果是六面分別出現了{2000,2000,2000,2000,1000,1000}次,如果用每一面出現的次數與試驗總數的比值估計這個面出現的概率,則我們得到六面出現的概率,分別為{0.2,0.2,0.2,0.2,0.1,0.1}。現在,我們還不滿足,我們想要做10000次試驗,每次試驗中我們都投擲骰子10000次。我們想知道,出現這樣的情況使得我們認為,骰子六面出現概率為{0.2,0.2,0.2,0.2,0.1,0.1}的概率是多少(說不定下次試驗統計得到的概率為{0.1, 0.1, 0.2, 0.2, 0.2, 0.2}這樣了)。這樣我們就在思考骰子六面出現概率分布這樣的分布之上的分布。而這樣一個分布就是Dirichlet分布。
首先用上面這一段來點直觀印象,然后列一些資料:
維基里面對於狄利克雷分布貌似介紹的挺復雜,不夠基礎。我找到了一個CMU的PPT:Dirichlet Distribution, Dirichlet Process and Dirichlet Process Mixture,找到一篇華盛頓大學的《Introduction to the Dirichlet Distribution and Related Processes》介紹。
發現CMU那個ppt里面講到,Beta is the conjugate prior of Binomial,有一種原來如此的感覺。嗯,原來貝塔分布是二項分布的共軛先驗分布,那么狄利克雷分布就是多元分布的共軛先驗分布。所以要看狄利克雷分布,就要先了解多元分布,然后呢,想要了解狄利克雷之於多元的關系,就要先看貝塔分布和二項分布的關系,這個關系在這里(PRML2.1整小章介紹了這個)。
下面正式進入狄利克雷分布介紹,首先說一下這個多元分布的參數μ。在二項分布里,參數μ就是拋硬幣取某一面的概率,因為二項分布的狀態空間只有{0,1}。但是在多元分布里,因為狀態空間有K個取值,因此μ變成了向量μ⃗ =(μ1, …, μk)T。多元分布的likelihood函數形式是∏k=1Kμmkk,因此就像選擇二項分布的共軛先驗貝塔函數時那樣,狄利克雷分布的函數形式應該如下:
p(μ|α)∝∏k=1Kμαk−1k 式2.37
上式中,∑kμk=1,α⃗ =(α1, …, αk)T是狄利克雷分布的參數。最后把2.37歸一化成為真正的狄利克雷分布:
Dir(μ|α)=Γ(α0)Γ(α1)…Γ(αk)∏k=1Kμαk−1k
其中α0=∑k=1Kαk。呵呵,這個函數跟貝塔分布有點像(取K=2時就是Beta分布)。跟多元分布也有點像。和Beta分布一樣,狄利克雷分布就是參數μ⃗ 的分布,只不過μ是一個向量,下圖是當μ⃗ =(μ1,μ2,μ3)時,即只有三個值時狄利克雷概率密度函數的例子。其中中間那個圖的三角形表示一個平放的Simplex,三角形三個頂點分別表示μ⃗ =(1,0,0),μ⃗ =(0,1,0)和μ⃗ =(0,0,1),因此三角形中間部分的任意一個點就是μ⃗ 的一個取值,縱軸就是這個μ⃗ 的Simplex上的概率密度值(PDF)。
對於參數μ⃗ 的估計時,可知 后驗=似然*先驗 的函數形式如下:
p(μ|D,α)∝(D|μ)p(μ|α)∝∏k=1Kμαk+mk−1k
從這個形式可以看出,后驗也是狄利克雷分布。類似於貝塔分布歸一化后驗的方法,我們把這個后驗歸一化一下,得到:
p(μ|D,α)=Dir(μ|α+m)=Γ(α0+N)Γ(α1+m1)…Γ(αK+mK)∏k=1Kμαk+mk−1k