有三種解釋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 *並重新開始該過程。
總結
- 我們隨機生成數字:這是蒙特卡羅部分
- 我們允許我們生成的數字影響下一個生成的數字:這是馬爾可夫鏈
- 然後我們決定生成的新數字是否"向正確的方向移動":接受拒絕算法
- 然後我們檢查收斂:我們確定我們的數據何時收斂到合理的分佈。收斂點後隨機生成的值成為我們的後驗分佈
閱讀更多 AI火箭營 的文章