Neural Ordinary Differential Equations (Neural ODEs)
Neural ODEs ersetzen aufeinanderfolgende Schichten durch eine gelernte Ableitung und einen ODE-Löser. So werden sie mit der Adjungiertenmethode trainiert, dafür eignen sie sich und ausführbarer Code.
Neuronale gewöhnliche Differentialgleichungen (Neural ODEs) sind neuronale Netze, die beschreiben, wie sich ein verborgener Zustand kontinuierlich über die Zeit verändert, statt eine feste Schichtenfolge zu verwenden. Ein kleines Netzwerk f lernt die Ableitung dh/dt = f(h, t). Ein numerischer ODE-Löser integriert diese Ableitung von einem Anfangszustand bis zu dem Zeitpunkt, für den eine Ausgabe benötigt wird. Ricky Chen, Yulia Rubanova, Jesse Bettencourt und David Duvenaud stellten die Idee in einer Arbeit von 2018 vor, die bei NeurIPS mit einem Preis für die beste Arbeit ausgezeichnet wurde.
Von Residualblöcken zu kontinuierlicher Tiefe#
Ein Residual Network aktualisiert seinen Zustand gemäß h(t + 1) = h(t) + f(h(t)). Das ist genau ein Schritt des Euler-Verfahrens zum Lösen einer ODE mit einer Schrittweite von 1. Eine Neural ODE geht zum Grenzfall unendlich vieler unendlich kleiner Schritte über und überlässt die Integration einem Löser. Klassische numerische Software wie SciPys solve_ivp löst dieselbe Art von Anfangswertproblem für von Hand aufgestellte Gleichungen.
Dadurch ändert sich die Bedeutung von „Tiefe“. Adaptive Löser aus der Runge-Kutta-Familie wie das Dormand-Prince-Verfahren verwenden kleine Schritte, wenn sich die Dynamik schnell verändert, und große Schritte, wenn sie gleichmäßig verläuft. Die Kosten eines Vorwärtsdurchlaufs entsprechen der Zahl der Funktionsauswertungen, die der Löser benötigt. Sie hängen von der Eingabe, der erlernten Dynamik und der Fehlertoleranz ab. Wird die Toleranz während der Inferenz gelockert, lässt sich eine höhere Genauigkeit gegen geringere Inferenzlatenz eintauschen, ohne das Modell erneut zu trainieren.
Training mit der Adjungierten-Methode#
Bei der gewöhnlichen Backpropagation durch einen Löser wird jeder Zwischenzustand gespeichert, sodass der Speicherbedarf mit der Zahl der Löser-Schritte wächst. Die Adjungierten-Sensitivitätsmethode vermeidet das, indem sie eine zweite ODE rückwärts in der Zeit löst, die den Gradienten transportiert. Dabei werden die Zustände neu berechnet, statt sie zu speichern. Der Speicherbedarf bleibt unabhängig von der Tiefe konstant, allerdings auf Kosten zusätzlicher Berechnungen und kleiner numerischer Unterschiede zwischen Vorwärts- und Rückwärtstrajektorie.
Das Paket torchdiffeq stellt differenzierbare Löser für PyTorch bereit: odeint für direktes Backpropagation und odeint_adjoint für das Adjungiertenverfahren:
import torch
from torch import nn
from torchdiffeq import odeint
torch.manual_seed(0)
# Das Netzwerk sagt die Ableitung dh/dt eines verborgenen 2D-Zustands voraus
dynamics = nn.Sequential(nn.Linear(2, 32), nn.Tanh(), nn.Linear(32, 2))
# Frage den Zustand zu unregelmäßigen Zeitstempeln ab, wie bei sporadischen Sensormessungen
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)
# Gradienten fließen durch den Löser zurück zu den Gewichten des Netzwerks
loss = trajectory[-1].square().sum()
loss.backward()
print(trajectory.squeeze(1))
print(dynamics[0].weight.grad.norm())Die Trajektorie speichert den Zustand für jeden angeforderten Zeitpunkt, vom dicht beieinanderliegenden Paar 0.3 und 0.35 bis zur langen Lücke vor 1.1. Der Löser wählt dabei selbst seine internen Schritte. Die von null verschiedene Gradientennorm zeigt, dass eine zum letzten Zeitpunkt ausgewertete Verlustfunktion das Netzwerk durch den Löser hindurch trainiert. Wird odeint durch odeint_adjoint ersetzt, werden Gradienten mit konstantem Speicherverbrauch verwendet. Dafür muss die Dynamikfunktion ein nn.Module sein, damit der Löser seine Parameter finden kann.
Anwendungsbereiche von Neural ODEs#
Unregelmäßig abgetastete Zeitreihen sind der naheliegendste Anwendungsfall. Latent-ODE-Modelle, 2019 von Rubanova und Kollegen vorgestellt, kodieren eine Beobachtungssequenz in einen verborgenen Zustand und entwickeln diesen kontinuierlich weiter. So lassen sich Krankenakten oder Sensorprotokolle mit ungleichmäßigen Abständen modellieren, ohne sie auf ein festes Raster zu zwingen. Ein rekurrentes neuronales Netz aktualisiert sich nur in diskreten Schritten und benötigt zusätzliche Mechanismen, um mit fehlenden oder unregelmäßigen Zeitstempeln umzugehen. Das ist ein zentrales Problem der Zeitreihenanalyse.
Verfolgungsdaten haben dieselbe Form. Der Verfolgungsmodus von Ultralytics YOLO26 gibt für jede Objektverfolgungs-ID in jedem Einzelbild eine Position aus. Bei Verdeckung oder Nichterkennung entstehen Lücken. Der Standard-Tracker führt jede verlorene Spur für track_buffer Einzelbilder weiter, standardmäßig 30, und nutzt dazu einen Kalman-Filter, dessen Bewegungsmodell mit konstanter Geschwindigkeit einer festen linearen ODE entspricht, die einmal pro Einzelbild integriert wird. Eine auf dieselben Positionen angepasste Neural ODE erlernt die Bewegung selbst als kontinuierliche Trajektorie, die sich zwischen Einzelbildern oder über eine Lücke hinweg beim Verfolgen mehrerer Objekte abfragen lässt.
Generative Modellierung ist der zweite wichtige Anwendungsbereich. Kontinuierliche Normalizing Flows, die in der ursprünglichen Arbeit zu Neural ODEs entwickelt und in FFJORD erweitert wurden, wandeln eine einfache Verteilung durch Integration eines erlernten Vektorfelds in eine komplexe Verteilung um. Flow Matching machte das Training dieser Modelle später deutlich günstiger, indem das Vektorfeld direkt erlernt wird, ohne während des Trainings eine ODE lösen zu müssen. Bildgeneratoren mit Rectified Flow wie Stable Diffusion 3 erzeugen Stichproben durch Integration einer solchen ODE. Diffusionsmodelle lassen sich deterministisch durch Integration ihrer ODE für den Wahrscheinlichkeitsfluss abtasten.
Grenzen und verwandte zeitkontinuierliche Modelle#
Trajektorien einer ODE können sich nicht kreuzen. Eine Neural ODE mit derselben Dimension wie die Eingabe kann deshalb bestimmte einfache Abbildungen nicht darstellen. Augmentierte Neural ODEs, die Emilien Dupont und Kollegen 2019 vorschlugen, beheben dies, indem sie dem Zustand zusätzliche Dimensionen hinzufügen. Steife Dynamiken und eine steigende Zahl von Funktionsauswertungen während des Trainings können Neural ODEs langsamer machen als ein Netzwerk mit fester Tiefe.
Andere Architekturen verwenden zeitkontinuierliche Dynamiken mit jeweils anderen Abwägungen. Flüssige neuronale Netze sind rekurrente Zellen, die durch ODEs definiert werden und deren Zeitkonstanten von der Eingabe abhängen. Zustandsraummodelle wie S4 und Mamba gehen von einem linearen zeitkontinuierlichen System aus, x'(t) = Ax(t) + Bu(t), und diskretisieren es zu einer Rekurrenz. Diese lässt sich auch als lange Faltung oder paralleler Durchlauf berechnen. Dadurch sind sie bei langen Sequenzen schnell, bei denen eine allgemeine Neural ODE einen adaptiven Löser benötigt.










