Neural Ordinary Differential Equation
🌘

Neural Ordinary Differential Equation

Tags
Node
RNN
Published
Author

1、What is ODE

ODE是一种数学工具,常用来对一些动力系统建模。比如牛顿第二运动定理
物体在力的作用下的位移s 和 时间 t 的关系,可以表示为

For example Data Modelling:

假设我们想预测一个城市未来的人口变化,可以采用以下两种建模方法:机器学习建模和ODE建模。

Machine Learning Modelling

在机器学习框架下,这个问题可以被视为一个回归任务。目标是找到一个函数 f,使得:,
损失函数(Loss Function)为:
使用梯度下降来优化,分别求出对
更新规则为( 是学习率):

ODE Modelling

在ODE中是寻找的是一个 描述系统状态随时间变化的函数。于是将 f:x→y 的问题,转换为一个微分方程问题,
其中, 是人口随时间的变化率。
例如,根据已知的洛吉斯蒂模型,人口随时间的变化率 g 可以表示为
其中, 是时间 时的总人口; 是增长率(与出生率、死亡率和迁移率相关); 是人口的承载容量。
该方程有解析解
到这个时候就转换成了一个求初值问题(initial value),带入 ,假设 是固定常数有。
直接得到想要的
通过以上例子可以发现,ODE Modelling 相比于模式匹配来说,实际上是一种更为精准的建模方式
但是在上述例子中,在大多数情况下,几乎没有太多的先验能让你精准建模,这直接导致了ODE Modelling 几乎不能产生作用。总结如下:
  1. 不能精准的建模
  1. 很难算出解析解
💡
在这个情况下,论文的作者提出了以下方法来解决:
  1. 使用 Neural Network 来对 ODE Modelling 进行建模。
  1. 同时使用数值求解方法来计算 每个时间点的 具体数值

2、数值求解器

由于数值求解有很多种方法,在这里只介绍最经典的欧拉方法(Euler Method)
notion image
notion image
比如,既然知道了 时刻的变化率 ,我们就可以根据这个斜率,推进一个小时间步长 ,计算下一个时刻的值。欧拉方法的公式为:

3、Neural Ordinary Differential Equation

Neural ODE 通过引入神经网络来模拟原FFN网络中隐藏层状态,对传统 ODE 求解过程进行了扩展。
上图左侧是前馈神经网络 (FFN) ,右侧是N-ODE
前向传播过程:
前馈神经网络的前向传播基于离散层,而 Neural ODE 通过时间步的连续变化进行计算。
  • 在初始时刻,输入被映射到初始隐藏状态
  • 通过数值方法(如欧拉法)计算得到在不同时间步下的隐藏状态
反向传播过程:
在 Neural ODE 中,反向传播通过伴随方法(Adjoint Sensitivity Method)计算梯度。
  1. 首先定义 时刻的 损失对系统状态的梯度 为伴随变量
  1. 然后通过推导得到伴随方程
通过数值逆向求解该方程,可以计算出模型参数的梯度:
最终通过梯度下降更新参数:

Liquid time-constant Network

1、与N-ODE 网络的差别
其Loss Function:
看成是回归任务,可以使用线性模型来进行数据建模。即找到一个函数 ,有目标函数:
Machine Learning Modelling

1. 定义增广伴随变量
其中:
2. 推导增广伴随方程
对于增广系统,伴随方程为:
其中,
这导致分量化的伴随方程为:
3. 积分得到参数梯度
关注 ,即
设定边界条件
  • 在终点时刻  ,由于损失函数    通常仅依赖于最终状态 ,我们设定
因此:
但由于伴随方程是从    向    反向积分的,这里的负号实际上被积分方向所吸收,因此我们最终得到: