返回
查看原链接原链接
Bilibili24分38秒 · —

神经ODE(Neural ODE):从ResNet到连续时间动力学建模的机器学习架构

神经ODE(Neural ODE):从ResNet到连续时间动力学建模的机器学习架构

神经ODE的核心思想是使用神经网络来表示常微分方程(ODE)右侧的向量场 *ẋ = f(x)*,而非仅学习离散的时间步进更新,从而能够利用更先进的数值积分方法与伴随灵敏度分析来训练模型,实现比残差网络更精确、能处理不规则时间采样数据的动力学系统建模。

核心要点

  • 神经ODE(Neural ODE)是一种用于建模微分方程(如常微分方程)的强大现代机器学习架构,源自2018年NeurIPS的一篇论文,已成为机器学习和动力系统领域中的经典工作。
  • 神经ODE是物理信息机器学习(Physics-Informed Machine Learning)领域的自然切入点。
  • 基本思想是用神经网络 *f* 建模描述系统状态 *x* 的微分方程右侧(即 *ẋ = f(x)*),同样适用于摆、流体流动、机器人等大量系统。
  • 从历史脉络来看,神经ODE是对残差网络(ResNet) 的推广和改进——ResNet本质上是完成了一次欧拉(Euler)数值积分的离散时间架构,而神经ODE直接学习连续时间的向量场并使用更好的数值积分器。
  • 神经ODE的核心优势在于:可以通过更换不同的数值积分器获得算法的不同变体,例如可以使用二级龙格-库塔(Runge-Kutta)方法、四级龙格-库塔方法、辛积分器或变分积分器等。
  • 神经ODE可以根据物理结构嵌入额外的对称性(如哈密顿结构或拉格朗日结构),使模型更符合物理规律。

背景:残差网络(ResNet)与欧拉积分的关系

ResNet的基本原理

  • ResNet(2015年论文)是现代神经网络中基石性的工作算法之一,其核心思想极为简单:要建模输入 *x* 在时间步 *k* 和 *k+1* 之间的输入输出关系时,将该输入直接复制过去,仅用神经网络 *f* 建模输出与输入之间的差异(残差)
  • 这种设计使得我们可以构建更深的网络,同时避免输入在多层传播中丢失的问题。

ResNet的数学表达与欧拉积分类比

用数学表达,ResNet的计算可以写成:

x_{k+1} = x_k + f(x_k)

其中 *f* 是建模残差的神经网络,是关于输入的函数。

  • 这里需要注意:*x_{k+1} = x_k + f(x_k)* 与数值积分中的标准欧拉法形式完全一致——即用最简单的方式以步长为1对微分方程 ẋ = f(x) 进行前向积分。
  • 局限性:欧拉积分(尤其是大步长情况下)是一种很糟糕的微分方程积分方法。它虽然快速、简单,但极易不稳定且误差巨大,可以说是对粒子在向量场中积分的最差方法。

从ResNet到神经ODE的关键类推

  • 如果ResNet本质上是沿着某个向量场 *f* 做欧拉积分,那么神经网络学习的残差本身可以被视为一种向量场——即通过该残差网络在时间步进中所逼近的微分方程 ẋ = f(x)。
  • 既然ResNet基于这种欧拉积分思想已经如此成功,那么使用更好的数值积分器或许可以实现更优的性能。
  • 神经ODE的思路是:不是建模从 *x_k* 到 *x_{k+1}* 的大时间步前向映射(即欧拉步),而是直接建模微分方程本身(连续时间的向量场),然后用更精细的数值积分方案将状态向前推进,并根据训练数据来训练 *f*。

神经ODE的核心原理

连续时间模型与精确解表达

  • 神经ODE直接建模连续时间微分方程的右侧函数 *f*。给定 *f* 后,由于经典的数学理论(牛顿、莱布尼茨、欧拉、拉格朗日等)数百年前就建立了微分方程的求解方法,同时现代计算领域对数值推进微分方程的经验远早于机器学习,因此可以采用成熟的数值积分方法。
  • 若用神经网络学习 *f*,在给定该微分方程的前提下,*x_{k+1}* 可以直接写成关于 *f* 的精确表达式。该表达式是精确的而非近似的结果(这是数学家写出的解),但实际计算较为困难,可以使用更好的数值积分器来逼近 *x_{k+1}*。

