← 最新论文
📊 statistics

LazyHMC: Hamiltonian Monte Carlo Simulation for Lazy, Infinite Dimensional Probabilistic Programs

本文介绍了 LazyHMC,这是一个通过利用延迟求值和一种新的“PACAP”分析来确保梯度具有有限支撑,从而为非参数贝叶斯模型实现高效的基于梯度的推断,将哈密顿蒙特卡洛方法扩展到 Haskell 中无限维概率程序的创新框架。

原作者: Maria-Nicoleta Crăciun, C. -H. Luke Ong, Tom Schrijvers, Sam Staton

发布于 2026-08-11
📖 1 分钟阅读☕ 轻松阅读

原作者: Maria-Nicoleta Crăciun, C. -H. Luke Ong, Tom Schrijvers, Sam Staton

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下你正在尝试解决一个巨大的拼图,但盒子上说有无限块碎片。在计算机科学和统计学领域,这是一个常见的问题,被称为“非参数化”(non-parametric)建模。与其猜测一个固定的变量数量(比如“数据中恰好有 5 个聚类”),计算机试图弄清楚它实际需要多少块碎片,甚至可能需要无限多。为了解决这些拼图,科学家们使用了一种聪明的技巧,叫做哈密顿蒙特卡洛(Hamiltonian Monte Carlo, HMC)。把 HMC 想象成一个在雾气缭绕的山脉中寻找最深谷底的徒步旅行者。他不是采取微小的、随机的步伐(这既慢又不高效),而是向球体投掷了一个带有动量的球。球顺着斜坡滚下,积累速度,使徒步旅行者能够跃过这些雾气弥漫的山丘,更快地找到最佳位置。然而,这里有一个陷阱:标准的徒步旅行者需要一张具有固定坐标的地图。如果地图是无限的,徒步旅行者就会卡住,因为他们无法计算无限座山的坡度。

这就是一篇新论文发挥作用的地方,它为以一种最好的方式被“延迟”(deferred)处理的计算机提供了解决方案。研究人员使用了一种名为 Haskell 的编程语言,意识到虽然山脉可能是无限的,但徒步旅行者只需要观察特定的几块岩石,就能知道该往哪边滚动。他们开发了一种新方法,称为 DeferredHMC。这就像是一个徒步旅行者只看脚下的地面和前方几步的路,忽略了无限山脉的其他部分,直到他们真正需要踏上那里为止。这使得计算机能够解决以前标准方法难以处理的复杂无限拼图,同时利用动量的速度,又不会被无限所压垮。

问题:无限的山脉与卡住的徒步旅行者

在概率编程的世界里,统计学家编写代码来描述数据是如何生成的。有时,他们不知道需要多少个“参数”(模型的旋钮和刻度)。也许他们正在对数据进行聚类,却不知道是有 3 个组还是 300 个组。或者,他们可能正在模拟一个永远进行的随机游走。在这种情况下,“参数空间”是无限的。

标准的 HMC 在有限问题上是超级明星。它利用梯度(坡度)来引导搜索。把模型的似然度想象成一个景观:高山是不好的拟合,深谷是好的拟合。HMC 利用山的坡度让球向谷底滚动。但要计算坡度,你需要知道山在每一点的高度。如果这座山有无限个维度,计算坡度似乎是不可能的。

此前,人们曾尝试通过三种方式来解决这个问题,但都有缺陷:

  1. 截断法(Truncation): 他们直接在某个高度之前切断山脉。这就像是在说:“我们只看前 100 块拼图。”这虽然可行,但很混乱,因为你必须猜测在哪里切割,如果你切得太早,就会错过解。
  2. 动态维度(Dynamic Dimensions): 他们随着进程逐步构建山脉。这更好,但它使代码变得复杂,且不够“声明式”(不再仅仅是关于问题本身,而更多是关于如何构建它)。
  3. 没有梯度的延迟方法: 他们使用了“延迟”评估(仅计算需要的量),但放弃了动量。这意味着徒步旅行者只能再次采取微小的、随机的步伐,这非常缓慢。

这篇论文提出了一个问题:我们能否兼得两者? 能否在无限的山脉上使用强大的、快速的动量 HMC,但只观察我们实际需要的山脉部分?

解决方案:延迟的徒步旅行者

