簡潔清晰解釋馬爾可夫鏈蒙特卡洛方法

有三種解釋MCMC的方法:

  • 初級:MCMC允許我們利用計算機進行貝葉斯統計。
  • 中級:MCMC是一種可以找到我們感興趣的參數的後驗分佈的方法。具體來說,這種類型的算法以依賴Markov屬性的方式生成蒙特卡羅模擬,然後以一定的速率接受這些模擬以獲得後驗分佈。
  • 高級:完整的統計思想。

本文,讓你達到中級水平。

讓我們從初級水平開始。

什麼是MCMC?要回答這個問題,我們首先需要重新審視貝葉斯統計。貝葉斯統計建立在這樣一種觀點的基礎上,即事物發生的概率受先驗概率假設和事件發生的可能性的影響,如數據所示。對於貝葉斯統計,概率由分佈表示

如果先驗和似然概率分佈是正態分佈的,我們能夠用函數描述後驗分佈。這稱為封閉形式的解決方案。這種類型的貝葉斯如下所示。正如您所看到的,後驗分佈由先驗分佈和可能分佈兩者組成,最終在中間某處。

簡潔清晰解釋馬爾可夫鏈蒙特卡洛方法

但是當概率不是那麼漂亮時呢?當概率看起來更像這樣時會發生什麼?

簡潔清晰解釋馬爾可夫鏈蒙特卡洛方法

在這種情況下,可能性沒有正態分佈,因此我們最終得到了右傾的後驗分佈。由於我們無法用公式表達,我們必須使用馬爾可夫鏈蒙特卡羅。

馬爾可夫鏈蒙特卡羅的三個部分

第一:蒙特卡洛

蒙特卡羅模擬通過生成隨機數來模擬複雜系統。

在下面動圖中,蒙特卡羅生成一個參數為(0-1,0-1)的隨機點,通過識別最終在曲線 下面的點數我們能夠近似於該區域,形成一個整圓並獲得π。

簡潔清晰解釋馬爾可夫鏈蒙特卡洛方法

第二:馬爾可夫鏈

馬爾可夫鏈本質上是變量如何圍繞圖形"走動",或隨機變量隨時間從一種狀態變為另一種狀態的表示。

簡潔清晰解釋馬爾可夫鏈蒙特卡洛方法

上圖是馬爾可夫情緒狀態鏈的表示。在這個鏈條中,如果你是開朗的,你有20%的幾率將情緒狀態改變到馬馬虎虎,20%的幾率你會變得悲傷,60%的幾率你會保持開朗。

馬爾可夫的不追溯當前之前

F(Xt + 1 | Xt)= f(Xt + 1 | Xt,Xt-1,Xt-2,...,X1)

用英語:如果我現在知道發生了什麼,知道發生什麼事情讓我們走到這一步或之前的步驟等等,並不能為我提供更多的信息。

舉一個類似這樣的例子:

  • 孟德爾遺傳學。在下面的示例中,子bean的顏色完全受父bean的bean顏色的影響。第一代豆的顏色受到之前一代顏色的影響,但在確定第二代顏色時不需要考慮。
簡潔清晰解釋馬爾可夫鏈蒙特卡洛方法

  • 棋盤遊戲:當玩Monopoly並試圖確定玩家進入某個空間的概率時,您需要的唯一信息是當前玩家的位置。之前轉牌圈的位置並不會影響下一個位置,除非它確定了本回合的位置。

第三:驗收 - 拒絕抽樣

MCMC的第三部分是驗收拒絕抽樣。當我們對新的觀察結果進行抽樣時,我們會確定它是否在正確的方向,然後決定是保留它還是丟棄它。

兩種常見的接受拒絕算法是Metropolis-Hasting算法和No-U-Turn採樣器。

對Metropolis-Hasting的更加高級的解釋:

  • 假設我們在x點。
  • 我們猜測下一步。我們稱之為x *
  • 然後我們計算x * / x概率的比率。這是使用似然和先驗分佈的乘積計算。
  • 如果p(x *)/ p(x)的比率(也稱為接受概率)大於1,則我們接受x *作為新位置。
  • 即使接受概率小於1,我們也不會自動拒絕x *。我們通過從Uniform(0,1)分佈中選擇一個隨機數來翻轉硬幣。如果數字小於接受概率,我們接受x *如果它更高,我們拒絕x *並重新開始該過程。

總結

  • 我們隨機生成數字:這是蒙特卡羅部分
  • 我們允許我們生成的數字影響下一個生成的數字:這是馬爾可夫鏈
  • 然後我們決定生成的新數字是否"向正確的方向移動":接受拒絕算法
  • 然後我們檢查收斂:我們確定我們的數據何時收斂到合理的分佈。收斂點後隨機生成的值成為我們的後驗分佈


分享到:


相關文章: