如何在使用Metropolis-Hastings算法时决定步长

我有一个关于Metropolis-Hastings算法的简单问题。 假设分布只有一个变量x,x的取值范围是s = [ - 2^31,2^31]。如何在使用Metropolis-Hastings算法时决定步长

在抽样过程中,我需要提出一个新的x值,然后决定是否接受它。

x_{t+1} =x_t+\epsilon 

如果我想自己实现它,如何决定\ epsilon的值。

基本的解决方案是从Uniform [-2^31,2^31]中选择一个值并将其设置为\ epsilon。如果数值范围是无限的,如[-inf,inf]怎么办?

当前MCMC库(例如pymc)如何解决该问题?

回答:

最好的方法是编码自调整算法,该算法以步长方差的任意方差开始,并随着算法的进展调整该方差。您正在拍摄Metropolis算法的验收率为25-50%。

回答:

假设您有$ d $维度参数,最佳比例为目标分布比例的大约2.4倍^( - 1/2)$倍,这意味着$ d = 1 $时的最优接受率为0.44, $ d $的0.23变为\ infinity。

参考:在随机游走都市算法, 托德L.格雷夫斯自动步长选择,2011年

以上是 如何在使用Metropolis-Hastings算法时决定步长 的全部内容, 来源链接: utcz.com/qa/259509.html

回到顶部