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