使用黑盒 MCMC 算法作为提议分布

机器算法验证 采样 马尔可夫链蒙特卡罗
2022-03-20 05:04:17

假设我有一些 MCMC 算法实现为一个函数,它在链中运行时black_box(x)生成样本。我现在想从中取样。是否可以用作提案分发,然后使用独立大都会,即:P(x)P(x)G(x)black_box(x)

1) 让x' = black_box(x).

2) 有概率地接受min(1, G(x') / G(x))

3) 循环到 1)

我怎样才能证明这是有效的?

第一次尝试

B(x -> x')black_box(x)返回的概率x'假设black_box(x)实现了 Metropolis-Hastings 算法,我们知道它实现了详细的平衡,即

B(xx)B(xx)=P(x)P(x)

如果我们选择我们的接受概率为

A(xx)=min(1,G(x)G(x))

总的转移概率满足详细的平衡,因为

B(xx)A(xx)B(xx)A(xx)=P(x)min(1,G(x)/G(x))P(x)min(1,G(x)/G(x))=P(x)G(x)P(x)G(x)(因为G(x)G(x)>1G(x)G(x)1 )。

问题

但是,上述方法在一般情况下不起作用,因为有 MCMC 算法不能保证详细的平衡。例如,确定性扫描吉布斯采样器的每次扫描都不满足详细平衡有没有办法修复上述解决方案以使其工作,还是不可能?black_box(x)为了允许将其用作提案分发,必须满足哪些要求?

1个回答

一种几乎等效的方法是通过重要性抽样。换句话说,

1)个样本。我们称这些样本为MP(X)X

2) 通过计算w=G(X)

计算您想要的任何统计数据(即平均值、标准差等)w=ww

4)如果你想从P(X)G(X)中得到一个未加权的样本,从中抽取概率为Xw