1. 程式人生 > >MCMC采樣理論的一點知識

MCMC采樣理論的一點知識

mat otto www 要求 style 函數表 現在 tin 能量

看了好多相關的知識,大致了解了一下馬爾可夫鏈-蒙特卡羅采樣理論,有必要記來下來。

蒙特卡羅積分:(來自:http://blog.csdn.net/itplus/article/details/19168937)

下面的寫的很讓人明白:好好理解一下,第一次感覺到積分與統計學的聯系。

技術分享

利用蒙特卡羅方法求積分的重點就是怎麽如何采樣指定的分布。。。。簡單的分布如均勻分布我們有方法可以采樣,但是復復雜的分布呢?如高斯分布呢?你怎麽辦??

這是就利用馬爾可夫鏈的性質進行采樣。

一些馬爾可夫鏈的相關知識

在學習隨機過程中,我們已經學習到了馬爾可夫鏈的平穩性質。下面列舉一下它的我們需要用到的性質(參考:葉鈁. 馬爾可夫鏈蒙特卡羅方法及其R實現[D]. 南京大學, 2014.)

平穩性的性質:

技術分享

細致平衡性方程,很重要的。

技術分享

這個等式,也可以這麽理解,當進入穩定性的分布以後呢,從狀態 i 傳到狀態 j 的能量與從狀態 j 傳遞到狀態 i 的能量是相同的。因為他們是平穩分布。

所以呢,現在的問題就是:我們想要按一定的 目標概率分布 進行采樣,我們如何用馬爾可夫鏈進行呢??

方法就是:構造一個馬爾可夫鏈的穩態分布就是我們的 目標概率分布 , 誰決定了最後的穩態分布的概率呢?? 轉移概率!!!!!所以呢,關鍵就是怎麽構造轉移概率。(一開始的時候,我老是想馬爾可夫模型的狀態如何確定呢?只有確定了狀態才能求構造轉移概率吧。。。。一直想不明白的。。。。。。現在覺得 這個問題不用先想,後面自然而然地就出來了)

我們構造轉移概率的依據就是細致平衡條件;

一, 最基本的Metropolis采樣算法

不多說明,因為,它其實就是Metropolis-Hastings算法的殊形式,即要求使用的狀態提議分布函數為對稱的,即:

技術分享

此時的狀態的接受函數也跟著變化了。變簡單了。。

所以呢,直接看Metropolis-Hastings算法就好了。

二, Metropolis-Hastings算法

在 http://cos.name/2013/01/lda-math-mcmc-and-gibbs-sampling/ 已經給出了很好的介紹。這裏我自己再手寫一遍。

技術分享

對於證明這樣的轉移概率滿足細致平衡條件,就沒有必要了,因為上面的推導過程就是在細致平衡條件上推導出來的。

最終的采樣算法:

技術分享

三, Gibbs 采樣(吉布斯采樣)

大家都說:Gibbs 采樣也是Metropolis-Hastings算法的一種特殊的形式,怎麽特殊呢?就是接受概率為1了。

我覺得呢,是找到了一個公式,一個什麽公式呢?就是一個滿足細致平衡條件的公式。

假如,二維的情況下,我們的目標采樣分布函數表示為 P(x, y), 這時呢:有以下公式成立:

技術分享

這麽看, 公式4是不是滿足細致平衡條件呢,對吧。。 只不過,兩個狀態的轉移限定同一維坐標軸上進行的。

所以呢,只要我們把目標的采樣分布函數的條件概率作為馬爾可夫鏈的轉移概率的話,轉移一定的次數以後,最終的馬爾可夫鏈的最終的狀態分布就符合 我們的目標采樣的分布函數。

二維的Gibbs采樣算法:

技術分享

n維的Gibbs采樣算法:

技術分享

參考:

http://www.cnblogs.com/xbinworld/p/4266146.html 隨機采樣方法整理與講解(MCMC、Gibbs Sampling等)

http://blog.csdn.net/itplus/article/details/19168937 受限玻爾茲曼機(RBM)學習筆記(一)預備知識

http://blog.csdn.net/google19890102/article/details/51785156 簡單易學的機器學習算法——Metropolis-Hastings算法

http://blog.csdn.net/google19890102/article/details/51755242 簡單易學的機器學習算法——馬爾可夫鏈蒙特卡羅方法MCMC

http://blog.csdn.net/google19890102/article/details/51755245 簡單易學的機器學習算法——Gibbs采樣

MCMC采樣理論的一點知識