Metropolis-Hastings算法


參考文獻:Morten Hjorth-jensen 計算物理講義

1. Metropolis-Hastings算法

1.1 隨機行走:行走概率 \(T(i \rightarrow j)\)和接受概率 \(A(i \rightarrow j)\)

隨機行者的躍遷概率為

\[W( i \rightarrow j ) = T(i \rightarrow j) A(i \rightarrow j). \]

1.2 分布的演變

我們假定有大量的行者,它們在 \(t\) 時刻的分布為 \(\omega(i,t)\),那么,下一步的分布為

\[\omega(i,t+1) = \sum_j \omega(j,t) T( j \rightarrow i ) A( j \rightarrow i ) + \sum_j \omega(i,t) T( i \rightarrow j ) ( 1 - A(i \rightarrow j) ). \]

第一項表示移動到 \(i\) 然后被接受的情況,第二項表示從 \(i\) 移動然后被拒絕的情況。
因為 \(\sum_j T(i\rightarrow j) = 1\),所以上式可以改寫為

\[\omega(i, t+1) - \omega(i,t) = \sum_j \omega(j,t) T( j \rightarrow i ) A( j \rightarrow i ) - \sum_j \omega(i,t) T( i \rightarrow j ) A(i \rightarrow j) ). \]

上式左側是純收入,右側第一項表示進賬,第二項表示支出。
所以,時間足夠長以后,\(t\rightarrow \infty\), 如果體系達到穩態,\(\omega(i, \infty)\)保持不變,得到我們最初想要的分布,就一切OK了。

1.3 細致平衡

所以,達到穩態以后,一定有

\[\sum_j \omega(j,t) T( j \rightarrow i ) A( j \rightarrow i ) - \sum_j \omega(i,t) T( i \rightarrow j ) A(i \rightarrow j) ) = 0, \]

據說這個條件必要但不充分,更充分的是細致平衡:

\[\omega(j) T( j \rightarrow i ) A( j \rightarrow i ) = \omega(i) T( i \rightarrow j ) A(i \rightarrow j) ), \]

這個就叫做 Metropolis-Hastings。如果 \(T(j \rightarrow i) = T(i \rightarrow j)\) 則叫做 Metropolis算法,剩下的就是設計 \(A(i \rightarrow j), A(j \rightarrow i)\),使得

\[\frac{ A( j \rightarrow i ) }{ A(i \rightarrow j) ) } = \frac{\omega(i)}{\omega(j)}, \]

其中 \(\omega(i), \omega(j)\) 是目標分布。

有個簡單的關系,被冠以復雜的名字:Einstein-Smoluchenski-Kolmogorov-Chapman (ESKC)關系:

\[W(\vec{x}, t|\vec{x}_0, t_0) = \int^\infty_{-\infty} W(\vec{x},t|\vec{x}', t') W(\vec{x}', t' | \vec{x}_0, t_0 ) d\vec{x}', \]

它的意思非常直白:昨天從美國出發、明天到達中國的概率,是所有昨天從美國出發、今天到各個國家玩、明天到美國的概率之和。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM