MCMC采样算法理解
MCMC采樣算法
完整的MCMC采樣算法已經有很多博主發布了,這里就不再重復了。主要想分享一下在看其他博主寫的MCMC采樣算法時,不太理解的地方。
MCMC采樣關鍵問題在于如何構建轉移矩陣,使得平穩分布恰好是p(x)。主要使用細致平穩條件。
細致平穩條件
如果非周期馬氏鏈的轉移矩陣P和分布π(x)滿足:
π(i)Pij=π(j)Pji for all i,j
則π(x)是馬爾可夫鏈的平穩分布,上式稱為細致平穩條件。
馬氏鏈的一個例子:
社會學家經常把人按其經濟狀況分成3類:下層(lower-class)、中層(middle-class)、上層(upper-class),我們用1,2,3 分別代表這三個階層。社會學家們發現決定一個人的收入階層的最重要的因素就是其父母的收入階層。如果一個人的收入屬于下層類別,那么他的孩子屬于下層收入的概率是 0.65, 屬于中層收入的概率是 0.28, 屬于上層收入的概率是 0.07。事實上,從父代到子代,收入階層的變化的轉移概率如下
假設初始概率分布為π0=[0.21,0.68,0.11],則我們可以計算前n代人的分布狀況如下:
從第7代人開始,這個分布開始穩定不變。
回到細致平穩分布,當達到馬氏鏈的平穩分布的時候,π=(0.286,0.489,0.225),由細致平穩可知滿足π(i)Pij = π(j)Pji。
如: π(1)P12=π(2)P21—–>0.286*0.28 =0.08008
0.489*0.15 =0.07335 近似相等
所以當π(i)Pij=π(j)Pji時,π(x)是馬氏鏈的平穩分布。
MCMC算法
假設我們已經有一個轉移矩陣Q(對應元素為q(i,j)), 得到了如下的用于采樣概率分布p(x)的算法。
讀Rickjin的LDA數學八卦的時候特別不理解,為什么α就是接受率。
先談論一個簡單的采樣,假設采樣擲一枚硬幣是正面還是反面,從均勻分布中采樣u,當u>0.5時候接受采樣(正面),否則拒絕采樣。
下面說說我對MCMC算法的理解:
假設對一篇文章的4個主題分布進行采樣:設置初始狀態X0=Topic1。
假設時刻t=1,從轉移矩陣Q中的q(x|T1)分布采樣了T2。
對于隨機游走,此時以概率p(T1)q(T2|T1)從Topic1轉移到Topic2,采樣T2,沒有接受率之說。
而此時我們需要采樣的是馬氏鏈細致平穩分布π(x)/p(x)的樣本,必須滿足π(i)Pij=π(j)Pji。為了保證p(T1)q(T2|T1)=p(T2)q(T1|T2),使得樣本來自p(x)概率分布,只有當u小于p(T2)q(T1|T2)時,接受X1=Topic2。
MCMC理解(網上看到的另一種解釋)
Gibbs sampling
? 什么是Gibbs Sampling
Gibbs Sampling是MCMC算法中的一種,用來構造多變量概率分布的隨機樣本,比如構造兩個或多個變量的聯合分布,求積分,期望。
? 為什么需要Gibbs Sampling
積分、期望、聯合分布計算,通常情況下當前面三個問題是NP問題時才需要Gibbs Sampling,否則直接計算就可以了。補充一句Gibbs Sampling只是(也只能)到近似解。
? 應用場景
a、積分,期望,樣本概率很難計算出來;b、條件概率很容易計算。具體例子:受限玻爾茲曼機(RBM)的訓練,貝葉斯網絡,LDA都用到Gibbs Sampling。
? 為什么Gibbs Sampling有效
當Gibbs Sapling算法執行多次之后,產生的樣本服從真實樣本的分布,即相當于直接從聯合分布中采樣。
總結
以上是生活随笔為你收集整理的MCMC采样算法理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 认识mysql总结_从根上理解Mysql
- 下一篇: logcat崩溃_使用logcat抓取A