作者 Maria-Nicoleta Crăciun 及其团队说,可以。他们开发了 DeferredHMC,一种结合了梯度力量与 Haskell 编程“延迟”特性的方法。

这里有一个魔术技巧:尽管山脉是无限的,但徒步旅行者(计算机程序)实际上只需要触碰有限数量的岩石就能确定坡度。

  1. “PACAP”洞察: 团队在数学上证明了,对于一大类程序,其“坡度”(梯度)只在有限数量的地方是非零的。即使模型具有无限个潜在维度,你所观察的具体数据也只会“激活”其中的几个。这就像一个巨大的图书馆,拥有无限的书籍,但针对一个特定的问题,你只需要阅读其中三页。图书馆的其余部分在这一刻是无关紧要的。
  2. 延迟评估: 在 Haskell 中,值只有在被需要时才会被计算。计算机不会生成整个无限列表的随机数;它只是在数学要求时,才生成第一个、第二个。
  3. 抵消技巧: 这是最聪明的部分。在 HMC 中,你必须计算一个“接受率”来决定一个新位置是否理想。通常,这涉及为每一个维度进行乘法运算。如果维度是无限的,这个乘积就是无限的。但作者展示了,对于徒步旅行者没有访问的那些维度,数学运算会完美地抵消掉(它们相乘等于 1)。因此,这个无限乘积坍缩为一个仅涉及已访问维度的微小、有限的乘积。

实际操作中它是如何工作的

论文介绍了几个不同版本的延迟徒步旅行者,但它们都遵循相同的逻辑:

  • 第 1 步: 徒步旅行者从一个位置开始,并获得一个随机的“踢力”(动量)。
  • 第 2 步: 徒步旅行者沿着坡度滚动。在滚动过程中,他们只计算他们实际踩到的无限山脉的部分。
  • 第 3 步: 如果徒步旅行者踩到了一个之前不存在的新岩石(激活了一个新维度),系统会延迟生成该位置所需的数据。
  • 第 4 步: 徒步旅行者决定留下还是回去。因为未访问部分的数学运算会相互抵消,所以徒步旅行者不需要知道它们的存在。

作者还创建了一个延迟 NUTS(No-U-Turn Sampler,无转向采样器)。标准 HMC 需要你猜测要滚动多远(步数)。如果你滚得太少,探索就不够;滚得太多,则会浪费时间。NUTS 是一种智能算法,它会在开始折返时自动停止。作者也制作了一个延迟版本的 NUTS,这样计算机就可以在无需看到整个无限山脉的情况下,决定要滚动多远。

实验:它真的有效吗?

为了测试他们的想法,团队在几个棘手的问题上运行了模拟:

  • 几何分布(Geometric Distribution): 一个步数不受限制的模型。延迟 HMC 方法比之前的最佳方法(NP-HMC)至少快 10 倍,并且产生了准确的结果。
  • 随机游走(Random Walks): 一个步行者永远移动的模型。延迟方法成功找到了步行者的起始位置,尽管这个游走是无限的。延迟 NUTS 方法虽然在原始运行时间上较慢,但找到了比其他方法更好的解决方案(更高的“有效样本量”)。
  • 聚类(高斯混合模型/Gaussian Mixture): 一个组数未知的模型。延迟方法正确识别了聚类的数量和中心的位置,表现得与现有方法一样好,甚至更好。
  • 多项式回归(Polynomial Regression): 一个曲线复杂度(阶数)未知的模型。延迟方法找到了正确的阶数(5)并很好地拟合了数据,而旧方法则会卡在错误的复杂度上。

这意味着什么

这篇论文并不声称已经解决了统计学中的所有问题。它并没有说这是对所有无限模型的最终定论。然而,它证明了基于梯度的 HMC 可以直接在无限维空间上工作,而无需进行截断或手动追踪维度。

核心结论是:延迟评估是一种超能力。通过在最后一刻才计算一个值,计算机避免了处理无限这一不可能的任务。相反,它处理的是一个可控的、有限的切片,而数学确保了无限世界的其余部分并不重要。

作者指出,虽然这在他们测试的模型中表现良好,但现实世界的系统可能仍需要人类指导来调整设置(例如步长的大小)。但就目前而言,他们已经为贝叶斯推断开辟了一条新路径:一种让计算机可以在不迷失方向的情况下探索无限的方法。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →