MCMC 什么时候有用?

机器算法验证 马尔可夫链蒙特卡罗
2022-03-03 19:42:09

我无法理解 MCMC 方法在哪种情况下真正有用。我正在浏览 Kruschke 书中“做贝叶斯数据分析:R 和 BUGS 教程”中的一个玩具示例。

到目前为止我所理解的是,我们需要一个与成比例的目标分布,以便获得的样本。然而,在我看来,一旦我们有了,我们只需要对分布进行归一化即可得到后验,并且可以很容易地从数值上找到归一化因子。那么在哪些情况下这是不可能的呢?p(D|θ)p(θ)P(θ|D)p(D|θ)p(θ)

2个回答

蒙特卡罗积分是数值积分的一种形式,它比例如通过用多项式逼近被积函数的数值积分更有效。在高维情况下尤其如此,简单的数值积分技术需要大量的函数评估。为了计算归一化常数p(D),我们可以使用重要性采样

p(D)=q(θ)q(θ)p(θ)p(Dθ)dθ1Nnwnp(θn)p(Dθn),

其中是从中采样的。请注意,我们只需要评估采样点的联合分布。对于正确的,这个估计器在需要很少样本的意义上是非常有效的。在实践中,选择合适的可能很困难,但这是 MCMC 可以提供帮助的地方!退火重要性抽样(Neal, 1998)将 MCMC 与重要性抽样相结合。wn=1/q(θn)θnqqq

MCMC 有用的另一个原因是:我们通常甚至对的后验密度不感兴趣,而是对汇总统计和期望感兴趣,例如,θ

p(θD)f(θ)dθ.

知道通常并不意味着我们可以求解这个积分,但样本是一种非常方便的估计方法。p(D)

最后,能够评估是一些 MCMC 方法的要求,但不是所有方法(例如,Murray 等人,2006 年)。p(Dθ)p(θ)

当给定一个先验和似然时,它们要么不能以封闭形式计算,要么后验分布不是标准类型,直接从该目标模拟到后验分布的蒙特卡洛近似是不可行的。一个典型的例子是具有非共轭先验的分层模型,例如在BUGS 书中找到的那些。p(θ)f(x|θ)

p(θ|x)p(θ)f(x|θ)

的维数增加到超过几个单位时,间接模拟方法(例如接受-拒绝、均匀比率或重要性采样技术)通常会遇到数值和精度困难。θ

相反,马尔可夫链蒙特卡罗方法更适用于大维度,因为它们可以在局部基础上探索后验分布,即在当前值的邻域中,以及在较少数量的组件上,即在子空间上。例如,Gibbs 采样器验证了一次从一维目标进行模拟的概念,即与相关的完整条件分布,从长远来看足以从真实的后验中实现模拟。p(θ|x)

马尔可夫链蒙特卡洛方法也具有一定程度的普遍性,因为Metropolis-Hastings 算法等算法正式可用于任何可以计算为常数的p(θ|x)

不能轻易计算的情况下,存在替代方案,或者通过将该分布完成为在更大空间上的可管理分布,如或通过非马尔可夫方法,如ABCp(θ)f(x|θ)

p(θ)f(x|θ)g(z|θ,x)p(θ)f(x|θ)dz

MCMC 方法为贝叶斯方法提供了更广泛的应用范围,正如 Alan Gelfand 和 Adrian Smith 在 1990 年推广该方法后的热潮所说明的那样。