由於較多公式,所以我將部分內容轉為圖片進行上傳,請見諒。清晰版請訪問weizhixiaoyi.com查看,你也可以關注我公眾號謂之小一,後臺直接向我要pdf版本,如有相關問題可公眾號後臺詢問,隨時回答。

在MCMC之馬爾可夫鏈之中我們介紹到,給定一個概率分佈π,很難直接找到對應的馬爾可夫鏈狀態轉移矩陣P。只要解決這個問題,我們便可以找到一種通用的概率分佈採樣方法,進而用於蒙特卡羅模擬。下面我們來介紹如何找到馬爾可夫鏈所對應的狀態轉移矩陣P。

1.馬爾可夫鏈細緻平穩條件

解決平穩分佈π所對應的馬爾可夫鏈狀態轉移矩陣P之前,我們先看一下馬爾可夫鏈的細緻平穩條件。其定義為:如果非週期馬爾可夫鏈的狀態轉移矩陣P和概率分佈π(x)對於所有的i,j滿足下列方程,則概率分佈π(x)是狀態轉移矩陣P的平穩分佈。

證明如下,由細緻平穩條件有

將上式用矩陣表示為

上式滿足馬爾可夫鏈的收斂性質,也就是說,只要我們找到可以使概率分佈π(x)滿足細緻平穩分佈的矩陣P即可。不過僅僅從細緻平穩條件還是很難找到合適的矩陣P,比如我們的目標平穩分佈使π(x),隨機找一個馬爾可夫鏈狀態轉移矩陣Q,他是很難滿足細緻平穩條件的,即

那麼有什麼辦法可以使這個等式相等呢?

2.MCMC採樣

由於一般情況下,目標平穩分佈π(x)和某一馬爾可夫鏈狀態轉移矩陣Q不滿足細緻平穩條件,即

我們對上式進行一些變換,使細緻平穩條件成立。方法是引入一個α(i,j),使得上式等式能夠成立,即

問題是什麼樣的α可以使上式成立?其實很簡單,只要滿足

這樣,我們便找到使分佈π(x)對應的馬爾可夫鏈狀態轉移矩陣P,滿足

從上面可以得到,目標矩陣P可以通過任意一個馬爾可夫鏈狀態轉移矩陣Q乘以α(i,j)得到。α(i,j)我們一般稱之為接受率,取值在[0,1]之間,可以理解為一個概率值。也就是說,目標矩陣P可以通過任意一個馬爾可夫鏈狀態轉移矩陣Q以一定的接受率得到。

其實很像我們在MCMC之蒙特卡羅方法中提到的接受-拒絕採樣,那裡是以常用分佈通過一定的接受-拒絕概率得到一個非常見分佈。這裡是通過常見的馬爾可夫鏈狀態轉移矩陣Q通過一定的接受-拒絕概率得到目標轉移矩陣P,兩者解決問題的思路是相同的。下面,我們來總結下MCMC的採樣過程

上述過程便是MCMC採樣理論,但很難在實際應用,為什麼呢? 因為α可能非常小,比如0.1,導致大部分採樣值都被拒絕轉移,採樣效率很低。可能我們採樣可上百萬次,馬爾科夫鏈還沒有收斂。實際應用中,我們可以通過M-H採樣方法進行採樣。

3.M-H採樣

M-H採樣解決了MCMC採樣接受率過低的問題,我們首先回到MCMC採樣的細緻平穩條件

採樣效率過低的原因是α(i,j)太小,比如0.1,α(j,i)為0.2,即

如果兩邊同時擴大5倍,細緻平穩條件仍然是滿足的,即

這樣我們可以對接受率做如下改進,即

通過上述的轉換,我們便可在實際應用中使用M-H演算法進行採樣,M-H採樣演算法過程如下所示

很多時候,我們選擇的馬爾科夫鏈狀態轉移矩陣Q如果是對稱的,即滿足Q(i,j)=Q(j,i),這時我們的接受率可以進一步簡化為

4.M-H採樣總結

M-H採樣解決了使用蒙特卡羅方法需要的任意概率分佈樣本集的問題,因此在實際生產環境中得到廣泛應用。但在大數據情況下,M-H面臨如下問題

  • 數據特徵非常多:因為M-H採樣由於接受率的存在,在高維計算時需要很長的計算時間,演算法效率很低。同時α(i,j)一般小於1,有時候辛苦計算出來的結果卻被拒絕,能不能做到不拒絕轉移呢?
  • 特徵維度比較大:很多時候我們很難求出目標的各特徵維度聯合分佈,但是可以方便求出各個特徵之間的條件概率分佈。這時能不能只用各維度之間的條件概率分佈去方便的採樣呢?

5.推廣

更多內容請關注公眾號謂之小一,若有疑問可在公眾號後臺提問,隨時回答,歡迎關注,內容轉載請註明出處。

weixin.qq.com/r/Ty_4oDP (二維碼自動識別)


推薦閱讀:
查看原文 >>
相關文章