有人可以用英语向我解释NUTS吗?


17

我对算法的理解如下:

没有掉头采样器(NUTS)是哈密顿蒙特卡罗方法。这意味着它不是马尔可夫链方法,因此该算法避免了通常被认为效率低且收敛缓慢的随机游走部分。

NUTS不会执行随机游走,而是执行长度为x的跳跃。随着算法继续运行,每次跳转都会加倍。这会一直发生,直到轨迹到达要返回起点的点为止。

我的问题:掉头有什么特别之处?如何将轨迹加倍不会跳过优化点?我的上述描述正确吗?


我发现了这篇文章,并且所展示的模拟确实对概念的解释有所不同。
kael

Answers:


13

不会掉头是如何生成建议。HMC生成了一个假设的物理系统:想象一个具有一定动能的球围绕着您想要采样的后验定义的山谷和丘陵景观(类比分解超过2个维度)。每次您想要获取一个新的MCMC样本时,您都会随机选择动能并从您所在的位置开始滚动。您可以模拟离散的时间步长,并确保正确探索参数空间,可以模拟一个方向的步长,而模拟另一个方向的步长两倍,再次转弯等。在某个时候,您想停止这种情况,这是个好方法这样做是当您掉头(即似乎到处走过)时。

此时,从您所访问的点(有一定限制)中选择了建议的马尔可夫链下一步。也就是说,假设物理系统的整个模拟是“公正的”,以得到随后被接受(下一个MCMC样本是提议的点)或被拒绝(下一个MCMC样本是起点)的提议。

聪明的是,提案是根据后方的形状提出的,并且可以位于分布的另一端。相比之下,Metropolis-Hastings在一个(可能是倾斜的)球内提出建议,而Gibbs采样一次只能沿一个(或至少很少)维度移动。


请您对“ 似乎遍地开花 ”的注释进行扩展吗?
加百利

1
意思是说它已经覆盖了发行版,NUTS会尝试通过您是否完全放弃来判断该发行版。如果是这样,您希望可以在一个MCMC步骤中转到后部的任何部分。当然,该条件并不能真正保证您已经探究了整个后验,而是表明您已经探究了它的“当前部分”(如果您有一些多峰分布,则可能很难遍及所有部分。的分布)。
比约恩

6

您错误地认为HMC不是Markov Chain方法。根据维基百科

在数学和物理学中,混合蒙特卡罗算法(也称为哈密顿蒙特卡罗)是一种马尔可夫链蒙特卡罗方法,用于从难以直接采样的概率分布中获得随机样本序列。该序列可用于近似分布(即生成直方图)或计算积分(例如期望值)。

为了更清晰,请阅读BetancourtarXiv文章,其中提到了NUTS终止标准:

...确定一条轨迹何时足够长,可以对当前能量水平集周围的邻域进行足够的探索。特别是,我们要避免积分太短(这种情况下我们不会充分利用汉密尔顿轨道)和积分太长(这两种情况下我们都不会在勘探中浪费宝贵的计算资源,而这只会产生递减的收益)。

附录A.3讨论了您提到的轨迹加倍的情况:

我们还可以通过在每次迭代中将轨迹长度加倍来更快地扩展,从而产生采样轨迹t〜T(t | z)= U T2L并具有相应的采样状态z'〜T(z'| t)。在这种情况下,每次迭代中的旧轨迹分量和新轨迹分量都等于完美的有序二叉树的叶子(图37)。这使我们可以递归地构建新的轨迹分量,在递归的每个步骤中传播一个样本...

并在A.4中对此进行了扩展,在其中讨论了动态实现(A.3节讨论了静态实现):

幸运的是,一旦我们选择了确定轨迹何时长到足以令人满意地探索相应能量水平的标准,就可以迭代第A.3节中讨论的有效静态方案来实现动态实现。

我认为关键是它不会将跳转数增加一倍,而是使用一种将拟议的跳转长度增加一倍直至满足条件的技术来计算其下一个跳转。到目前为止,至少这就是我的理解方式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.