基于我对 MCMC(马尔可夫链蒙特卡洛)方法的了解,我知道采样是上述技术的关键部分。最常用的抽样方法是 Hamiltonian 和 Metropolis。
有没有办法利用机器学习甚至深度学习来构建更高效的 MCMC 采样器?
基于我对 MCMC(马尔可夫链蒙特卡洛)方法的了解,我知道采样是上述技术的关键部分。最常用的抽样方法是 Hamiltonian 和 Metropolis。
有没有办法利用机器学习甚至深度学习来构建更高效的 MCMC 采样器?
是的。与其他答案不同,“典型”机器学习方法(例如非参数和(深度)神经网络)可以帮助创建更好的 MCMC 采样器。
MCMC 的目标是从(非标准化)目标分布中抽取样本。获得的样本用于近似并且主要允许计算下的函数的期望(即高维积分),特别是的属性(例如矩)。
以及可能的梯度进行大量评估。如果的评估成本很高,或者梯度不可用,则有时可以构建一个成本较低的代理函数来帮助指导采样并代替进行评估(以仍然保留 MCMC 属性的方式)。
例如,一篇开创性的论文 ( Rasmussen 2003 ) 建议使用高斯过程(一种非参数函数近似)来构建对的近似并在代理函数上执行 HMC,仅基于的 HMC 的接受/拒绝步骤。这减少了原始的评估次数,并允许对 pdf 执行 MCMC,否则评估成本太高。
在过去的几年里,使用代理来加速 MCMC 的想法已经被探索了很多,主要是通过尝试不同的方法来构建代理函数并将其与不同的 MCMC 方法有效/自适应地结合起来(并且以一种保持“正确性”的方式) ' MCMC 采样)。与您的问题相关,这两篇最近的论文使用先进的机器学习技术——随机网络(Zhang et al. 2015)或自适应学习的指数核函数(Strathmann et al. 2015)——来构建代理函数。
HMC 并不是唯一可以从代理人中受益的 MCMC 形式。例如,Nishiara 等人。(2014)通过将多元学生分布拟合到集成采样器的多链状态来构建目标密度的近似值,并使用它来执行椭圆切片采样的广义形式。
这些只是示例。一般来说,许多不同的 ML 技术(主要在函数逼近和密度估计领域)可用于提取可能提高 MCMC 采样器效率的信息。它们的实际有用性——例如以“每秒有效独立样本的数量”来衡量——取决于是否昂贵或有点难以计算;此外,这些方法中的许多可能需要调整自己的知识或额外的知识,从而限制了它们的适用性。
参考:
拉斯穆森,卡尔·爱德华。“高斯过程加速混合蒙特卡洛以获取昂贵的贝叶斯积分。” 贝叶斯统计7. 2003。
张、程、巴巴克·沙巴巴和赵宏凯。“使用具有随机基数的代理函数的哈密顿蒙特卡洛加速。” arXiv 预印本arXiv:1506.05555 (2015)。
斯特拉斯曼、海科等人。“具有有效核指数族的无梯度哈密顿蒙特卡罗。” 神经信息处理系统的进展。2015 年。
Nishihara、Robert、Iain Murray 和 Ryan P. Adams。“具有广义椭圆切片采样的并行 MCMC。” 机器学习研究杂志 15.1 (2014): 2087-2112。
一种可以连接这两个概念的方法是多元 Metropolis Hastings 算法。在这种情况下,我们有一个目标分布(后验分布)和一个提议分布(通常是多元正态分布或 t 分布)。
一个众所周知的事实是,提议分布离后验分布越远,采样器的效率就越低。因此,可以想象使用某种机器学习方法来构建一个提案分布,该分布比简单的多元正态/t 分布更匹配真实的后验分布。
但是,尚不清楚这是否会提高效率。通过建议深度学习,我假设您可能对使用某种神经网络方法感兴趣。在大多数情况下,这将比整个普通 MCMC 方法本身的计算成本高得多。同样,我不知道 NN 方法(甚至大多数机器学习方法)能够很好地在观察空间之外提供足够的密度,这对 MCMC 至关重要。因此,即使忽略与构建机器学习模型相关的计算成本,我也看不出这会提高采样效率的充分理由。
机器学习涉及有监督或无监督环境中的预测、分类或聚类。另一方面,MCMC 只关心使用概率数值方法评估复积分(通常没有封闭形式)。Metropolis 抽样绝对不是最常用的方法。事实上,这是唯一没有任何概率成分的 MCMC 方法。因此,在这种情况下,ML 不会向 MCMC 提供任何信息。
基于重要性的抽样确实需要概率组件。在一些基本假设下,它比 Metropolis 更有效。如果 ML 方法与某些假设相吻合,则可以使用它来估计这个概率分量。示例可能是多元聚类以估计复杂的高维高斯密度。我不熟悉解决这个问题的非参数方法,但这可能是一个有趣的发展领域。
尽管如此,在我看来,ML 是估计高维复杂概率模型过程中的一个独特步骤,该模型随后用于数值方法。在这种情况下,我看不出 ML 如何真正改善 MCMC。
最近在计算物理学中有一些工作,作者使用受限玻尔兹曼机来模拟概率分布,然后提出(希望)有效的蒙特卡罗更新arXiv:1610.02746。这里的想法与上面@lacerbi 给出的参考非常相似。
在另一次尝试1702.08586中,作者明确构建了可以执行(甚至发现)著名的集群蒙特卡罗更新的玻尔兹曼机。