1. 程式人生 > >The Dirichlet Distribution 狄利克雷分佈 (PRML 2.2.1)

The Dirichlet Distribution 狄利克雷分佈 (PRML 2.2.1)

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,有一種原來如此的感覺。嗯,原來貝塔分佈是二項分佈的共軛先驗分佈,那麼狄利克雷分佈就是多項分佈的共軛先驗分佈。所以要看狄利克雷分佈,就要先了解多項分佈,然後呢,想要了解狄利克雷之於多元的關係,就要先看貝塔分佈和伯努利分佈的關係。所以,二項分佈、beta分佈、以及共軛這三點是理解狄利克雷分佈的關鍵基礎知識

,這個基礎知識記錄在這裡(PRML2.1整小章介紹了這個)。

       下面正式進入狄利克雷分佈介紹,首先說一下這個多項分佈的引數μ。在伯努利分佈裡,引數μ就是拋硬幣取某一面的概率,因為伯努利分佈的狀態空間只有{0,1}。但是在多項分佈裡,因為狀態空間有K個取值,因此μ變成了向量μ⃗ =(μ1,,μk)T。多項分佈的likelihood函式形式是k=1Kμmkk,因此就像選擇伯努利分佈的共軛先驗貝塔函式時那樣,狄利克雷分佈的函式形式應該如下:

p(μ|α)k=1Kμαk1k  式2.37

上式中,kμk=1α⃗ =(α1,,αk)T是狄利克雷分佈的引數。最後把2.37歸一化成為真正的狄利克雷分佈:

Dir(μ|α)=Γ(α0)Γ(α1)Γ(αk)k=1Kμαk1k

其中α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+mk1k

從這個形式可以看出,後驗也是狄利克雷分佈。類似於貝塔分佈歸一化後驗的方法,我們把這個後驗歸一化一下,得到:

p(μ|D,α)=Dir(μ|α+m)=Γ(α0+N)Γ(α1+m1)Γ(αK+mK)k=1Kμαk+mk1k