为什么常规神经网络一“舞”就散架?
想象你要用 AI 预测行星绕太阳的轨迹。普通的递归网络就像一个只看过几次广场舞就上场的人,刚开始几步还像模像样,但跳着跳着动作就会走形,最后整个人转到了完全不该去的角落。原因很简单:它只是在模仿看到的动作,根本不懂舞蹈的内在韵律。
真实物理系统是有“内在韵律”的——能量不会凭空产生或消失,相空间体积在时间演化下保持不变。这些结构约束就像一首舞曲的节拍,但常规神经网络却是个聋子,长期预测必然发散。
哈密顿神经网络(HNN)和拉格朗日神经网络(LNN)就是教会 AI 听见节拍、踩准节拍的革命性方法。它们不直接预测下一步的位置和速度,而是让网络学习系统背后那个守恒的“能量函数”,再从这个函数导出运动轨迹。
核心思想:别学动作,学“能量地形”
经典力学有两种等价的描述方式:
哈密顿力学:系统的全部信息压缩在一个叫“哈密顿量”的量里,物理上它就是总能量。知道了哈密顿量如何依赖于位置和动量,就能通过一套精确的规则推导出系统如何随时间演化。这规则本身就保证能量守恒和辛结构。
拉格朗日力学:用“拉格朗日量”(动能减势能)来描述,特别适合有约束的系统,比如摆锤连着杆、机器人关节之间有传动。
HNN 和 LNN 的聪明之处在于:不给神经网络直接喂轨迹数据,让它背“下一步位置速度是什么”,而是让它学出隐藏的哈密顿量或拉格朗日量函数。一旦网络内部建立了正确的能量地形图,我们就可以用经典力学的运动方程(而不是神经网络自己瞎猜)来演化系统。
这就好比教一个人跳舞:不教他每一步的坐标序列,而是让他理解“舞池地面高低起伏的能量景观”,然后告诉他“你总会沿着能量坡度最陡的方向下滑,但因为有惯性,你会绕圈”。这样无论跳多久,他都不会脱离舞池的地形,也就永远不会跳散架。
HNN 如何做到“永恒”
HNN 接收当前的位置和动量作为输入,输出一个单一的标量——哈密顿量(总能量)。然后利用自动微分求出这个能量关于位置和动量的梯度,再把这些梯度按照哈密顿正则方程转化为位置和动量的时间导数。最后,用这些导数去更新状态,迈出时间的一小步。
关键就在这里:运动规则是硬编码的哈密顿方程,不是神经网络学出来的。网络只需要老老实实地学出一个足够好的能量函数,而哈密顿方程天然保证能量沿轨迹守恒以及相空间体积不变(辛结构)。因此,即使网络对能量函数的拟合并不完美,只要它给的是一个光滑的标量函数,导出的轨迹就自动具备这些守恒性质。
这带来一个惊人的现象:HNN 预测的行星轨道可以稳定运转数万圈不崩塌,而同样体量的黑箱网络可能几十圈后就掉进太阳里或飞向星际空间。
LNN 的独特舞台
拉格朗日神经网络则是为广义坐标下的系统量身定制的。如果你要模拟一个双摆,用 x,y 坐标还得处理杆长约束,非常麻烦;但用摆角作为坐标,约束就自动消失了。LNN 直接学习拉格朗日量关于广义坐标和广义速度的函数,再利用欧拉-拉格朗日方程推导出广义加速度。
LNN 在机器人多体动力学、软体动物运动、带约束的机械系统中优势明显,因为它可以自然地接受任意坐标系,并且保证得出的运动方程在坐标变换下形式不变。
一个家族:辛网络与结构保持的进化
沿着这个思路,还发展出了辛递归网络(SympNet)等变体。它们不在连续时间层面建模,而是直接把离散时间步的映射构造为辛变换——就像每一步都严格遵守相空间体积不变的规则。这类网络可以一步到位输出下一时刻的状态,无需通过时间导数积分,非常适合处理采样的时间序列数据,保证长期模拟的稳定性。
现实世界中的应用
天体力学与航天器轨迹规划:长期轨道预测中,能量守恒是生死攸关的,HNN 能以极低成本提供数值积分器级别的稳定性。
分子动力学:学习分子体系的哈密顿量,实现百万级原子的能量守恒模拟,加速药物和材料发现。
机器人控制:用 LNN 学习机械臂或四足机器人的动力学,控制策略可以自然利用系统的被动动力学特性,让运动更节能、更流畅。
等离子体物理:带电粒子在电磁场中的运动必须满足辛结构,结构保持网络用于长时间约束核聚变等离子体演化。
框图一句话:HNN/LNN 不直接预测轨迹,而是学习系统的能量函数,再借助经典力学方程导出运动,将能量守恒和辛结构内化为铁律,实现永不散架的长时预测。