Liquid Neural Networks (LNNs)
액체 신경망은 뉴런의 시간 상수가 입력에 따라 변하는 연속 시간 RNN입니다. LTC 및 CfC 모델, NCP 컨트롤러, 코드를 다룹니다.
액체 신경망(LNN)은 연속 시간 순환 신경망(RNN)의 한 계열입니다. 각 뉴런의 상태는 시정수가 현재 입력에 따라 달라지는 미분 방정식을 따르므로 뉴런의 반응 속도는 순간마다 변합니다. MIT, IST Austria, TU Wien의 Ramin Hasani, Mathias Lechner와 동료들은 뉴런 302개를 가진 선충 C. elegans의 신경계 모델에서 착안해 핵심 모델인 액체 시정수(LTC) 네트워크를 개발하고 AAAI 2021에서 발표했습니다. LNN은 규모가 작아 뉴런 수가 수십 개에 불과한 경우가 많으며, 주로 시계열 분석, 차량 조향, 드론 제어에 사용되었습니다. 크기가 작아 학습된 동작을 더 쉽게 검사할 수 있기 때문입니다. 모든 네트워크와 마찬가지로 학습 과정에서 가중치가 고정되며, '액체'라는 특징은 입력에 따라 매 단계 재구성되는 동역학에 있습니다.
액체 시정수 네트워크의 작동 방식#
연속 시간 RNN은 뉴럴 ODE처럼 이산 업데이트 대신 상미분 방정식으로 은닉 상태 x(t)를 표현합니다. LTC 네트워크는 dx/dt = −[1/τ + f(x, I, θ)] ⊙ x + f(x, I, θ) ⊙ A를 사용합니다. 여기서 I(t)는 입력이고 τ는 각 뉴런의 기본 시정수이며, A는 학습된 바이어스 벡터입니다. f는 출력 범위가 제한된 소규모 신경망으로, 시그모이드와 유사한 출력을 냅니다. f가 감쇠율에 포함되므로 각 뉴런의 유효 시정수는 τ_sys = τ / (1 + τ f)입니다. f가 크면 시정수가 줄어 뉴런이 빠르게 반응하고, f가 0에 가까우면 τ에 가까워집니다. 논문은 τ_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()]}")입력이 0일 때 [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은 의료 기록이나 이벤트 기반 센서처럼 불규칙하게 샘플링된 데이터를 고정된 주기로 재샘플링하지 않고 처리할 수 있습니다.
Neural Circuit Policies와 CfC 네트워크#
같은 연구 그룹의 관련 연구 두 건은 LTC 뉴런을 제어 분야에 적용하고 ODE 솔버 비용을 제거했습니다.
- 신경 회로 정책(NCP): 2020년 Nature Machine Intelligence에서 Lechner, Hasani와 동료들은 LTC 뉴런을 C. elegans를 본뜬 희소 계층형 회로로 연결했습니다. 이 회로는 감각 뉴런, 중간 뉴런, 명령 뉴런, 운동 뉴런으로 구성됩니다. 합성곱 특징 추출기 뒤에 제어 뉴런 19개와 시냅스 253개로 구성된 정책을 두어 카메라 이미지로 차선을 유지하며 자동차를 조향하도록 학습했습니다. 논문은 이 정책이 일반화 성능을 보이고, 규모가 훨씬 큰 블랙박스 컨트롤러보다 잡음에 잘 견뎠다고 보고합니다.
- 폐형식 연속 시간(CfC) 네트워크: Hasani와 동료들은 2022년 LTC 해의 폐형식 근사가 수치 솔버를 제거하고 연속 시간 동작을 유지하면서 ODE 기반 모델보다 학습과 추론을 10배에서 100,000배 빠르게 수행할 수 있음을 보였습니다.
저자들의 ncps 라이브러리는 PyTorch 및 Keras용 LTC 및 CfC 셀과 NCP 연결 구성을 구현합니다.
응용 분야#
- 드론 내비게이션: 2023년 Science Robotics 연구에서 액체 네트워크로 제어되는 드론은 여름철 숲에서 사람이 조종하는 시연을 바탕으로 목표 지점까지 비행하도록 학습했습니다. 이후 겨울 숲과 도심 환경에서도 임무를 완수했으며, 잡음, 회전, 가림을 추가한 조건에서도 여러 최신 대안보다 우수한 성능을 보였습니다.
- 의료 및 센서 시계열: 연속 시간 모델은 검사가 실행될 때마다 측정값이 들어오는 중환자실 데이터처럼 불규칙한 스트림에 적합합니다.
- 인식-제어 파이프라인: 액체 컨트롤러에는 프레임마다 간결한 특징이 필요하며, YOLO26이 이를 제공할 수 있습니다.
stream=True을 사용하는 predict 모드는 비디오 프레임마다 하나의 결과를 생성기로 제공하므로, 각 프레임이 처리될 때 박스 좌표나 포즈 키포인트를 컨트롤러에 전달할 수 있습니다.
LNN과 관련 모델 비교#
- LSTM 및 GRU: 입력 단계마다 한 번씩 업데이트되며 단계 간 경과 시간을 고려하지 않는 이산 시간 셀입니다. LTC 뉴런은 연속적으로 변화하며, LTC 뉴런으로 구성된 컨트롤러는 일반적으로 훨씬 적은 수의 뉴런을 사용합니다.
- 뉴럴 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 언어 모델은 게이트형 단기 합성곱과 소수의 그룹 쿼리 어텐션 계층을 결합합니다. 이름에 공통으로 'liquid'가 들어가지만 LTC 네트워크와는 별개의 아키텍처입니다.










