[本文鏈接:http://www.cnblogs.com/breezedeus/archive/2012/11/05/2754940.html,轉載請注明出處。]
Dirichlet Process (DP)被稱為分布的分布。從DP抽取出的每個樣本(一個函數)都可以被認為是一個離散隨機變量的分布函數,這個隨機變量以非零概率值在可數無窮個離散點上取值。比較有意思的是,從DP可以推導出幾個非常著名的問題: Chinese Restaurant Process (CRP)、Polya Urn Scheme和Stick-breaking Process。簡單的介紹可以見Edwin Chen的博文“Infinite Mixture Models with Nonparametric Bayes and the Dirichlet Process”。
DP的特性使得它在非參數貝葉斯聚類模型中可以被用作參數的先驗分布。Dirichlet Process Mixture (DPM)是這種非參數貝葉斯聚類模型中的一個典型代表。DPM可以認為是有限混合(Finite Mixture,FM)模型的一個推廣,FM(如Gaussian Mixture模型)必須首先給定類數,而DPM則不需要,它可以依據數據自行判斷類數。理論上來說,DPM的類數隨着log(樣本點數量)的增長速度增長。目前研究者已經提出了很多訓練DPM的算法,從Gibbs Sampling,到Collapsed Gibbs Sampling,到Variational方法。我自己實現了Collapsed Gibbs Sampling方法,速度是個很大的約束,跑大數據很費勁。DPM的一個另一個問題是它的類數由算法自動控制(雖然有個超參數alpha可以大致上調節類數),最終產生的類數可能與期望的差別很大。
想進一步了解DP和DPM的同學,可以去Yee W. Teh的主頁上看看,里面可以找到很多相關的papers,slides,presentations,以及用Matlab寫的DPM開源軟件。想仔細了解DPM的各個算法及具體推導,建議看看Xiaodong Yu的博文,里面也有他總結的一個很詳細的學習筆記(雖然里面有一些小筆誤),以及更多的參考資料。我自己也寫了一份總結,但是懶得用Latex打出來了,就以圖片打包的方式放在網盤里了,只把最后一頁的參考文獻貼下面。那些參考文獻可以直接Google后下載。對理論沒有興趣的同學請忽略吧,哈哈。