Neural Ordinary Differential Equations (Neural ODEs)
Les Neural ODE remplacent les couches empilées par une dérivée apprise et un solveur d’ODE. Entraînement par la méthode adjointe, cas d’usage et code exécutable.
Les équations différentielles ordinaires neuronales (Neural ODE) sont des réseaux neuronaux qui définissent l’évolution continue d’un état caché au fil du temps, plutôt que d’utiliser une pile fixe de couches. Un petit réseau f apprend la dérivée dh/dt = f(h, t), et un solveur numérique d’EDO intègre cette dérivée depuis un état initial jusqu’au moment auquel la sortie est nécessaire. Ricky Chen, Yulia Rubanova, Jesse Bettencourt et David Duvenaud ont introduit cette idée dans un article de 2018, qui a reçu un prix du meilleur article à NeurIPS.
Des blocs résiduels à la profondeur continue#
Un réseau résiduel met à jour son état selon h(t + 1) = h(t) + f(h(t)), ce qui correspond exactement à une étape de la méthode d’Euler pour résoudre une EDO, avec un pas de 1. Une Neural ODE considère la limite d’un nombre infini de pas infiniment petits et confie l’intégration à un solveur. Les logiciels numériques classiques, comme solve_ivp de SciPy, résolvent le même type de problème à valeur initiale pour des équations écrites à la main.
Cela change le sens de la « profondeur ». Les solveurs adaptatifs de la famille Runge-Kutta, comme la méthode de Dormand-Prince, effectuent de petits pas lorsque la dynamique évolue rapidement et de grands pas lorsqu’elle est régulière. Le coût d’une passe avant correspond au nombre d’évaluations de la fonction dont le solveur a besoin ; ce nombre dépend de l’entrée, de la dynamique apprise et de la tolérance d’erreur. Relâcher la tolérance au moment de l’inférence permet de réduire la latence d’inférence au prix d’une baisse de précision, sans réentraînement.
Entraînement avec la méthode adjointe#
La rétropropagation ordinaire à travers un solveur stocke chaque état intermédiaire ; la mémoire nécessaire augmente donc avec le nombre d’étapes du solveur. La méthode de sensibilité adjointe évite cela en résolvant une seconde EDO à rebours dans le temps, qui transporte le gradient, et en recalculant les états au lieu de les stocker. Le coût mémoire reste constant par rapport à la profondeur, au prix de calculs supplémentaires et de légères différences numériques entre les trajectoires avant et arrière.
Le paquet torchdiffeq fournit des solveurs différentiables pour PyTorch, avec odeint pour la rétropropagation directe et odeint_adjoint pour la méthode adjointe :
import torch
from torch import nn
from torchdiffeq import odeint
torch.manual_seed(0)
# Le réseau prédit la dérivée dh/dt d’un état caché en 2D
dynamics = nn.Sequential(nn.Linear(2, 32), nn.Tanh(), nn.Linear(32, 2))
# Interroger l’état à des horodatages irréguliers, comme pour des mesures de capteurs sporadiques
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)
# Les gradients traversent le solveur jusqu’aux poids du réseau
loss = trajectory[-1].square().sum()
loss.backward()
print(trajectory.squeeze(1))
print(dynamics[0].weight.grad.norm())La trajectoire conserve l’état à chacun des instants demandés, des instants rapprochés 0,3 et 0,35 au long intervalle qui précède 1,1, tandis que le solveur choisit ses propres pas internes. La norme de gradient non nulle montre qu’une fonction de perte évaluée à l’instant final entraîne le réseau à travers le solveur. Remplacer odeint par odeint_adjoint permet d’utiliser des gradients à mémoire constante, à condition que la fonction de dynamique soit un nn.Module, afin que le solveur puisse trouver ses paramètres.
Quand utiliser les Neural ODEs ?#
Les séries temporelles échantillonnées de manière irrégulière sont le cas d’usage le plus évident. Les modèles Latent ODE, présentés par Rubanova et ses collègues en 2019, encodent une séquence d’observations dans un état caché et le font évoluer en continu. Les dossiers médicaux ou les journaux de capteurs comportant des intervalles irréguliers peuvent ainsi être modélisés sans les forcer sur une grille fixe. Un réseau de neurones récurrent ne met à jour son état qu’à des étapes discrètes et nécessite des mécanismes supplémentaires pour traiter les horodatages manquants ou irréguliers, un problème central de l’analyse des séries temporelles.
Les données de suivi ont la même structure. Le mode Suivi d’Ultralytics YOLO26 produit une position pour chaque ID de suivi dans chaque image, avec des lacunes lorsqu’un objet est occulté ou manqué. Le suiveur par défaut conserve chaque piste perdue pendant track_buffer images, 30 par défaut, au moyen d’un filtre de Kalman dont le modèle de mouvement à vitesse constante est une EDO linéaire fixe, avancée une fois par image. Une Neural ODE ajustée aux mêmes positions apprend le mouvement lui-même sous la forme d’une trajectoire continue, interrogeable entre les images ou pendant une lacune du suivi multi-objets.
La modélisation générative est la deuxième grande application. Les flots continus à normalisation, développés dans l’article original sur les Neural ODE puis étendus dans FFJORD, transforment une distribution simple en une distribution complexe en intégrant un champ vectoriel appris. L’appariement de flots a ensuite rendu ces modèles bien moins coûteux à entraîner en apprenant directement le champ vectoriel, sans résoudre d’EDO pendant l’entraînement. Les générateurs d’images à flot rectifié, comme Stable Diffusion 3, échantillonnent en intégrant une telle EDO, et les modèles de diffusion peuvent être échantillonnés de façon déterministe en intégrant leur EDO de flot de probabilité.
Limites et modèles apparentés en temps continu#
Les trajectoires d’une EDO ne peuvent pas se croiser ; une Neural ODE de la même dimension que l’entrée ne peut donc pas représenter certaines transformations simples. Les Neural ODE augmentées, proposées par Emilien Dupont et ses collègues en 2019, résolvent ce problème en ajoutant des dimensions à l’état. Une dynamique raide et un nombre croissant d’évaluations de fonction pendant l’entraînement peuvent rendre les Neural ODE plus lentes qu’un réseau à profondeur fixe.
D’autres architectures s’appuient sur une dynamique en temps continu avec des compromis différents. Les réseaux neuronaux liquides sont des cellules récurrentes définies par des EDO dont les constantes de temps dépendent de l’entrée. Les modèles d’espace d’état, comme S4 et Mamba, partent d’un système linéaire en temps continu, x'(t) = Ax(t) + Bu(t), et le discrétisent en une récurrence qui peut également être calculée comme une longue convolution ou un balayage parallèle. Ils sont ainsi rapides sur les longues séquences pour lesquelles une Neural ODE générale nécessite un solveur adaptatif.










