C/C++教程

MCMC笔记Metropilis-Hastings算法(MH算法)

本文主要是介绍MCMC笔记Metropilis-Hastings算法(MH算法),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1 前言

        我们在MCMC笔记:齐次马尔可夫链_UQI-LIUWJ的博客-CSDN博客 中介绍了平稳条件,当马尔可夫链达到平稳状态时(也就是各个状态之间的转移概率已经和时间无关了),那我们可以通过此时的马尔可夫链转移概率采集样本。

        比如我一开始时样本x0,那么我就根据x0到其他状态的转移概率采样,然后根据后续样p(x->x*)=

        那么现在的问题在于,什么时候达到平稳条件呢?或者说,我们怎么去找转移概率呢?

        在MCMC笔记:齐次马尔可夫链_UQI-LIUWJ的博客-CSDN博客中,我们知道detailed balance p(x)p(x->x*)=p(x*)p(x*->x)可以推出平稳条件。

        但对于一般随机求得的转移概率q来说,p(x)q(x->x*)\neq p(x*)q (x*->x)

        于是我们需要构造一个系数,使得p(x)q(x->x*) \alpha(x,x*)= p(x*)q (x*->x) \alpha(x*,x)

        我们称\alpha(x,x*)为接受率,当等式成立的时候,q(x->x*) \alpha(x,x*)就是此时平稳条件的p(x->x*)

 2 MH算法

2.1 α(接受率)的选取

我们令\alpha(x,x*)=min(1,\frac{p(x*)q(x*->x)}{p(x)q(x->x*)})

此时p(x)q(x->x*) \alpha(x,x*)=p(x)q(x->x*)min(1,\frac{p(x*)q(x*->x)}{p(x)q(x->x*)})

                                                  =min(p(x)q(x->x*),p(x*)q(x*->x))

                                                 =p(x*)q(x*->x)min(\frac{p(x)q(x->x*)}{p(x*)q(x*->x)},1)

                                                  =p(x*)q(x*->x)\alpha(x*,x)

也即p(x)p(x->x*)=p(x*)p(x*->x)p(x->x*)=q(x->x*) \alpha(x,x*)

所以此时满足detailed balance,所以此时的马尔可夫链满足平稳状态                           

2.2 MH算法流程

 

 接受率是α(x,x*)

参考内容

机器学习-白板推导系列(十三)-MCMC(Markov Chain Monte Carlo)笔记 - 知乎 (zhihu.com)

机器学习-白板推导系列(十三)-MCMC(Markov Chain Monte Carlo)_哔哩哔哩_bilibili

这篇关于MCMC笔记Metropilis-Hastings算法(MH算法)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!