<EbeneX/>
Grundlagen Grundlagen · Updated 1. Juli 2026

Catastrophic Forgetting

Definition

Ein Phänomen, bei dem neuronale Netze beim Lernen neuer Aufgaben das Wissen über frühere Aufgaben verlieren – ein zentrales Problem für kontinuierliches Lernen.

Experte 3 Min. Lesezeit EN: Catastrophic Forgetting / Catastrophic Interference

Einfach erklärt

Catastrophic Forgetting beschreibt, wie neuronale Netze beim Lernen neuer Aufgaben Leistung auf alten Aufgaben verlieren können. Gewichtsänderungen für neue Daten können frühere Repräsentationen stören.

Das Problem visualisiert:

Schritt 1: Training auf Task A
Modell: [████████████] Task A: hohe Leistung

Schritt 2: Training auf Task B
Modell: [████████████] Task B: hohe Leistung
                       Task A: deutlich niedrigere Leistung ← Forgetting

Warum passiert das?

Gewichte vor Task B:    Muster sind gut für Task A angepasst

Training auf Task B:    Gradient Updates

Gewichte nach Task B:   Muster sind stärker für Task B angepasst
                         und können für Task A schlechter funktionieren

Die Gewichte, die für Task A wichtig waren, wurden für Task B überschrieben.

Technischer Deep Dive

Warum neuronale Netze vergessen

Shared Representations:

  • Verschiedene Tasks nutzen dieselben Gewichte
  • Optimierung für Task B verändert Gewichte
  • Diese Änderungen sind schädlich für Task A

Keine Lokalisierung:

  • Wissen ist über das gesamte Netz verteilt
  • Kein “Speicherbereich” pro Task
  • Jedes Update beeinflusst alles

Lösungsansätze

1. Replay (Experience Replay):

def train_with_replay(model, new_data, old_data_buffer, replay_ratio):
    for batch in new_data:
        # Mix aus neuen und alten Daten
        replay_batch = sample(old_data_buffer, int(len(batch) * replay_ratio))
        combined = concat(batch, replay_batch)
        
        loss = model(combined)
        loss.backward()
        optimizer.step()
        
        # Neue Daten zum Buffer hinzufügen
        old_data_buffer.add(batch)

2. Elastic Weight Consolidation (EWC):

def ewc_loss(model, task_loss, fisher_matrix, old_weights, lambda_ewc):
    """
    Bestraft Änderungen an wichtigen Gewichten
    """
    ewc_penalty = 0
    for name, param in model.named_parameters():
        # Fisher Matrix zeigt Wichtigkeit der Gewichte
        importance = fisher_matrix[name]
        old_value = old_weights[name]
        
        # Penalty für Abweichung von alten Werten
        ewc_penalty += (importance * (param - old_value) ** 2).sum()
    
    return task_loss + lambda_ewc * ewc_penalty

3. Progressive Neural Networks:

Task A:  [Network A] ────────────────→ Output A

              ↓ (frozen)
Task B:  [Network B] + lateral connections → Output B

              ↓ (frozen)
Task C:  [Network C] + lateral connections → Output C

Neue Netzwerke für neue Tasks, alte bleiben eingefroren.

4. LoRA für LLMs:

# Statt alle Gewichte zu ändern
# Nur kleine Adapter trainieren
from peft import LoraConfig, get_peft_model

config = LoraConfig(
    r=adapter_rank,
    lora_alpha=adapter_scale,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=dropout_rate,
)

model = get_peft_model(base_model, config)
# Nur Adapter-Parameter werden trainiert
# Basis-Modell bleibt weitgehend unverändert

Messung von Forgetting

def measure_forgetting(model, tasks, initial_accuracies):
    """
    Backward Transfer: Wie viel wurde vergessen?
    """
    forgetting = {}
    
    for task_id, task_data in enumerate(tasks[:-1]):  # Alle außer letztem
        current_acc = evaluate(model, task_data)
        initial_acc = initial_accuracies[task_id]
        
        forgetting[task_id] = initial_acc - current_acc
    
    return forgetting

# Beispiel:
# Forgetting = initiale Leistung auf Task A - aktuelle Leistung auf Task A
# Je größer der Abstand, desto stärker das Vergessen

Continual Learning Metriken

MetrikBeschreibung
Average AccuracyDurchschnitt über alle Tasks
ForgettingAccuracy-Verlust auf alten Tasks
Forward TransferHilft altes Wissen bei neuen Tasks?
Backward TransferHilft neues Wissen bei alten Tasks?

Praktische Tipps für Fine-Tuning

StrategieTypischer Effekt auf Forgetting
Niedrige Learning Ratekann Vergessen reduzieren
Wenige Epochenkann Vergessen reduzieren
LoRA/Adapterkann Risiko senken
Replaywirkt aktiv gegen Vergessen
Full Fine-Tuningkann höheres Risiko haben

Catastrophic Forgetting ist wie ein Musiker, der beim Lernen eines neuen Stücks plötzlich alle alten Stücke vergisst – das Gehirn überschreibt die alten Erinnerungen mit den neuen.

Neuronale Netze überschreiben Gewichte beim Training auf neuen Daten

Besonders problematisch bei sequentiellem Training auf verschiedenen Tasks

Lösungen: Continual Learning, Elastic Weight Consolidation, Replay

Continual Learning

Modelle sollen neue Fähigkeiten lernen ohne alte zu verlieren

Domain Adaptation

Anpassung an neue Domains ohne Basis-Wissen zu verlieren

Personalisierung

User-spezifisches Fine-Tuning ohne allgemeines Wissen zu zerstören

Robotik

Roboter lernt neue Aufgaben, behält alte Fähigkeiten

Warum passiert Catastrophic Forgetting?

Neuronale Netze speichern Wissen in Gewichten. Beim Training auf neuen Daten werden diese Gewichte angepasst – und überschreiben dabei das alte Wissen. Es gibt keinen 'Schutz' für wichtige Gewichte.

Haben Menschen auch Catastrophic Forgetting?

Menschen können ebenfalls interferieren oder vergessen, aber biologische Gedächtnissysteme haben Mechanismen zur Konsolidierung und Wiederholung. Neuronale Netze benötigen dafür eigene Verfahren wie Replay, Regularisierung oder modulare Architekturen.

Wie verhindere ich Catastrophic Forgetting beim Fine-Tuning?

Hilfreich sind vorsichtiges Fine-Tuning, Evaluation auf alten Tasks, Adapter-Methoden wie LoRA, Replay relevanter Daten und Regularisierung. Wie stark das hilft, hängt von Modell, Daten und Zielaufgabe ab.

Ist das bei LLMs auch ein Problem?

Ja, besonders bei schlecht kontrolliertem Fine-Tuning. Zu starke Anpassung an enge Daten kann allgemeine Fähigkeiten verschlechtern. Deshalb sind Adapter, konservative Trainingssettings und Evaluation auf alten Tasks wichtig.

Dein persönliches Share-Bild für Instagram – 1080×1080px, bereit zum Posten.