如果马尔可夫链没有在合理的时间内收敛怎么办?

机器算法验证 蒙特卡洛 马尔科夫过程 收敛
2022-04-02 10:09:33

我正在使用 Hamiltonian Monte Carlo 从神经网络权重的后验分布中进行数据分析。我正在使用Gelman-Rubin诊断估计潜在规模缩减(ESPR) 来检查我的马尔可夫链的收敛性。我的神经网络有大约 317 个模型权重,我分别检查了 317 个参数的收敛性。

如果我正确理解了所有内容,那么如果每个参数的 ESPR 值 < 1.1,参数应该已经收敛。

这确实发生在大多数参数中,但有些权重似乎没有在合理的时间内收敛。有些需要多达 100.000 个或更多样本直到它们收敛,这在我的分析中需要很长时间。

我的问题是:“如果马尔可夫链没有在合理的时间内收敛,那么进行的适当方法是什么?我只需要硬着头皮等待三个月左右吗?”

2个回答

回答你原来的问题

  1. 我不是使用 Gelman-Rubin 的超级粉丝,主要是因为它对我的口味有点手摇。但是,如果您仍想使用它,可以尝试使用多元 Gelman-Rubin,因为权重的联合后验可能具有单变量诊断无法捕获的复杂依赖结构。在这里查看答案
  2. 我建议首先查看缓慢收敛的权重的轨迹图。也许这是 Gelman-Rubin 无法解决的多模态问题等。
  3. 众所周知,HMC 通常在许多情况下会很快收敛。也许关注通过分析估计中的方差获得的估计的质量。您可以在此处找到有关这些方法的讨论。
  4. 要真正提高链的收敛性,您可以为慢速收敛的链尝试不同的起始值。您也可以尽可能地调整 HMC。HMC 也有可能在这里不起作用,而 Metropolis-Hastings 算法的变体可能会更好。在不了解更多问题的情况下,我将无话可说。

@Greenparker 谈到了这一点,但加速缓慢收敛模型的最简单方法是选择正确的起始值。这是违反直觉的,好像您一开始就知道正确的参数值,为什么要拟合模型。但是,如果您可以快速拟合类似的常客模型,请将这些参数估计值用作起始值。

同样,这假设您的链最终会收敛。如果它们根本不收敛,那么您可能会遇到冗余参数问题,即存在多个同样合理的参数组合,从而导致链永远不会收敛。