与ResNet的对比总结

特征ResNet神经ODE
建模对象离散时间更新(一个步长的流映射)连续时间的微分方程本身(向量场)
积分方式欧拉法(最粗糙的数值积分器)任意更高级数值积分器(如Runge-Kutta)
数据采样要求需要时间上均匀采样且固定时间步长不需要固定时间步长,可处理不规则时间间距数据
近似效果粗糙步进近似更接近连续系统的准确解

物理意义的类比

  • 类似于银行存款的复利计算,是按年复利还是按连续复利的区别——后者在连续时间模型下更优越。
  • 通过使用更好的积分器并学习连续时间系统,神经ODE在本质上类似于一个拥有更小步长和更多残差层的ResNet,是连续时间与离散时间的对应关系。

学习与训练流程

  • 神经ODE在训练过程中,对 *f* 进行优化调整,即调整神经网络 *f* 的参数,使离散化后的数值积分在预测观测数据点时尽可能准确。
  • 本质上,模型学习的是**底层向量场 *f*** ——调整参数使得沿着 *f* 进行数值积分时,积分轨迹与数据点尽可能接近。
  • 使用标准自动微分(auto differentiation)和反向传播技巧,基于观测数据优化 *f* 的网络参数。
  • 底层机制中,使用比ResNet更好的数值积分器对向量场进行时间步进。

不规则时间间距数据的优势

  • 神经ODE的具体优势之一是可以使用不规则时间间距的观测数据点,因为它们不需要像ResNet那样均匀排布。数据点用于训练 *f* 的参数,使得数值积分器离散化后对观测点的预测尽可能准确。
  • 只要积分器支持不同时间跨度的积分,就可以在不规则的时间间隔上积分。

神经网络ODE中的反向模式微分与伴随方法(技术细节)

  • 神经ODE的目标是建模 *ẋ = f(x)*,其中 *f* 用带参数 *θ* 的神经网络表示,需要调节参数 *θ* 使模型拟合观测数据。
  • 若从 *t₀* 时刻的初始条件出发,向未来推进 Δ*t*,这一过程称为流映射(flow map)φ,它将初始条件向前映射到 Δ*t* 之后的未来状态。
  • 待确定的自由参数包括:网络参数 *θ*、初始条件的选择、步长 Δ*t*,以及隐藏状态 *x(τ)*。
  • 观测数据通常在离散时间点采样(不要求均匀,但通常是离散的),因此在任意两个测量点之间存在连续状态 *x(τ)*(*τ* 是测点间的连续时间变量)。流映射在 *t₀* 到 *t₀* + Δ*t* 的时间范围内沿隐藏状态 *x(τ)* 积分。
  • 隐藏状态在优化算法中至关重要,因为损失函数需要关于 *x(t)* 在观测点间的中间时刻 *τ* 的偏导数(∂*L*/∂*x*),而这些信息并不直接包含在训练数据中。

伴随变量与伴随方程

  • 为处理隐藏状态的信息传递,引入拉格朗日乘子变量 α(t),它被定义为:
α(t) = -∂L/∂x
  • α 满足如下微分方程(通过链式法则可以验证):
dα/dt = -αᵀ(∂f/∂x)
  • 这个方程被称为伴随方程(adjoint equation)。伴随方法已广泛用于控制理论中带微分方程的工程设计优化,有数十年的应用历史。

神经ODE的关键技术突破

  • 神经ODE论文的一项重大进展:无需手动推导并手工积分伴随计算,而是充分使用**神经网络 *f* 的自动微分能力**来获得伴随方程中所需的偏导数。
  • 由于 *f* 是神经网络,∂*f*/∂*x* 可以通过标准的自动微分工具计算,且用于反向传播误差训练网络的方法同样适用于此。
  • 这意味着训练过程仍需学习参数 *θ* 来逼近动力学,同时需要跟踪隐藏状态 *x*(因为损失函数依赖它),为此引入满足上述动力学的拉格朗日乘子变量 α,并利用 *f(θ)* 的自动微分性质来计算这些动力学并积分跟踪 α。

