Catastrophic Forgetting
Katastrophales Vergessen ist der plötzliche Verlust zuvor erworbener Fähigkeiten, wenn ein neuronales Netz mit neuen Daten trainiert wird. Hier erfährst du, warum es auftritt, welche Beispiele es gibt und wie es sich eindämmen lässt.
Katastrophales Vergessen, auch als katastrophale Interferenz bezeichnet, ist der abrupte Verlust zuvor erlernter Fähigkeiten, wenn ein neuronales Netz mit neuen Daten trainiert wird, die keine Beispiele der früheren Aufgabe mehr enthalten. Beim Training werden dieselben gemeinsam genutzten Modellgewichte aktualisiert, in denen das frühere Wissen gespeichert ist. Der neue Loss enthält jedoch keinen Anreiz, es zu bewahren. Daher kann die Genauigkeit bei der ursprünglichen Aufgabe innerhalb weniger Hundert Aktualisierungsschritte einbrechen. McCloskey und Cohen beschrieben diesen Effekt 1989 anhand von Netzwerken, die nacheinander Rechenfakten lernten. Er ist weiterhin das zentrale Hindernis für kontinuierliches Lernen und ein häufiges Risiko bei der Feinabstimmung.
Ursachen für katastrophales Vergessen#
Wissen ist in einem neuronalen Netz verteilt: Jedes Gewicht trägt zu vielen Ausgaben bei, und jede Ausgabe hängt von vielen Gewichten ab. Beim Training für eine neue Aufgabe verschieben sich die Gewichte in die Richtung, in der ihr Loss am schnellsten sinkt. Da kein Term die frühere Aufgabe berücksichtigt, driftet das Modell aus dem Bereich, in dem die frühere Aufgabe funktionierte. Die Klassifizierung verstärkt diesen Effekt in der Ausgabeschicht. Wenn in den Trainingsdaten nur neue Klassen vorkommen, senkt jeder Schritt die Werte für die fehlenden Klassen, bis das Modell sie gar nicht mehr vorhersagt. Ein kleines Netz, das zuerst mit handgeschriebenen Ziffern von 0 bis 4 und anschließend mit Ziffern von 5 bis 9 trainiert wird, zeigt diesen Effekt und veranschaulicht zugleich, wie das erneute Einspielen einer kleinen Menge alter Daten ihn begrenzt:
import torch
from sklearn.datasets import load_digits
torch.manual_seed(0)
X, y = load_digits(return_X_y=True)
X, y = torch.tensor(X / 16, dtype=torch.float32), torch.tensor(y)
train = torch.arange(len(y)) < 1400 # hold out the last 397 images for testing
task_a, task_b, test_a = train & (y < 5), train & (y >= 5), ~train & (y < 5)
replay = task_a & (torch.rand(len(y)) < 0.1) # keep 10% of task A for replay
for name, second_task in [("task B only", task_b), ("task B + 10% replay", task_b | replay)]:
model = torch.nn.Sequential(torch.nn.Linear(64, 64), torch.nn.ReLU(), torch.nn.Linear(64, 10))
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
# Train on digits 0-4 (task A), then on digits 5-9 (task B)
for mask in (task_a, second_task):
for _ in range(200):
loss = torch.nn.functional.cross_entropy(model(X[mask]), y[mask])
optimizer.zero_grad()
loss.backward()
optimizer.step()
accuracy = (model(X[test_a]).argmax(1) == y[test_a]).float().mean()
print(f"{name}: held-out digits 0-4 accuracy {accuracy:.1%}")Nach Aufgabe A klassifiziert das Netz 92,4 % der 198 zurückgehaltenen Ziffern von 0 bis 4 richtig. Wird es nur mit Ziffern von 5 bis 9 trainiert, sinkt dieser Wert auf 0,0 %, da das Modell nun nur noch die neuen Klassen vorhersagt. Werden beim zweiten Trainingsabschnitt 66 erneut eingespielte Bilder aus Aufgabe A beigemischt, bleibt die Genauigkeit bei 74,7 %.
Katastrophales Vergessen in der Praxis#
- Objekterkennung: Ein Detektor, der mit Fußgängern und Verkehrsschildern trainiert und anschließend nur mit Bildern neuer Baustellenschilder feinabgestimmt wird, hört auf, Fußgänger zu erkennen. Jeder Fußgänger, der in den neuen Bildern ohne Label vorkommt, wird aktiv als Hintergrund antrainiert und verstärkt so das Vergessen.
- Große Sprachmodelle: Beim fortlaufenden Anweisungstuning von LLMs mit einer bis sieben Milliarden Parametern nahmen Domänenwissen, Schlussfolgerungsfähigkeit und Leseverständnis allesamt ab; innerhalb dieses Bereichs verstärkte sich das Vergessen mit zunehmender Modellgröße. Die Feinabstimmung ausgerichteter Modelle kann selbst mit unbedenklichen Daten ihr sicheres Verhalten beeinträchtigen.
Katastrophales Vergessen und verwandte Begriffe#
- Kontinuierliches Lernen: Forschungsgebiet, das untersucht, wie sich eine Abfolge von Aufgaben lernen lässt, ohne frühere Aufgaben zu vergessen. Katastrophales Vergessen ist das Problem, mit dem sich dieses Gebiet befasst.
- Modellkollaps: Ein allmählicher Verlust an Qualität und Vielfalt, wenn Modelle mit Daten trainiert werden, die frühere Modelle erzeugt haben, selbst bei derselben Aufgabe.
- Überanpassung: Das Rauschen der aktuellen Trainingsdaten wird so genau angepasst, dass die Leistung bei neuen Daten derselben Aufgabe sinkt. Vergessen bezeichnet dagegen den Verlust einer früheren Aufgabe.
- Maschinelles Verlernen: Das gezielte Entfernen bestimmter Daten oder bestimmter Kenntnisse aus einem trainierten Modell – das beabsichtigte Gegenstück zum Vergessen.
- Stabilitäts-Plastizitäts-Dilemma: Der Zielkonflikt zwischen dem Bewahren alten Wissens und ausreichender Anpassungsfähigkeit zum Lernen neuer Aufgaben, den jede Gegenmaßnahme anders ausbalanciert.
Katastrophales Vergessen reduzieren#
Gegenmaßnahmen lassen sich in drei Gruppen einteilen: Wiederholung, Regularisierung und Parameterisolation. Welche davon sich eignet, hängt meist von den Projektbedingungen ab:
- Wiederholung: Gespeicherte Beispiele früherer Aufgaben in das neue Training einzumischen, ist die zuverlässigste Lösung, wie das Beispiel mit den Ziffern zeigt. Bei YOLO26-Detektoren akzeptieren die Datensatz-YAML-Dateien von Ultralytics eine Liste von Ordnern mit Trainingsbildern. Für die Wiederholung führst du also neben den neuen Bildern eine Auswahl der ursprünglichen Bilder in einer gemeinsamen Klassenliste auf.
- Regularisierung: Elastic Weight Consolidation (EWC) bestraft Änderungen an jedem Gewicht proportional zu seiner Bedeutung für frühere Aufgaben, die anhand der Fisher-Information geschätzt wird. Learning without Forgetting nutzt stattdessen Wissensdestillation und trainiert das Modell darauf, seine früheren Ausgaben auch bei den neuen Daten beizubehalten.
- Parameterisolation: Werden gemeinsam genutzte Schichten eingefroren, aufgabenspezifische Köpfe hinzugefügt oder Adapter wie LoRA trainiert, bleiben die ursprünglichen Gewichte unverändert. Bei Programmier- und Mathematikaufgaben lernte LoRA weniger als eine vollständige Feinabstimmung, vergaß aber auch weniger. Die vollständige Feinabstimmung erlernte Gewichtsänderungen mit einem Rang, der 10- bis 100-mal höher war als bei typischen LoRA-Konfigurationen.










