Neural Ordinary Differential Equations (Neural ODEs)
Las ODE neuronales sustituyen las capas apiladas por una derivada aprendida y un solucionador de ODE. Cómo se entrenan con el método adjunto, dónde encajan y código ejecutable.
Las ecuaciones diferenciales ordinarias neuronales (Neural ODEs) son redes neuronales que definen cómo cambia continuamente un estado oculto con el tiempo, en lugar de usar una pila fija de capas. Una red pequeña f aprende la derivada dh/dt = f(h, t), y un solucionador numérico de EDO integra esa derivada desde un estado inicial hasta el momento en que se necesita el resultado. Ricky Chen, Yulia Rubanova, Jesse Bettencourt y David Duvenaud presentaron la idea en un artículo de 2018 que recibió un premio al mejor artículo en NeurIPS.
De los bloques residuales a la profundidad continua#
Una red residual actualiza su estado como h(t + 1) = h(t) + f(h(t)), que equivale exactamente a un paso del método de Euler para resolver una ecuación diferencial ordinaria, con un tamaño de paso de 1. Una Neural ODE lleva este proceso al límite de infinitos pasos infinitamente pequeños y delega la integración en un solucionador. El software numérico clásico, como solve_ivp de SciPy, resuelve el mismo tipo de problema de valor inicial para ecuaciones escritas a mano.
Esto cambia el significado de «profundidad». Los solucionadores adaptativos de la familia Runge-Kutta, como el método de Dormand-Prince, dan pasos pequeños cuando la dinámica cambia rápidamente y pasos grandes cuando es suave. El coste de una pasada hacia delante es el número de evaluaciones de función que necesita el solucionador, que depende de la entrada, la dinámica aprendida y la tolerancia al error. Relajar la tolerancia en inferencia permite intercambiar precisión por menor latencia de inferencia sin volver a entrenar.
Entrenamiento con el método adjunto#
La retropropagación ordinaria a través de un solucionador almacena todos los estados intermedios, por lo que la memoria crece con el número de pasos del solucionador. El método de sensibilidad adjunta evita este problema resolviendo hacia atrás en el tiempo una segunda ecuación diferencial ordinaria que transporta el gradiente, y recalcula los estados durante el proceso en lugar de almacenarlos. El coste de memoria permanece constante respecto a la profundidad, a cambio de un mayor coste de cálculo y de pequeñas diferencias numéricas entre las trayectorias hacia delante y hacia atrás.
El paquete torchdiffeq proporciona solucionadores diferenciables para PyTorch, con odeint para retropropagación directa y odeint_adjoint para el método adjunto:
import torch
from torch import nn
from torchdiffeq import odeint
torch.manual_seed(0)
# La red predice la derivada dh/dt de un estado oculto 2D
dynamics = nn.Sequential(nn.Linear(2, 32), nn.Tanh(), nn.Linear(32, 2))
# Consulta el estado en marcas de tiempo irregulares, como ocurre con lecturas esporádicas de sensores
initial_state = torch.tensor([[1.0, 0.0]])
times = torch.tensor([0.0, 0.3, 0.35, 1.1, 2.0])
trajectory = odeint(lambda t, h: dynamics(h), initial_state, times)
# Los gradientes retropropagan a través del solucionador hasta los pesos de la red
loss = trajectory[-1].square().sum()
loss.backward()
print(trajectory.squeeze(1))
print(dynamics[0].weight.grad.norm())La trayectoria conserva el estado en cada instante solicitado, desde los 0,3 y 0,35 muy próximos hasta el largo intervalo anterior a 1,1, mientras el solucionador elige sus propios pasos internos. La norma del gradiente distinta de cero muestra que una función de pérdida evaluada en el instante final entrena la red a través del solucionador. Sustituir odeint por odeint_adjoint cambia a gradientes con memoria constante, siempre que la función de dinámica sea un nn.Module para que el solucionador pueda encontrar sus parámetros.
Dónde encajan las Neural ODEs#
Las series temporales muestreadas de forma irregular son el caso más claro. Los modelos de ODE latente, presentados por Rubanova y sus colegas en 2019, codifican una secuencia de observaciones en un estado oculto y lo hacen evolucionar continuamente. Así, pueden modelar historiales médicos o registros de sensores con intervalos desiguales sin tener que ajustarlos a una cuadrícula fija. Una red neuronal recurrente solo se actualiza en pasos discretos y necesita mecanismos adicionales para gestionar marcas de tiempo ausentes o irregulares, un problema central del análisis de series temporales.
Los datos de seguimiento tienen la misma estructura. El modo de seguimiento de Ultralytics YOLO26 genera una posición para cada ID de seguimiento en cada fotograma, con huecos cuando un objeto queda ocluido o no se detecta, y su rastreador predeterminado conserva cada seguimiento perdido durante track_buffer fotogramas, 30 por defecto, mediante un filtro de Kalman cuyo modelo de movimiento a velocidad constante es una EDO lineal fija que avanza una vez por fotograma. Una Neural ODE ajustada a las mismas posiciones aprende el movimiento como una trayectoria continua que se puede consultar entre fotogramas o a través de un hueco en el seguimiento de múltiples objetos.
El modelado generativo es el segundo uso principal. Los flujos normalizadores continuos, desarrollados en el artículo original sobre Neural ODE y ampliados en FFJORD, transforman una distribución sencilla en otra compleja mediante la integración de un campo vectorial aprendido. Más adelante, el ajuste de flujos abarató mucho el entrenamiento de estos modelos al aprender directamente el campo vectorial, sin resolver EDO durante el entrenamiento. Los generadores de imágenes de flujo rectificado, como Stable Diffusion 3, generan muestras integrando una EDO de este tipo, y se pueden generar muestras deterministas de modelos de difusión integrando su EDO de flujo de probabilidad.
Límites y modelos relacionados de tiempo continuo#
Las trayectorias de una EDO no pueden cruzarse, así que una Neural ODE en la propia dimensión de entrada no puede representar algunos mapeos sencillos. Las Neural ODE aumentadas, propuestas por Emilien Dupont y sus colegas en 2019, solucionan esto añadiendo dimensiones adicionales al estado. Una dinámica rígida y un número creciente de evaluaciones de función durante el entrenamiento pueden hacer que las Neural ODE sean más lentas que una red de profundidad fija.
Otras arquitecturas se basan en dinámicas de tiempo continuo con distintos compromisos. Las redes neuronales líquidas son celdas recurrentes definidas por EDO cuyas constantes de tiempo dependen de la entrada. Los modelos de espacio de estados, como S4 y Mamba, parten de un sistema lineal de tiempo continuo, x'(t) = Ax(t) + Bu(t), y lo discretizan en una recurrencia que también se puede calcular como una convolución larga o un barrido en paralelo; esto los hace rápidos en secuencias largas, donde una Neural ODE general necesita un solucionador adaptativo.










