MCMC:Markov Chain&Monte Carlo(二)MH采樣和Gibbs采樣,MCMC局限性


MCMC全稱是Markov Chain & Monte Carlo。

在概率圖的框架中屬於近似推斷中的不確定性推斷,與之相對的有近似推斷中的變分推斷(variational Inference)。

MCMC本質是基於“采樣”的“隨機”“近似”。有三個關鍵詞。

①采樣是說MCMC本質就是一種引入Markov Chain模型實現采樣任務的一種方法,本質是一種采樣方法(Method)。

②隨機是說MCMC的主要實現方法是找到一個隨機矩陣(stochastic matrix),也就是狀態轉移矩陣(也可以是狀態轉移概率密度函數),使得

該Markov Chain最終達到一個平穩分布q(x)。

     t=1到t=2相鄰狀態的隨機矩陣

③近似是說q(x)與目標概率p(x)非常接近。

所以這里引入幾個概念:分別是平穩分布,細致平衡(Detailed Balance),燃燒期(burn-in),混合時間(mixing time)。

①平穩分布指的是每個時刻的狀態變量X都滿足一個概率分布p(X),比如X1~p1(X),X2~p2(X),X3~p3(X)...XN~pN(X),如果p1(X)=p2(X)=p3(X)=...=pN(X)=p(X),則稱p(X)為該Markov Chain的一個平穩分布。

    平穩分布的表達式

其中X是t時刻的隨機變量,X*是t+1時刻的隨機變量,p(X)是X服從的概率分布,p(X*)是X*服從的概率分布。p(X→X*) <=> p(X*|X),相當於一個條件概率,代表given X,X*的概率分布。

②細致平衡是平穩分布的充分不必要條件,由細致平衡可以推出平穩分布。

         細致平衡簡單示意

 其中z是t時刻的隨機變量,z*是t+1時刻的隨機變量,p(z)是z服從的概率分布,p(z*)是z*服從的概率分布。p(z→z*) <=> p(z*|z),相當於一個條件概率,代表given z,z*的概率分布。(和上文的X是一個含義,只不過用了不同的符號,湊合看吧...)。

③燃燒期和混合時間:若一個Markov Chain經過t=1~m時間段的狀態變換,在t=m+1時刻往后的隨機變量就收斂到平穩分布,那么將t=[1,m]稱為燃燒器,m稱為mixing time。

MCMC方法相關概念簡單小結:

 

MH采樣方法:

由於一個普通的Markov Chain每個時刻對應的隨機變量Xt和每組相鄰時刻間的{Pt,t+1}是不一樣的,所以需要引入一個接受率α,使得每組相鄰時刻的概率分布和隨機矩陣滿足Detail Balance條件,α的公式如下:

最終得到MH算法流程如下:

MH算法引出小結:

MH采樣全稱是Metropolis Hastings,MH算法的主要思想是引入接受率α=min{1,p(x*)Q(x|x*)/(p(x)Q(x*|x)},使得相鄰時刻間的狀態轉移矩陣Q(x,x*)和原始概率分布p(x),p(x*)滿足Detail Balance條件,從而在經過mixing time長度的時間過后,得到平穩分布q(x),其中q(x)與原始概率分布p(x)很相近,然后通過Markov Chain若干個時刻的狀態變量值Xm,Xm+99,...等等得到基於MCMC方法的采樣值。

Gibbs采樣方法:

Gibbs采樣是接受率α=1的MH采樣,可以看作MH采樣的特殊形式。適用於隨機變量X維度非常高的情況,從t到t+1時刻,只改變一個維度的值。狀態轉移矩陣取得就是目標概率p(X)。

由於接受率α=1,所以采樣效率高。

 

MCMC局限性

要了解MCMC的局限性,首先要了解為什么要采樣,什么是好的采樣,以及采樣為什么困難。

①為什么要采樣:

(i)一種情況是給定一些樣本{Xi},i=1:N,這些樣本滿足一定的概率分布p(X),現在要求增加樣本數量,這個時候就需要對p(X)進行采樣。

(ii)另一中情況是求解的問題的變量X是隨機變量,問題可以抽象為f(X),因為X是隨機變量,所以需要對X服從的概率分布求期望,即求解Ep(X)[f(X)]。

②好的采樣

需要滿足X(1),X(2),...,X(i)等采樣點相互獨立。

③采樣為什么困難

由於隨機變量X維度太高,導致p(X)太復雜,所以無法求出p(x)對應的cdf,就沒有辦法通過cdf基本采樣方法進行采樣。由於X維度很高,導致很難知道p(X)長什么樣子,也就很難找到一個跟它很像的proposal distribution q(X),然后通過或者 Importance Sampling的方法進行采樣。所以會提出MCMC的方法。

④MCMC的局限性:

1)采樣點之間不獨立(硬傷),解決方法,比如隔N個點采一個X(i)。
2)mixing time可能會很長,(單峰vs 多峰),即模型可能就在初始狀態在的某個分布內來回打轉,由於兩個分布的峰谷太低,采樣點到達峰谷的概率非常低(特別是X是高維隨機變量的情況下),這就導致MCMC沒法采樣到能夠很好地表征p(X)概率分布的采樣點,也就是mixing time會無限長,造成采樣失敗的情況。
3)就算采樣成功了,也不能夠確切的知道什么時刻已經達到了平穩分布,只能通過每隔一段時間就針對當前時刻的分布Xt采用,得到其采樣的概率分布q1(X),與目標概率分布p(X)對比,確定兩者相似程度,從而判斷是否達到平穩分布。

 

 

參考資料:

1.https://www.bilibili.com/video/BV1dW411z7qs?p=8,B站up主,作者shuhuai008。


免責聲明!

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



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