Wenn das Modell auswendig lernt (Overfitting)
Wie man bemerkt, dass das Modell nicht gelernt, sondern auswendig gepaukt hat.
Dein ML-Modell erreicht 99 % auf den Trainingsdaten — stürzt aber auf 55 % bei neuen Daten ab. Das Modell hat nicht gelernt, das Problem zu lösen. Es hat die Antworten auswendig gelernt. Dieses Phänomen heißt Overfitting und ist der häufigste Fehler im Machine Learning.
In diesem Artikel lernst du, warum Overfitting passiert, wie du es erkennst und welche Werkzeuge es gibt, um es zu vermeiden.
Der auswendig lernende Schüler — Was ist Overfitting?
Overfitting
Anders als ein Schüler hat ein ML-Modell kein "Verständnis" — es optimiert eine Verlustfunktion. Die Analogie funktioniert für die Intuition, sollte aber nicht nahelegen, dass Modelle kognitive Prozesse haben.
Beispiel: Polynomanpassung
Irrtum: Hohe Trainingsgenauigkeit = gutes Modell
Jedes sehr komplexe Modell (wie heutige große KI-Systeme) neigt dazu, Daten einfach auswendig zu lernen. Deshalb überwachen Entwickler sowohl den Trainings- als auch den Validierungsfehler. Wenn der Validierungsfehler steigt, während der Trainingsfehler weiter sinkt, overfittet dein Modell — und genau dann solltest du aufhören zu trainieren (Early Stopping).
Underfitting
Symptom: Niedriger Trainingsfehler, hoher Testfehler. Ursache: Modell zu komplex oder zu lange trainiert. Lösung: Modell vereinfachen, mehr Daten, Regularisierung, frühes Stoppen.
Symptom: Hoher Trainingsfehler UND hoher Testfehler. Ursache: Modell zu einfach oder zu wenig trainiert. Lösung: Komplexeres Modell, mehr Features, länger trainieren.
Interaktiv: Underfitting vs. Overfitting
Bewege den Schieberegler, um zu sehen, wie sich eine zu einfache Modellanpassung (links) von einer zu komplexen Anpassung (rechts) unterscheidet. In der Mitte liegt der Sweet Spot — das Modell erfasst die echten Muster, ohne das Rauschen auswendig zu lernen.
Underfitting vs. Overfitting
Verschiebe den Regler, um zwischen Underfitting (links) und Overfitting (rechts) zu wechseln. Die blauen Punkte sind Trainingsdaten. Die Kurve zeigt, wie das Modell die Daten interpretiert.
Underfitting
Das Modell ist zu einfach. Es erkennt nicht einmal die offensichtlichen Muster in den Trainingsdaten. Wie ein Schüler, der die Aufgabe nicht verstanden hat.
Overfitting
Das Modell ist zu komplex. Es lernt jeden einzelnen Datenpunkt auswendig, inklusive Rauschen. Wie ein Schüler, der die Antworten auswendig lernt statt zu verstehen.
In der Mitte liegt der optimale Kompromiss: komplex genug, um echte Muster zu erkennen, aber einfach genug, um auf neue Daten zu generalisieren. Techniken wie Regularisierung, Kreuzvalidierung und Early Stopping helfen, diesen Punkt zu finden.
Die U-Kurve — Den Sweet Spot finden
Stell dir eine Grafik vor: Auf der X-Achse die Modellkomplexität (z. B. den Polynomgrad), auf der Y-Achse den Fehler. Was entsteht?
Der Trainingsfehler sinkt stetig mit wachsender Komplexität — das Modell passt sich immer besser an die Trainingsdaten an. Der Testfehler aber verhält sich anders: Er sinkt zunächst (weil das Modell besser wird), steigt dann aber wieder an (weil das Modell anfängt, Rauschen zu lernen).
Diese U-förmige Testkurve ist das zentrale Diagnosewerkzeug. Am tiefsten Punkt der U-Kurve liegt der optimale Punkt — die beste Balance zwischen zu einfach (Underfitting, links) und zu komplex (Overfitting, rechts).
Deep Dive: Der Bias-Varianz-Tradeoff
Train, Validate, Test — Das Drei-Prüfungs-System
Woher weißt du, ob dein Modell verallgemeinern kann? Du testest es an Daten, die es noch nie gesehen hat. Dafür wird der Datensatz in drei disjunkte Teile aufgeteilt:
Wie in der Schule: Die Hausaufgaben sind zum Üben, die Probeklausur zeigt, wo du stehst, und die Abschlussprüfung darfst du nur einmal schreiben. Wer vorher die echte Prüfung sieht und damit übt, hat kein valides Ergebnis mehr.
Die goldene Regel: Testdaten nur EINMAL verwenden
Praxis: Daten aufteilen mit scikit-learn
Bei kleinen Datensätzen reicht eine einzelne Aufteilung nicht aus. Hier hilft die Kreuzvalidierung (Cross-Validation): Der Datensatz wird in k Teile ("Folds") aufgeteilt, und das Training wird k-mal wiederholt, wobei jedes Fold einmal als Validierung dient.
Was kannst du tun?
Overfitting ist kein Schicksal. Diese vier Strategien helfen:
Dropout Regularisierung
Geoffrey Hinton, Nitish Srivastava, Alex Krizhevsky, Ilya Sutskever und Ruslan Salakhutdinov verändern im Juli 2012 das Training neuronaler Netzwerke erheblich mit der Erfindung von Dropout Regularisierung. Diese elegante Technik verhindert Overfitting durch zufälliges "Ausschalten" etwa der Hälfte aller Neuronen während des Trainings, wodurch komplexe Ko-Adaptationen vermieden werden. Statt spezifischer Feature-Kombinationen lernt jedes Neuron robuste, allgemein nützliche Erkennungsmuster. Die am 3. Juli 2012 auf arXiv veröffentlichte Methode ermöglicht erst AlexNets ImageNet-Durchbruch im September 2012 und wird zum Standard in den meisten modernen Deep Learning Architekturen. Dropout setzt neue Rekorde in Sprach- und Objekterkennung und löst das zentrale Overfitting-Problem tiefer Netzwerke.
Interaktiv: Warum Komplexität explodiert
Bewege den Schieberegler, um zu sehen, wie schnell die Berechnungskosten verschiedener Modellkomplexitäten wachsen. Ein O(n²)-Modell braucht bei 100 Datenpunkten bereits 10.000 Operationen — ein Grund, warum Regularisierung so wichtig ist.
Bei n=100 wird der Unterschied sichtbar: O(n²) braucht 10.000 Operationen, während O(n) nur 100 braucht. O(log n) braucht nur 6.6 — das ist 15x weniger als O(n).
Verhältnis zu O(n)
| Komplexität | Operationen | Faktor vs. O(n) |
|---|---|---|
| O(1) | 1 | 100x schneller |
| O(n) | 100 | 1x (Referenz) |
| O(n²) | 10.000 | 100x langsamer |
| O(2ⁿ) | 1.073.741.824 | 10737418x langsamer |
Zusammenfassung
Quiz: Overfitting
Verständnis-Check
- Warum ist eine hohe Trainingsgenauigkeit allein ein gefährlicher Maßstab?
- Was ist der Unterschied zwischen Validierungs- und Testdatensatz — und warum darf der Testdatensatz nur einmal verwendet werden?
- Was passiert mit Bias und Varianz, wenn du die Modellkomplexität erhöhst?