变分推理与MCMC:何时选择一个?


36

我觉得我得到两个VI和MCMC的总体思路,包括MCMC像Gibbs抽样的各种口味,新都黑斯廷斯等这个文件提供了两种方法的精彩论述。

我有以下问题:

  • 如果我想进行贝叶斯推理,为什么要选择一种方法而不是另一种方法?
  • 每种方法的优缺点是什么?

我知道这是一个相当广泛的问题,但是任何见解都将受到高度赞赏。

Answers:


34

要获得较长的答复,请在此处参阅Blei,Kucukelbir和McAuliffe 。这个简短的答案由此而来。

  • MCMC是渐近精确的;VI不是。在极限范围内,MCMC将精确估算目标分布。VI不提供保修。
  • MCMC在计算上很昂贵。通常,VI更快。

就是说,当我们有足够的计算时间来销毁并重视估算的精度时,MCMC就会获胜。如果为了方便起见我们可以忍受这一点(或者我们正在处理如此之大的数据,那么我们必须做出权衡),VI是一种自然的选择。

或者,正如上述作者更雄辩而全面地描述的那样:

因此,变分推理适用于我们要快速探索许多模型的大型数据集和场景。MCMC适用于较小的数据集和场景,在这些场景中,我们很乐意为更精确的样本付出更高的计算成本。例如,我们可能会在这样的环境中使用MCMC:花费了20年的时间收集了一个小而昂贵的数据集,我们确信我们的模型合适,并且需要精确的推论。在将文本概率模型拟合到十亿个文本文档中时,我们可能会使用变分推理,在此情况下,这些推理将用于为大量用户提供搜索结果。在这种情况下,我们可以使用分布式计算和随机优化来扩展和加速推理,并且我们可以轻松地探索许多不同的数据模型。


我认为Stan是执行MCMC(NUTS)的最快软件。什么是最快(或更强大)的变分推理方法?
skan

3
@skan很棒的问题!我所见过的最接近通用VI软件的是爱德华,尽管我自己还没有使用过它。(VI的许多应用程序都是自定义的,因为它们派生了适合特定兴趣模型的算法。)
Sean Easter

2
Stan也支持VI。stan的唯一限制是它无法对离散变量进行采样。
RJTK

而且,我仍然不相信Stan在GPU上运行ADVI ...仍然如此。最快的变分推理软件可能是TensorFlow概率(TFP)或Pyro,两者均基于高度优化的深度学习框架(即CUDA)构建。TFP源于Dustin Tran在Edward的早期工作,我相信他现在是Google的TFP负责人。
亚当·埃里克森

@AdamErickson仅供参考:Stan逐渐开始使用GPU arxiv.org/abs/1907.01063
Tim
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.