技术意义

  • 这种利用网络自动微分能力计算拉格朗日乘子伴随问题的方法,被称为反向模式微分(reverse-mode differentiation) ,本质上就是借助网络自动微分实现伴随方法。
  • 如果采用从第一性原理出发的手工推导(笔和纸),整个过程会极为繁琐,不可行。
  • ⚠️ *注:演讲者提到大约跳过五小时的硬核动力学优化内容(涉及拉格朗日乘子),这部分将在其“优化训练营”中讨论。*

神经网络ODE算法变体与物理结构嵌入

Hamiltonian神经网络

  • 2019年NeurIPS论文提出的Hamiltonian神经网络是该主题家族的重要后续工作(在精神上属于神经ODE家族)。
  • 做法是学习一个Hamiltonian函数,并从该函数计算运动方程 *q̇* 和 *ṗ*,从而保持系统的总能量
  • 本质上,它强迫使用的积分器具有辛(symplectic)结构或能量守恒结构,使之成为保能量的神经ODE变体。

Lagrangian神经网络

  • Cranmer等人发表的后续论文将神经ODE扩展到拉格朗日神经网络
  • 不是在积分器中强制辛或Hamiltonian结构,而是强制满足欧拉-拉格朗日方程,即所谓的变分积分器。
  • 该方法同样具有物理应用必需的能量守恒性质。

模型能力对比

在原始论文中的一个简单微分方程示例中,对比了标准循环神经网络(RNN)与神经ODE的表现:

  • 标准RNN(图中上部)的预测轨迹锯齿状明显,对训练数据的预测效果不佳,外推(蓝色部分)同样表现较差。
  • 神经ODE层(图中下部)噪声鲁棒性强得多,对训练数据的预测平滑,向未来的外推也更准确,因为通过训练数据学到了更干净、更精确的向量场 *f* 表示。

应用场景与组合使用策略

作为SINDy等数据驱动方法的前处理

  • 演讲者研究组及其同行的实际使用经验是:诸如动态模态分解(DMD)和SINDy等方法在处理不规则时间间距数据时效果往往不佳。
  • 解决策略:先用不规则时间间距数据训练神经ODE,然后通过神经ODE积分生成规则时间间距的数据,再将规则数据作为SINDy的输入。
  • 其动机是:神经ODE虽强大但不够可解释——*f* 是一个大型神经网络,无法从中直接看出“这是 sin(x)”之类的解析表达式。而SINDy或符号回归则可以提供可解释的结果。

后续扩展

  • 有扩展到神经偏微分方程(Neural PDE) 的工作。
  • 还有扩展到辛、能量守恒系统等的变体。

限制与待确认问题

  • 可解释性差:神经ODE所学的函数 *f* 是大型神经网络,难以直接提取显式的物理规律或符号表达式。这是其作为纯黑箱模型的主要局限。
  • 计算图复杂:神经ODE的计算图并不简单,存在前向和反向的时间分量,需要专门的代码实现(演讲者建议下载他人演示代码并自行修改来加深理解)。
  • 数学推导细节未展开:关于伴随方程的完整推导(拉格朗日乘子优化的全流程)涉及较多中间细节,演讲中明确说明跳过约五小时的硬核内容(该部分属于优化训练营的范畴)。
  • 演讲未提供具体数值实验的误差数据和理论收敛性保证。

总结

  • 神经ODE的核心简约表述:用神经网络建模动力系统/微分方程,且是在连续时间下建模,而非像ResNet那样作为离散时间更新建模。
  • 连续时间建模带来两大关键优势:
  1. 可更换更好的数值积分器,以及具有物理结构的积分器(如辛、能量守恒积分器);
  2. 通过拟合底层连续向量场并用更好的积分器沿轨迹积分,能更好地拟合不规则时间间距的数据。
  • 神经ODE推广了ResNet这类基石性算法,使其更适合微分方程建模;同时它与经典优化理论(拉格朗日乘子、伴随方法)紧密联系,但借助了现代神经网络的自动微分能力解决了伴随积分的实现困难。
  • 这是一个思想强大、扩展丰富、值得动手尝试的架构,演讲者鼓励实际运行代码探索其效果。