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