MCMC(MH算法)
1.通過構造馬爾可夫鏈進行蒙特卡洛采樣,使得其收斂到平穩分布
2.MCMC的具體采樣方法有MH算法和Gibbs采樣
3.Gibbs采樣是MH算法的特殊情形,用于解決高維空間采樣問題
4.MCMC有三個局限:無法判斷是否已經收斂,燃燒期過長,樣本具備相關性
在上一篇MCMC(馬爾可夫鏈)中,我們介紹了馬爾可夫鏈平穩分布的一個充分條件,也就是細致平衡:
我們這一篇,介紹如何把馬氏鏈的細致平衡應用到蒙特卡洛采樣思想,求得p(z)的后驗分布,最終求解目標函數的期望。這是我們的目標。
MH算法
首先,對于后驗p(z),我們要構造一個關于樣本z馬氏鏈,其轉移矩陣(提議矩陣)記為Q,使得其滿足細致平衡條件,但通常情況下沒那么容易找到,也即:
故我們引入一個接收率,使得其相等:
只要取
就可以滿足細致平衡。我們證明這一點:
這個就是大名鼎鼎的Metropolis-Hastings 算法,簡稱MH算法,它屬于MCMC中的一種。算法的流程為:
注意,這里的后驗p(z)并非歸一化的,因為歸一化因子Z無法求解,我們默認是
Gibbs采樣
采樣的困難點還有另外一個,就是面對高維空間采樣依舊困難。解決這個問題的是Gibbs采樣,它是MH算法的一種特殊情形。
Gibbs采樣思想很簡單,通過固定其他維度逐一對某一維度進行采樣:
注:這里下標i表示維度
關鍵是要找到一個合適轉移矩陣Q,我們從z是二維的情況看起:
仔細觀測可以發現,當某一維度固定時,用兩個維度的條件概率作為轉移概率,則滿足細致平衡條件。
由此,我們可以構造轉移矩陣:
上升到多維空間,我們有:
Gibbs采樣的轉移矩陣就是平穩分布,算法流程為:
Gibbs采樣的接收率為1,因為:
故而,
局限與困難
至此,我們介紹完了MCMC。這一節我們做個總結以及介紹一下它的局限。
給定轉移矩陣和初始狀態,我們可以通過構造馬氏鏈得到平穩分布的樣本,使得這些樣本能夠代表原概率分布p(z)總體,其過程如下:
設該馬氏鏈平穩分布為π(x),從t=1時刻開始采樣,直到m時刻概率分布收斂,即:
顯然,到達平穩分布所需要的時間跟轉移矩陣和初始狀態有關,我們把到達平穩分布的過程稱為燃燒期,燃燒期的時長稱為混合時間
MCMC與拒絕采樣、重要性采樣的區別是不用去尋找提議函數q(z),并且解決高維復雜的情況。但MCMC也并非萬能,它存在以下局限性:
-
理論只能保證收斂性,但無法判斷是否已經收斂
-
燃燒期可能過長
-
樣本之間?定是有相關性的
針對第一點,可以采取比較傳統的方式,每隔一段時間取相同的樣本,計算其均值是否一致;針對第二點,可能會帶來效率過于低下,它的本質是因為p(z)過于復雜造成的,也即維度過高,如果維度之間相關性較強,該方法出來的樣本有失偏頗,因為Gibbs采樣的假設是每個維度之間的相關性較低,才能一維一維逐步采樣;針對第三點,我們可以通過間隔一段時間采樣來降低其相關性。
總結
以上是生活随笔為你收集整理的MCMC(MH算法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SiteMapCreator 发布 (O
- 下一篇: 数据仓库的 RDBMS 性能优化指南