为什么在 MCMC 中使用哈密顿动力学?

计算科学 优化 分子动力学 蒙特卡洛 随机抽样
2021-12-24 08:13:40

在哈密顿蒙特卡罗中,哈密顿动力学用于从当前状态生成新的提议。我理解为什么使用这些动力学而不是随机游走行为来生成建议,但我不明白为什么使用哈密顿动力学而不是任何其他动力学。有人可以向我解释一下吗?此外,这似乎也很难搜索,因此任何指向引用的指针也将不胜感激。

1个回答

我回复有点晚了,但我发现这篇评论非常有用。哈密​​顿流的一个特别好的特征是它们在相空间中保持体积。如果我们在相空间中围绕点的无穷小盒子,然后在哈密顿流下将盒子内的每个点及时向前传播 ,体积转换后的盒子将保持不变。如果您要使用一些不一定保留相空间中的体积的(δq,δp)(q,p)δtΨ|detΨ|计算可能可行,也可能不可行。哈密​​顿流是体积守恒的,所以这个雅可比因子总是等于 1。

仅仅因为哈密顿系统很好并不一定意味着您提出的任何离散化方案都具有所有这些属性。如果您使用像前向或后向欧拉这样的朴素 ODE 求解器,那么您将完全失去相位体积不变性。

幸运的是,对于如何为确实保留许多不变量的哈密顿系统构建时间步长方案,有一个非常丰富的理论。这些被称为辛积分器如果您使用辛积分器,例如半隐式 Euler,则数值流是来自轻微扰动哈密顿量的轨迹的精确采样。您甚至可以使用一些花哨的李代数理论来计算出扰动哈密顿量在时间步长中的任意顺序是什么。哈密​​顿量的这种向后稳定性意味着当您离散化时,哈密顿量系统的所有良好结构特性都得以保留。