Liquid Neural Networks (LNNs)
リキッドニューラルネットワークは、入力に応じてニューロンの時定数が変化する連続時間RNNです。LTCおよびCfCモデル、NCPコントローラー、コードについて解説します。
液体ニューラルネットワーク(LNN)は、連続時間で動作する再帰型ニューラルネットワーク(RNN)のファミリーです。各ニューロンの状態は、時定数が現在の入力に応じて変わる微分方程式に従います。そのため、ニューロンの応答速度は刻々と変化します。MIT、IST Austria、TU WienのRamin Hasani氏、Mathias Lechner氏らは、線虫* C. elegansの神経系モデルを参考にした基本モデルである液体時定数(LTC)ネットワークを開発し、AAAI 2021で発表しました。C. elegans*は302個のニューロンを持ちます。LNNは小規模で、多くの場合ニューロン数は数十個程度です。主に時系列分析、車両の操舵、ドローン制御に使われており、モデルの小ささによって学習された動作を調べやすくなります。学習では、ほかのネットワークと同様に重みを固定します。「液体」とは、入力によって各ステップで形を変えるダイナミクスを指します。
液体時定数ネットワークの仕組み#
連続時間RNNは、ニューラルODEと同様に、離散的な更新ではなく常微分方程式で隠れ状態x(t)を表します。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コードは、この処理を4つのニューロンについて実装し、3種類の入力を与えます。
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]が出力されます。重みが同じでも、2番目のニューロンの時定数は、ネットワークが受け取る入力だけに応じて0.74から1.5まで変化します。状態は連続時間で変化するため、Δtにはサンプル間の実際の間隔を設定できます。これによりLNNは、医療記録やイベント駆動型センサーのような不規則な間隔でサンプリングされたデータを、固定レートに再サンプリングせずに処理できます。
Neural Circuit PolicyとCfCネットワーク#
同じ研究グループによる関連研究では、LTCニューロンを制御に応用するとともに、ODEソルバーの計算コストをなくしました。
- Neural circuit policy(NCP): Lechner氏、Hasani氏らは、2020年にNature Machine Intelligenceで、LTCニューロンを* C. elegans*をモデルにした疎な階層型回路に接続しました。この回路は、感覚ニューロン、介在ニューロン、司令ニューロン、運動ニューロンで構成されます。畳み込み特徴抽出器の後段にある19個の制御ニューロンと253本のシナプスからなるポリシーは、カメラ画像から車の操舵を学習し、車線を維持しました。論文では、このポリシーが汎化性能とノイズ耐性の両方で、桁違いに大規模なブラックボックス型コントローラーを上回ったと報告しています。
- 閉形式連続時間(CfC)ネットワーク: Hasani氏らは2022年、LTCの解を閉形式で近似すると数値ソルバーが不要になることを示しました。連続時間の動作を維持しながら、ODEベースのモデルと比べて学習と推論を1~5桁高速化できます。
著者らのncpsライブラリは、LTCおよびCfCセルと、PyTorchおよびKeras向けのNCP配線を実装しています。
用途#
- ドローンのナビゲーション: 2023年のScience Roboticsの研究では、液体ネットワークで制御するドローンが、夏の森林で人間が操縦した飛行デモンストレーションから目標地点まで飛ぶ方法を学習しました。その後、冬の森林や都市環境に加え、ノイズ、回転、遮蔽が加わる状況でもタスクを達成し、多くの最先端手法を上回りました。
- 医療・センサーの時系列データ: 連続時間モデルは、検査の実施時に測定値が届く集中治療の計測データなど、不規則なストリームに適しています。
- 認識から制御までのパイプライン: 液体コントローラーには、フレームごとのコンパクトな特徴量が必要です。YOLO26は、その特徴量を提供できます。
stream=Trueを指定したpredictモードは、動画の各フレームの結果をジェネレーターとして返します。そのため、フレームの処理に合わせて、ボックス座標やポーズのキーポイントをコントローラーに渡せます。
LNNと関連モデルの比較#
- LSTMとGRU: 入力ステップごとに1回更新される離散時間セルで、ステップ間の経過時間は考慮しません。LTCニューロンは連続的に動作し、LTCから構築されたコントローラーは一般に使用するニューロン数がはるかに少なくなります。
- Neural ODE: LTCネットワークは、安定したダイナミクスを保証する特定の有界形式を持つニューラルODEです。
- スパイキングニューラルネットワーク: 同じく脳に着想を得ていますが、ニューロンは離散的なスパイクで通信します。LTCニューロンは、スパイクを発生させないC. elegansのニューロンをモデルにした、連続値の状態を持ちます。
- 状態空間モデル: 同じく連続時間の再帰処理を行いますが、計算時には離散化されます。Mambaは各入力からステップサイズを計算するため、チャネルごとに入力依存の時定数を持ちます。Hasani氏の研究グループは、ICLR 2023でS4状態空間モデルとLTCのダイナミクスを組み合わせたLiquid-S4を発表しました。
- Liquid AIモデル: Hasani氏、Lechner氏、Alexander Amini氏、Daniela Rus氏は、2023年にMIT CSAILのスピンオフとしてLiquid AIを創業しました。2025年7月にリリースされた同社のLFM2言語モデルは、ゲート付き短畳み込みと少数のGrouped-query attentionレイヤーを組み合わせています。「liquid」という名称は共通していますが、LTCネットワークとは別のアーキテクチャです。










