Liquid Neural Networks (LNNs)
液态神经网络是连续时间 RNN,其神经元时间常数会随输入变化。内容涵盖 LTC 和 CfC 模型、NCP 控制器和代码。
液态神经网络(LNN)是一类连续时间循环神经网络(RNN),其中每个神经元的状态都遵循微分方程,其时间常数取决于当前输入,因此神经元的响应速度会随时刻变化。MIT、IST Austria 和 TU Wien 的 Ramin Hasani、Mathias Lechner 及其同事,在 AAAI 2021 上提出了核心模型——液态时间常数(LTC)网络;其灵感源自线虫 C. elegans 的神经系统模型,该线虫有 302 个神经元。LNN 通常规模很小,只有几十个神经元,主要用于时间序列分析,以及控制车辆和无人机;它们紧凑的规模使人们更容易检查其学到的行为。与任何网络一样,训练会确定其权重;“液态”指的是动力学,而输入会在每一步重塑这些动力学。
液态时间常数网络的工作方式#
连续时间 RNN 会使用常微分方程描述其隐藏状态 x(t),与神经 ODE类似,而不是进行离散更新。LTC 网络采用 dx/dt = −[1/τ + f(x, I, θ)] ⊙ x + f(x, I, θ) ⊙ A,其中 I(t) 是输入,τ 是每个神经元的基础时间常数,A 是学习得到的偏置向量,f 是输出有界的小型神经网络,其输出类似 sigmoid。由于 f 出现在衰减率中,每个神经元的有效时间常数为 τ_sys = τ / (1 + τ f):当 f 较大时,时间常数会缩短,使神经元快速响应;当 f 接近零时,时间常数则趋近于 τ。论文证明 τ_sys 和状态都保持在固定范围内,因此即使输入非常大,网络也能保持稳定。
训练过程会展开一个数值 ODE 求解器,并通过该求解器进行反向传播。作者开发的融合求解器会执行半隐式步骤 x(t + Δt) = [x(t) + Δt f A] / [1 + Δt (1/τ + f)];下面的 PyTorch 代码片段会为四个神经元实现该步骤,并输入三个不同的值:
import torch
from torch import nn
torch.manual_seed(0)
n_inputs, n_neurons, dt = 2, 4, 0.1
f = nn.Linear(n_inputs + n_neurons, n_neurons) # gate network f(x, I); its weights stay fixed below
tau = torch.full((n_neurons,), 2.0) # base time constant of each neuron
A = torch.randn(n_neurons) # level each neuron is pulled toward when its gate opens
def ltc_step(x, I):
"""One fused-solver step of dx/dt = -(1/tau + f) * x + f * A, plus the effective time constant."""
gate = torch.sigmoid(f(torch.cat([I, x])))
x_next = (x + dt * gate * A) / (1 + dt * (1 / tau + gate))
return x_next, tau / (1 + tau * gate)
x = torch.zeros(n_neurons)
for I in [torch.tensor([0.0, 0.0]), torch.tensor([5.0, -5.0]), torch.tensor([-5.0, 5.0])]:
x, tau_sys = ltc_step(x, I)
print(f"Input {I.tolist()}: time constants {[round(t, 2) for t in tau_sys.tolist()]}")对于零输入,它会输出有效时间常数 [1.02, 0.99, 0.92, 1.1];对于输入 (5, −5),会输出 [1.35, 1.5, 1.06, 1.26];对于 (−5, 5),会输出 [0.8, 0.74, 0.82, 0.97]。权重不变时,第二个神经元的时间常数会在 0.74 到 1.5 之间变化,幅度相差一倍,且变化完全取决于网络看到的输入。由于状态随连续时间演化,Δt 也可以设为样本之间的实际时间间隔,这样 LNN 就能读取医疗记录或事件驱动传感器等不规则采样数据,而无需将数据重采样为固定频率。
神经回路策略与 CfC 网络#
同一研究团队的两项相关工作将 LTC 神经元用于控制,并消除了 ODE 求解器带来的开销:
- 神经回路策略(NCP):Lechner、Hasani 及其同事于 2020 年在《自然·机器智能》中,将 LTC 神经元连接成稀疏分层电路,其结构以 C. elegans 为蓝本,包含感觉、中间、指令和运动神经元。在卷积特征提取器后,一个由 19 个控制神经元和 253 个突触组成的策略学会了根据摄像头图像控制汽车并保持在车道内。论文报告称,与规模大出几个数量级的黑盒控制器相比,该策略的泛化能力更强,也更能抵抗噪声。
- 闭式连续时间(CfC)网络:Hasani 及其同事于 2022 年证明,LTC 解的闭式近似可以省去数值求解器;与基于 ODE 的对应模型相比,训练和推理速度可提高 1 到 5 个数量级,同时保留连续时间行为。
作者的 ncps 库为 PyTorch 和 Keras 实现了 LTC 和 CfC 单元及 NCP 连接结构。
应用场景#
- 无人机导航:一项发表于 2023 年《科学机器人》的研究显示,由液态网络控制的无人机从人工驾驶示范中学会飞向目标;这些示范是在夏季森林中记录的。随后,无人机在冬季森林、城市环境以及加入噪声、旋转和遮挡的情况下完成了任务,表现优于许多最先进的替代方案。
- 医疗与传感器时间序列:连续时间模型适用于不规则数据流,例如重症监护测量数据,其读数会在每次进行检测时到达。
- 感知到控制的流水线:液态控制器需要紧凑的逐帧特征,而 YOLO26 可以提供这些特征:使用
stream=True的预测模式会将视频中的每帧结果作为生成器逐个输出,因此控制器可以在每帧处理完成时获取边界框坐标或姿态关键点。
LNN 与相关模型的比较#
- LSTM 和 GRU:离散时间单元,每个输入步骤更新一次,并不感知步骤之间经过了多长时间。LTC 神经元则连续演化,由它们构建的控制器通常所需的神经元数量要少得多。
- 神经 ODE:LTC 网络是具有特定有界形式的神经 ODE,该形式能够保证动力学稳定。
- 脉冲神经网络:同样受到大脑启发,但神经元通过离散脉冲进行通信。LTC 神经元具有连续取值的状态,其设计参考了 C. elegans 的非脉冲神经元。
- 状态空间模型:同样采用连续时间递归,但会离散化以便计算。Mamba 会根据每个输入计算步长,因此每个通道都有依赖输入的时间常数;Hasani 的团队则在 ICLR 2023 上推出的 Liquid-S4 中,将 S4 状态空间模型与 LTC 动力学结合。
- Liquid AI 模型:Hasani、Lechner、Alexander Amini 和 Daniela Rus 于 2023 年创立了 Liquid AI,这是 MIT CSAIL 的衍生公司。其 LFM2 语言模型于 2025 年 7 月发布,将门控短卷积与少量分组查询注意力层相结合。尽管名称中都含有“liquid”,这种架构与 LTC 网络并不相同。










