我想了解汉密尔顿·蒙特卡洛(HMC)的内部工作原理,但是当我们用Metropolis-Hasting提案取代确定性时间积分时,无法完全理解该部分。我正在阅读Michael Betancourt撰写的引人入胜的入门论文《哈密尔顿蒙特卡洛概念概论》,因此我将沿用其中的相同符号。
背景
马尔可夫链蒙特卡洛(MCMC)的总体目标是逼近目标变量的分布。
HMC的想法是引入辅助的“动量”变量以及与建模为“位置” 的原始变量结合。位置-动量对形成一个扩展的相空间,可以用哈密顿动力学来描述。联合分布可以用微规范分解来表示:
,
其中表示给定能级上的参数,也称为典型集合。参见图21和图22进行说明。
原始的HMC程序包括以下两个交替步骤:
在能量水平之间执行随机过渡的随机步骤,以及
确定性步骤,沿着给定的能量水平执行时间积分(通常通过跳跃式数值积分实现)。
在本文中,有人认为越级跳跃(或辛积分器)具有小的误差,会引入数值偏差。因此,与其将其视为确定性步骤,不如将其转变成Metropolis-Hasting(MH)提案以使该步骤成为随机步骤,并且所产生的过程将从分布中产生确切的样本。
MH提案将执行步越级操作,然后反转动量。然后,该提案将以以下接受概率被接受:
问题
我的问题是:
1)为什么将确定性时间积分转换为MH提议的这种修改会消除数值偏差,以使生成的样本完全符合目标分布?
2)从物理学的角度来看,能量在给定的能量水平上是守恒的。这就是为什么我们能够使用汉密尔顿方程的原因:
。
从这个意义上说,能量在典型集合上的任何地方都应该恒定,因此应当等于。为什么在能量上存在差异,可以构造接受概率?