神经网络学物理:为什么哈密顿形式比牛顿形式更顺手
文章目录
神经网络学物理:为什么哈密顿形式比牛顿形式更顺手
1. 问题从哪来
用神经网络预测物理系统的演化,常见做法是:给一堆轨迹数据,让网络预测下一时刻的位置和速度。说白了,就是用神经网络拟合 F = m a F=ma F=ma 对应的加速度场或力场。
这个办法能跑通,但有一个毛病:时间一长,预测的轨迹会逐渐偏离真实轨迹,能量不守恒了。每一步的数值积分都在积累误差,时间越长偏差越大。
有没有可能让网络学到更本质的东西,而不是每一步都重新近似?
2. 两条路:向量场 vs 标量函数
第一条路(牛顿):网络输出 d q d t \frac{dq}{dt} dtdq 和 d p d t \frac{dp}{dt} dtdp,对应一个向量场。这是一种"局部"的描述——只知道系统在当前状态下往哪走,不知道整体上系统有没有什么约束。
第二条路(哈密顿):网络输出一个标量函数 H θ ( p , q ) H_\theta(p, q) Hθ(p,q),即哈密顿量。然后通过哈密顿方程
d q d t = ∂ H ∂ p , d p d t = − ∂ H ∂ q \frac{dq}{dt} = \frac{\partial H}{\partial p}, \quad \frac{dp}{dt} = -\frac{\partial H}{\partial q} dtdq=∂p∂H,dtdp=−∂q∂H
得到运动方程。这里网络学的是"能量",而不是"力"。运动方程的梯度结构是自动满足的。
两者的区别不在于哪个更准确,而在于哪个结构对网络更友好。标量函数只有一个输出,向量场有多个分量要分别拟合。更重要的是,哈密顿结构自带守恒律——能量守恒不是靠数据"发现"的,而是由梯度运算的结构本身保证的。
3. HNN 做了什么
2019 年,Greydanus、Dzamba、Yosinski 在 NeurIPS 上提出了 Hamiltonian Neural Network(HNN)。
做法很直接:
- 用神经网络 H θ ( p , q ) H_\theta(p, q) Hθ(p,q) 拟合哈密顿量
- 损失函数来自哈密顿方程:
L = ∥ ∂ H θ ∂ p − d q d t ∥ 2 + ∥ ∂ H θ ∂ q + d p d t ∥ 2 \mathcal{L} = \left\|\frac{\partial H_\theta}{\partial p} - \frac{dq}{dt}\right\|^2 + \left\|\frac{\partial H_\theta}{\partial q} + \frac{dp}{dt}\right\|^2 L= ∂p∂Hθ−dtdq 2+ ∂q∂Hθ+dtdp 2
- 给定当前 ( p , q ) (p, q) (p,q),用标准数值积分器(如 RK4)推进到下一步
前两步是核心:损失函数里的物理不是外加的约束,而是计算图的一部分——网络的梯度本身就构成运动方程。
论文在弹簧振子、单摆、二体问题、像素单摆上做了实验。结果一致:Baseline NN 在长时间积分后能量漂移,HNN 能量几乎不漂移。两者的训练损失相当,差距只在长期预测稳定性上显现出来。
有一个细节值得提:HNN 守恒的量并不等于真实总能量,而是与之成比例的某个值。能量本身是相对量(需要规定零点),所以这个差异无关紧要。
还有一个值得注意的现象:论文用了真实单摆的实验数据——真实单摆有轻微摩擦,数据本身不严格满足能量守恒。HNN 在这种情况下仍然学到了一个近似守恒的量。这说明 HNN 的基本假设是"守恒量存在",当假设被违反时,它只能退而求其次。
4. 辛几何:守恒背后的结构
HNN 为什么能守能量?光说"梯度结构"还不够准确。真正的原因在辛几何。
相空间是一个偶数维流形。每一点上可以定义一个辛形式 ω \omega ω,它是一个反对称双线性映射。哈密顿系统的演化流是辛映射:时间演化保持 ω \omega ω 不变。这个性质叫辛结构保持。
与之对应的是刘维尔定理:相空间体积在哈密顿流下保持不变。辛保持比体积保持更强——辛结构是更精细的几何结构。
这对神经网络意味着什么? 如果网络输出的梯度恰好构成一个辛映射,那么能量守恒是必然结果,而不是训练出来的。在 HNN 中,损失函数强制网络输出满足哈密顿方程的梯度,这实际上就是在强制辛结构保持。所以 HNN 的能量守恒是结构性的,不是数据驱动或正则项的结果。
数值积分层面也有对应:普通欧拉法或 RK 法不保持辛结构,所以长时间积分会漂移。辛积分器(如 leapfrog / Velocity Verlet)则刻意保持辛结构,即使步长较大也能维持能量稳定。将辛积分器与 HNN 结合是自然的选择——SRNN(Symplectic Recurrent Neural Networks)等工作就做了这件事,在前向传播中直接用 leapfrog 积分多步推进,再用多步积分误差做反向传播。
5. 参数感知 HNN:适应性从何而来
HNN 有一个局限:训练时在哪些参数值上采集数据,预测就只能做那些参数值。2021 年,Han 等人在 Physical Review Research 上发表的工作解决了这个问题。
他们用 Hénon-Heiles 系统作为测试平台:
H = 1 2 ( p 1 2 + p 2 2 ) + 1 2 ( q 1 2 + q 2 2 ) + α ( q 1 2 q 2 − 1 3 q 2 3 ) H = \frac{1}{2}(p_1^2 + p_2^2) + \frac{1}{2}(q_1^2 + q_2^2) + \alpha\left(q_1^2 q_2 - \frac{1}{3}q_2^3\right) H=21(p12+p22)+21(q12+q22)+α(q12q2−31q23)
α \alpha α 是分岔参数, α = 0 \alpha = 0 α=0 时系统可积, α = 1 \alpha = 1 α=1 时大部分相空间是混沌的。
参数感知 HNN 的设计很简单:在输入层加一个参数通道 α \alpha α,与 ( q 1 , q 2 , p 1 , p 2 ) (q_1, q_2, p_1, p_2) (q1,q2,p1,p2) 一起输入网络。训练时只用了 4 个 α \alpha α 值(0.2, 0.4, 0.6, 0.8)。训练完成后,给定任意 α ∈ [ 0 , 1 ] \alpha \in [0, 1] α∈[0,1],网络都能预测该参数下的动力学。
实验结果显示,在训练参数覆盖的区间内,势能预测相对误差不到 2%,区间外误差增大但仍在可接受范围。更值得注意的是,HNN 成功预测了混沌转变的发生点——通过计算最大 Lyapunov 指数和最小对齐指数,预测值与真实值吻合。
论文还做了一个消融:分别用 3、4、5 个不同 α \alpha α 值训练,发现误差在 N ≥ 4 N \geq 4 N≥4 后基本不变。4 个参数值已足够。
6. 耗散怎么办
HNN 基于保守系统。真实物理系统往往有摩擦或外部驱动力,不满足能量守恒。
DHNN(Dissipative HNN) 通过引入 Rayleigh 耗散函数 D ( q , p ) D(q, p) D(q,p) 解决这个问题:
d q d t = ∂ H ∂ p + ∂ D ∂ q , d p d t = − ∂ H ∂ q + ∂ D ∂ p \frac{dq}{dt} = \frac{\partial H}{\partial p} + \frac{\partial D}{\partial q}, \quad \frac{dp}{dt} = -\frac{\partial H}{\partial q} + \frac{\partial D}{\partial p} dtdq=∂p∂H+∂q∂D,dtdp=−∂q∂H+∂p∂D
这里 H H H 和 D D D 分别由两个网络拟合。DHNN 本质上对向量场做了 Helmholtz 分解:任意光滑向量场可以唯一地分解为无旋部分(保守部分,由 H H H 描述)和旋转部分(耗散部分,由 D D D 描述)。DHNN 同时学到了保守和耗散两种动力学。
7. 其他扩展方向
这里不展开,只列出主要脉络:
- LNN(Lagrangian Neural Network):不直接用 ( p , q ) (p, q) (p,q),而是用广义坐标 q q q 和速度 q ˙ \dot{q} q˙,通过欧拉-拉格朗日方程建模。好处是坐标系无关,不依赖正则动量的显式定义。
- VIN(Variational Integrator Network):把辛积分器换成 Velocity Verlet,并引入李群变分积分器,让系统自动在指定几何结构上演化。
- SymODEN:支持角度等非欧几里得坐标,用 ( cos q , sin q ) (\cos q, \sin q) (cosq,sinq) 编码,还能加外部控制项,用于轨迹跟踪等控制任务。
- CHNN(Constrained HNN):把约束系统嵌入笛卡尔坐标,用拉格朗日乘子显式强制约束,学习问题因此简化。
- HOGN / HamNet:图神经网络 + 哈密顿结构,学习分子等多体系统的动力学。
- HGN(Hamiltonian Generative Networks):VAE + 哈密顿隐变量,同时解决了高维观测(图像)的降维和动力学学习。还可作为正则化流使用,因为哈密顿流天然满足可逆性和体积保持。
8. 什么情况下不该用 HNN
说了这么多优点,也要说清楚边界。
系统不满足哈密顿结构时。 摩擦、碰撞、开放边界等情况,能量不守恒。DHNN 可以处理耗散,但无法处理时间对称性被破坏得更彻底的情形。
系统本质是混沌的时。 混沌不意味着 HNN 错了——HNN 学到的哈密顿量可能是正确的,问题在于混沌本身:初始条件的微小误差会以指数速度放大。辛积分器能缓解但不能根本解决。
需要显式时间依赖的驱动系统。 HNN 假设 H H H 不显含时间。如果系统有外界时变驱动,HNN 类方法需要修改基本框架。
计算开销。 损失函数中的梯度项需要在反向传播中额外计算雅可比矩阵,相比纯黑盒模型有额外开销。
9. 小结
回到最初的问题:牛顿形式和哈密顿形式,哪种对神经网络更友好?
不是牛顿力学本身有问题,而是表述形式与神经网络的能力结构不匹配。牛顿力学要网络去拟合一个向量场,每一步都在局部近似;哈密顿力学要网络去找到一个标量函数,整个梯度结构自动满足运动方程。标量函数比向量场更容易拟合,守恒律由结构保证而不是靠数据驱动,辛几何的先验让网络在参数更少的情况下泛化得更好。
这不是说哈密顿力学万能。它的适用范围受守恒律和辛结构约束。但在那些确实满足这些约束的系统里——保守机械系统、可积到混沌的参数化系统、带耗散的力系统——哈密顿神经网络提供了一条把物理结构融入神经网络架构的清晰路径。
10. 从振子到轨道:哈密顿力学如何描述平动点运动
前面几节讨论的例子——弹簧振子、单摆、Hénon-Heiles 系统——都是相空间维数不高的保守系统。但哈密顿力学的价值远不止于此。它在三体动力学中扮演着不可替代的角色,而这恰恰是地月空间轨道表征的核心数学工具。
10.1 近地空间用牛顿,地月空间为什么要用哈密顿
近地空间的航天器轨道通常用二体问题描述:给定初始位置和速度,积分牛顿第二定律即可。这种描述在工程上足够用,因为地球引力占绝对主导,其他天体的扰动可以当作修正项处理。
到了地月空间,情况变了。航天器同时受地球和月球引力作用,两者量级相近,没有哪个可以简单忽略。描述这个系统需要用**圆形限制性三体问题(CRTBP)**模型:在以地月公共质心为原点的旋转坐标系中,航天器在两天体引力的共同驱动下运动。
CRTBP 的相空间是六维的,比二体问题复杂得多。更关键的是,CRTBP 不可积——除了能量,没有其他解析的全局守恒量能用来简化问题。这带来一个实际困难:如何给平动点轨道建立一套参数体系,让观测者能够识别和编目这些轨道?
牛顿力学在二体问题中有成熟的开普勒根数可以做到这件事,但开普勒根数在 CRTBP 框架下不再是运动积分,无法直接使用。
10.2 辛几何给出了答案
哈密顿力学提供了一套在 CRTBP 框架下参数化平动点轨道的系统方法。
平动点附近的动力学结构是鞍 × 中心 × 中心的组合:两个方向上相空间是双曲的(沿不稳定流形运动),两个方向上是稳定的周期或准周期运动。这来自 CRTBP 线性化后特征根的结构——一个实根(对应不稳定方向)和两个纯虚根(对应两个中心方向)。
利用这个结构,可以通过辛变换逐步简化哈密顿函数:
- 对线性化部分做正则变换,得到实正规形式,其中 λ q 1 p 1 \lambda q_1 p_1 λq1p1 项对应鞍方向, ω p 2 ( q 2 2 + p 2 2 ) \frac{\omega_p}{2}(q_2^2+p_2^2) 2ωp(q22+p22) 和 ω ν 2 ( q 3 2 + p 3 2 ) \frac{\omega_\nu}{2}(q_3^2+p_3^2) 2ων(q32+p32) 对应两个中心方向
- 对非线性高阶项,用 Lie 变换做正规化,同时把双曲方向从中心流形中解耦出来
- 在中心流形上引入作用角变量: I j = q j p j I_j = q_j p_j Ij=qjpj, θ j = arctan ( q j / p j ) \theta_j = \arctan(q_j/p_j) θj=arctan(qj/pj)
最终得到六个特征参数: [ q 1 , p 1 , I 2 , θ 2 , I 3 , θ 3 ] [q_1, p_1, I_2, \theta_2, I_3, \theta_3] [q1,p1,I2,θ2,I3,θ3]。其中 q 1 q_1 q1 和 p 1 p_1 p1 描述航天器沿不稳定/稳定流形运动(进入还是离开平动点), I 2 I_2 I2 和 I 3 I_3 I3 是两个方向上的运动振幅, θ 2 \theta_2 θ2 和 θ 3 \theta_3 θ3 是相位。当这些参数取特定值时,对应周期轨道(如 Halo 轨道)或准周期轨道(如 Lissajous 轨道)。
这套参数体系的核心价值在于双射:给定轨道初态,可以唯一确定这六个参数;给定参数,通过辛积分可以重构轨道的完整演化。
10.3 真实星历模型中的强迫运动解耦
CRTBP 是理想化模型。真实的地月空间还要考虑月球轨道偏心率、太阳引力摄动等因素。在星历模型下,平动点不再是"平衡点"——它们只有几何意义,动力学上不再满足 q ˙ = p ˙ = 0 \dot{q}=\dot{p}=0 q˙=p˙=0。
处理这个问题的方法是解耦强迫运动:把航天器的运动分解为两部分——随平动点的拟周期运动(强迫部分),以及在平动点附近的自由运动(这部分的平衡点特性被恢复了)。在哈密顿力学框架下,这等价于通过正则变换消除哈密顿函数中的一阶项。
具体做法是构造一个生成函数,用 Lie 变换把一阶项消去。消去后得到的新哈密顿函数只含二阶及以上项,系统重新具有了平衡点特征。新旧坐标之间有显式关系,强迫运动(动态替代轨道)可以直接从生成函数的系数中提取出来。
这个方法的好处是:分析平动点附近的非线性中心流形运动时,可以直接沿用 CRTBP 框架下的正规化技术( Birkhoff-Gustavson 正规形式、中心流形约化等),而不需要每次都回到复杂的星历模型。
10.4 轨道识别与编目
六个特征参数的最大实用价值在于轨道识别:给定一段观测弧段(位置和速度随时间的数据),如何判断它对应哪条参考轨道?
传统方法是直接做轨道积分,然后与候选参考轨道逐一比较。但平动点轨道对初始误差极其敏感——位置误差超过 10 km、速度误差超过 0.1 m/s 后,积分轨迹就会快速发散,使识别失败。
用特征参数做识别则稳定得多。原因在于:一方面, q 1 q_1 q1、 p 1 p_1 p1 的指数放大效应被解耦到了单独的通道中,不会干扰中心流形参数的识别;另一方面,通过 Poincaré 截面可以把轨道族(如 Halo 轨道族、Lissajous 轨道族)的分布可视化——每一个能量层级对应一张截面图,图中不同轨道族占据不同区域。识别问题由此转化为:在截面图上找使均方误差最小的 [ I 2 ( 0 ) , I 3 ( 0 ) ] [I_2^{(0)}, I_3^{(0)}] [I2(0),I3(0)] 坐标。
Bayesian 优化被用于加速这个搜索过程。
10.5 与 HNN 的联系
到这里,HNN 与平动点轨道表征之间的关系就清晰了。
HNN 解决的是如何用神经网络学习哈密顿动力学——给定观测数据,学到一个网络 H θ ( p , q ) H_\theta(p,q) Hθ(p,q),使其梯度自动满足哈密顿方程。它的核心价值在于把守恒结构编码进网络架构,而不是靠数据驱动去"发现"守恒律。
乔师兄团队的工作解决的则是如何在高保真动力学模型下给平动点轨道建立参数化描述——用辛几何和正则变换把 CRTBP 轨道的几何特征提取为六个可逆的参数。它的核心价值在于把平动点轨道从"混沌不可分"变成"可识别可编目"。
两条路共同指向一个判断:哈密顿力学是描述三体轨道最自然的语言。它的标量函数描述比牛顿的向量场描述在几何上更丰富,在参数化上更系统,在与神经网络的结合上也更有潜力。
如果把两者打通——用神经网络学习平动点轨道的哈密顿量,再用学到的网络辅助轨道识别和编目——会是什么样的图景?这个问题目前还没有人系统做过。
主要参考文献
- Greydanus S., Dzamba M., Yosinski J. Hamiltonian Neural Networks. NeurIPS 2019.
- Han C.-D. et al. Adaptable Hamiltonian Neural Networks. Physical Review Research 2021.
- Chen Z. et al. Learning Neural Hamiltonian Dynamics: A Methodological Overview. arXiv 2022.
- Greydanus S., Sosanya A. Dissipative Hamiltonian Neural Networks. arXiv 2022.
- Cranmer M. et al. Lagrangian Neural Networks. ICLR 2020 Workshop.
- Zhong Y. D. et al. Symplectic ODE-Net. ICLR 2020.
- Qiao C. et al. Orbital parameter characterization and objects cataloging for Earth-moon collinear libration points. Chinese Journal of Aeronautics 2025.
- Qiao C. et al. Calculation of a dynamical substitute for the real earth–moon system based on hamiltonian analysis. 2025.
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)