MCMC 的性能基准

机器算法验证 机器学习 贝叶斯 参考 马尔可夫链蒙特卡罗
2022-02-06 14:10:43

是否有大规模的 MCMC 方法研究比较了几种不同算法在一组测试密度上的性能?我正在考虑与Rios 和 Sahinidis 的论文(2013 年)等效的东西,它是对几类测试函数上大量无导数黑盒优化器的彻底比较。

对于 MCMC,性能可以用例如每个密度评估的有效样本数 (ESS) 或一些其他适当的度量来估计。

几点评论:

  • 我很欣赏性能将在很大程度上取决于目标 pdf 的细节,但类似(可能不相同)的论点适用于优化,尽管如此,仍有大量的基准函数、套件、竞赛、论文等处理基准优化算法。

  • 此外,确实 MCMC 与优化的不同之处在于,用户需要更多的关注和调整。尽管如此,现在有几种 MCMC 方法需要很少或不需要调整:适应老化阶段、采样期间的方法,或进化多个交互链并使用的多状态(也称为ensemble)方法(例如Emcee )来自其他链的信息来指导抽样。

  • 我对标准和多状态(又名集成)方法之间的比较特别感兴趣。关于多态的定义,见麦凯的书第 30.6 节:

在多状态方法中,维护它们在 Metropolis 和 Gibbs 等动作下单独进化;向量之间也存在相互作用。x


更新

  • 有关多状态又名集成方法的有趣观点,请参阅Bob Carpenter 在 Gelman 博客上的这篇博文,以及这篇 CV 帖子的评论。
2个回答

经过一些在线搜索,我的印象是,不存在已建立的 MCMC 方法的综合基准,类似于在优化文献中可以找到的基准。(我很乐意在这里犯错。)

很容易找到一些 MCMC 方法在应用领域内特定问题上的比较。如果我们可以汇集这些信息,这将是可以的——然而,这些基准的质量通常是不够的(例如,由于缺乏报告的指标或糟糕的设计选择)。

在下文中,我将发布我认为有价值的贡献:

  • Nishihara、Murray 和 Adams,具有广义椭圆切片采样的并行 MCMC,JMLR(2014 年)。作者提出了一种新颖的多状态方法 GESS,并在 7 个测试功能上与其他 6 种单状态和多状态方法进行了比较。他们将性能评估为每秒和每个功能评估的 ESS(有效样本大小)。

  • SamplerCompare是一个 R 包,其目标是对 MCMC 算法进行基准测试——这正是我在最初的问题中所问的问题。不幸的是,这个包只包含几个测试功能;随附的论文没有报告实际的基准(只是一个小例子);而且似乎没有后续行动。

Thompson, Madeleine B. “SamplerCompare 简介”。统计软件杂志43.12(2011):1-10(链接)。

  • 有关多状态又名集成方法的有趣观点,请参阅Bob Carpenter 在 Gelman 博客上的这篇博文,以及这篇 CV 帖子的评论。

我同意您的评估,即没有为 MCMC 方法建立全面的基准。这是因为每个 MCMC 采样器都有优点和缺点,并且是针对特定问题的。

在典型的贝叶斯建模设置中,您可以在数据不同时以不同的混合率运行相同的采样器。我想说的是,如果将来对各种 MCMC 采样器进行全面的基准研究,我不相信结果在所示示例之外也适用。

关于使用 ESS 评估抽样质量,值得一提的是,ESS 取决于要从样本中估计的数量。如果要求样本的均值,得到的 ESS 与要估计第 25 个分位数会有所不同。话虽如此,如果感兴趣的数量是固定的,ESS 是比较采样器的合理方式。也许更好的主意是每单位时间的 ESS。

ESS 的一个缺陷是,对于多变量估计问题,ESS 分别返回每个分量的有效样本量,而忽略了估计过程中的所有互相关。最近这篇论文中,提出了一种多变量ESS,并通过函数R封装实现目前尚不清楚这种方法与包的 ESS 相比如何,但一开始似乎比单变量 ESS 方法更合理。mcmcsemultiESScoda