“马尔可夫链蒙特卡洛”方法真的需要“马尔可夫链”吗?

机器算法验证 可能性 采样 马尔可夫链蒙特卡罗 蒙特卡洛 马尔科夫过程
2022-03-30 02:37:06

我正在使用 Christopher Bishop 的“模式识别和机器学习”一书学习 MCMC。在 MCMC 的章节中,这本书也稍微介绍了马尔可夫链。

但是,在阅读本书时,我想知道为什么需要马尔可夫链。因为要进行 Metropolis-Hasting 算法,每一步我都会从提案分布中抽取样本,然后决定是否接受。

对我来说,这个 Metropolis-Hasting 算法更像是拒绝抽样。采用我们可以直接从中抽取样本的提案分布,并决定样本应该被接受或不相似。

使用马尔可夫链的空间在哪里?我需要计算 Metropolis-Hasting 算法的“转移矩阵”吗?在这种我困惑的状态下,我觉得我可以在不需要马尔可夫链的转移矩阵的情况下进行 Metropolis-Hasting 采样。

我现在很困惑。这本书只是说“在某些情况下,马尔可夫链会收敛到所需的分布”。但它并没有说我如何设计马尔可夫链来收敛我想要的分布。而网上的很多资料似乎也跳过了这部分。我认为设计 MC 的转换矩阵是进行 MCMC 的重要部分。但现在,我想没有必要了。

提前致谢。

3个回答

首先,除了 Metropolis-Hastings (MH) 之外,还有更多的马尔可夫链蒙特卡洛 (MCMC) 采样器,但我将重点关注 MH。

不是需要马尔可夫链,而是使用 MH 算法获得的样本本身形成马尔可夫链,该链收敛到接受-拒绝标准中指​​示的平稳分布。拒绝抽样和 MH 之间存在一些差异。假设您希望从中获得样本的分布是π

  1. 在 MH 中,如果您当前的样本是 ,您从提案分布中抽取样本,并找到以下接受拒绝率 请注意,接受-拒绝比本身是当前步长的函数。即使您的提议不依赖于您当前的步骤(如在独立 MH 中),您的比率仍然是 这又取决于当前步骤。因此,您接受或拒绝的概率取决于当前步骤,从而使您获得马尔可夫链的样本。xyq

    min(1,π(y)q(xy)π(x)q(yx)).
    x
    min(1,π(y)q(x)π(x)q(y)),

  2. 如果建议的步骤在 MH 中被拒绝,则下一步与当前步骤相同。同样,下一步取决于上一步,因此我们有一个马尔可夫链。

MH 算法将收敛到的平稳分布是在比率如果您将其替换为任何其他分布,您获得的样本将收敛到该分布。马尔可夫链是否收敛是实践者不必担心的,因为这已经在 MH 算法中得到了证明。π

最后,不需要计算转移矩阵,因为没有转移矩阵,马尔可夫链的更新路径就很清晰了。还有,当状态空间无限大时(如实线),就不能再处理转移矩阵了,只好研究转移“核”了。但这不是必需的,因为马尔可夫链更新自身的方式只是MH-ratio算法,不需要其他信息。

这只是与术语的混淆。并不是说你需要“使用”马尔可夫链来抽取 Metropolis-Hastings 样本,而是 Metropolis-Hastings 抽取的序列是马尔可夫链。这是算法设计的固有部分。

“马尔可夫链蒙特卡洛”只是一个限定词,表明从这个蒙特卡洛算法中抽取的结果会产生一个马尔可夫链。

总体而言,MCMC 和 Metropolis-Hastings 与拒绝抽样截然不同。

  • 请注意,拒绝抽样独立于一个生成的值到下一个生成的值——无论您刚刚生成什么值,下一个值的分布都不会考虑它。MCMC涉及一系列动作。在一个步骤中,您处于某个值,然后以该值为条件,您可以通过某种方式在下一步移动到(可能)新值。

  • 此外,您没有描述您拒绝时会发生什么

    在拒绝抽样中,您根本没有价值。你再次生成。

    在 Metropolis-Hastings,您无法接受移动,因此您保留之前的值。