Zum Inhalt springen

Was ist Overfitting?

Overfitting (deutsch: Überanpassung) ist ein Begriff aus dem Bereich des Data Science und beschreibt die Eigenschaft eines Modells sich zu stark auf den Trainingsdatensatz anzupassen. Dadurch performt das Modell nur sehr schlecht auf neue, ungesehene Daten. Das Ziel eines Machine Learning Modells ist jedoch eine gute Generalisierung, sodass die Vorhersage auf neue Daten möglich wird.

Was ist Overfitting?

Der Begriff Overfitting wird im Zusammenhang mit Vorhersagemodellen genutzt, die zu spezifisch auf den Trainingsdatensatz angepasst sind und dadurch die Streuung der Daten mit erlernen. Dies passiert häufig, wenn das Modell eine zu komplexe Struktur hat für die zugrundeliegenden Daten. Das Problem ist dann, dass das trainierte Modell nur sehr schlecht generalisiert, also nur unzureichende Vorhersagen für neue, ungesehene Daten liefert. Die Performance auf dem Trainingsdatensatz hingegen war sehr gut, weshalb man von einer hohen Modellgüte ausgehen könnte.

Overfitting
Overfitting am Beispiel | Quelle: Autor

Einige Faktoren können bereits frühzeitig auf eine drohende Überanpassung hindeuten:

  • Kleiner Datensatz: Wenn nur wenige einzelne Datensätze im Training vorhanden sind, ist die Wahrscheinlichkeit sehr hoch, dass diese einfach auswendig gelernt werden und viel zu wenige Informationen vorhanden sind, um eine zugrundliegende Struktur erlernen zu können. Umso problematischer wird es, umso mehr Trainingsparameter das Modell hat. Ein Neuronales Netzwerk beispielsweise besitzt auf jeder Hidden Layer eine Vielzahl von Parameter. Deshalb sollte man mit steigender Komplexität des Modell auch den Datensatz vergrößern.
  • Auswahl des Trainingsdatensatzes: Wenn die Auswahl der Datensätze bereits unausgewogen ist, ist die Wahrscheinlichkeit groß, dass das Modell diese trainiert und somit eine schlechte Generalisierung hat. Das Sample aus einer Population sollte immer zufällig getroffen werden, sodass es nicht zu einem Selection Bias kommt. Um eine Hochrechnung während einer Wahl zu erstellen, sollten nicht nur die Wähler an einem Wahllokal befragt werden, da diese nicht repräsentativ für das gesamte Land sind, sondern lediglich die Meinung in diesem Wahlbezirk vertreten.
  • Viele Trainingsepochen: Ein Modell trainiert mehrere Epochen und hat in jeder Epoche das Ziel, die Verlustfunktion weiter zu minimieren und dadurch die Qualität des Modells zu erhöhen. Ab einem gewissen Punkt kann es jedoch passieren, dass nur noch Verbesserungen in der Backpropagation erzielt werden können, indem sich mehr auf den Trainingsdatensatz angepasst wird.

Wie erkennt man Overfitting?

Leider gibt es keine zentrale Analyse, die mit Sicherheit ergibt, ob ein Modell overfitted oder nicht. Jedoch gibt es einige Parameter und Analysen, die Hinweise auf ein drohendes Overfitting liefern können. Die beste und einfachste Methode ist sich dazu die Fehlerkurve des Modells über die Iterations hinweg anzuschauen.

Overfitting – Analyse | Source: IBM

Wenn der Fehler im Trainingsdatensatz weiter sinkt, während jedoch der Fehler im Validierungsdatensatz wieder beginnt zu steigen, spricht das dafür, dass sich das Modell zu sehr an die Trainingsdaten anpasst und dadurch schlecht generalisiert. Eine gleiche Auswertung kann man auch mit dem Verlauf der Verlustfunktion machen.

Um einen solchen Grapfen aufzubauen, benötigt man das sogenannte Validation- oder Test-Set, also für das Modell ungesehene Daten. Falls der Datensatz groß genug ist, kann man dazu meist 20 – 30 % des Datensatzes abspalten und als Testdatensatz nutzen. Ansonsten gibt es auch die Möglichkeit die sogenannte k-Fold Cross-Validation zu nutzen, die etwas komplexer ist und dafür auch bei kleineren Datensätzen genutzt werden kann.

Der Datensatz wird dabei in k gleichgroße Blöcke unterteilt. Einer der Blocks wird zufällig gewählt und dient als Testdatensatz und die anderen Blöcke wiederum sind die Trainingsdaten. Im zweiten Trainingsschritt jedoch wird ein anderer Block als Testdaten definiert und der Prozess wiederholt sich.

Das Bild zeigt ein Beispiel der K-Fold Cross Validation.
K-Fold Cross-Validation | Quelle: Autor

Die Anzahl der Blöcke k lässt sich beliebig wählen und in den meisten Fällen wird ein Wert zwischen 5 und 10 gewählt. Ein zu großer Wert führt zu einem weniger verzerrten Modell, jedoch steigt das Risiko des Overfittings. Ein zu kleiner k Wert führt zu einem stärker verzerrten Modell, da es dann eigentlich der Hold-Out Methode entspricht.

Wie kann man Overfitting verhindern?

Es gibt viele verschiedene Möglichkeiten, um das Overfitting zu verhindern oder zumindest die Wahrscheinlichkeit dafür zu verringern. Aus den folgenden Vorschlägen sollte in vielen Fällen bereits zwei ausreichen, um das Risiko für Overfitting gering zu halten:

  • Datensatz: Der Datensatz spielt eine sehr große Rolle bei der Vermeidung von Overfitting. Er sollte dabei so groß, wie nur möglich sein, und verschiedene Daten enthalten. Des Weiteren sollte genügend Zeit in den Aufbereitungsprozess der Daten geflossen sein. Wenn nämlich falsche oder fehlende Daten zu häufig vorkommen, steigt dadurch die Komplexität und das Risiko der Überanpassung steigt entsprechend. Mit einem sauberen Datensatz hingegen tut sich das Modell einfacher, die zugrundeliegende Struktur zu erkennen.
  • Data Augmentation: In vielen Anwendungen, wie beispielsweis der Bilderkennung, werden einzelne Datensätze genutzt und mit leichten Veränderungen dem Modell zusätzlich zum Trainieren gegeben. Bei diesen Änderungen kann es sich beispielsweise um eine schwarz-weiß Kopie eines Bilds handeln oder um denselben Text mit einigen Tippfehlern darin. Dadurch wird das Modell stabiler und lernt mit Datenvariationen umzugehen und unabhängiger vom ursprünglichen Trainingsdatensatz zu werden.
  • Stopping Rule: Beim Start eines Modells gibt man eine maximale Anzahl von Epochen an, nach denen das Training beendet ist. Zusätzlich kann es Sinn machen, das Training bereits frühzeitig zu beenden, beispielsweise wenn es über mehrere Epochen keinen wirklichen Fortschritt mehr macht (die Verlustfunktion nicht mehr weiter abnimmt) und somit die Gefahr besteht, dass das Modell ins Overfitting läuft. In TensorFlow lässt sich dafür ein eigener Callback definieren:
callback = tf.keras.callbacks.EarlyStopping(monitor='loss', patience=3)
  • Featureauswahl: Ein Datensatz enthält oft eine Vielzahl von Features, die als Input an das Modell gegeben werden. Doch nicht alle werden wirklich für die Vorhersage des richtigen Ergebnisses benötigt. Manche Features können sogar untereinander korreliert sein, also in Abhängigkeit zueinander stehen. Wenn eine Vielzahl von Features vorhanden, sollte mithilfe von geeigneten Algorithmen eine Vorauswahl getroffen werden. Ansonsten nimmt die Komplexität des Modells zu und das Risiko für Overfitting ist hoch.

Overfitting vs. Underfitting

Überanpassung und Unteranpassung sind zwei häufige Probleme beim maschinellen Lernen, die auftreten, wenn ein Modell nicht gut auf neue, ungesehene Daten verallgemeinert werden kann. Im Falle einer Überanpassung wird das Modell zu komplex und passt sich zu sehr an die Trainingsdaten an, was zu einer schlechten Leistung bei den Testdaten führt. Im Gegensatz dazu liegt eine Unteranpassung vor, wenn das Modell zu einfach ist, um die zugrundeliegenden Muster in den Daten zu erfassen, und zu einer schlechten Leistung sowohl bei den Trainings- als auch bei den Testdaten führt.

Bei der Vermeidung von Overfitting muss man jedoch vorsichtig sein, da es auch in das andere Extrem, das sogenannte Underfitting, abdriften kann. Von Underfitting spricht man, wenn das Modell nicht in der Lage ist, aus den gegebenen Daten eine zugrundeliegende Struktur zu erkennen und dadurch auch schlechte Ergebnisse bei der Generalisierung liefert. Erkennbar ist Underfitting daran, dass der Trainingsfehler auf einem hohen Niveau stagniert und nicht mehr weiter abnimmt.

Eine solche Unteranpassung kann dann entstehen, wenn das Modell nicht ausreichend komplex ist, um die komplexe, zugrundliegende Struktur abbilden zu können. Ein weiteres Problem kann sein, dass wichtige Features im Datensatz fehlen, die benötigt werden, um den Zusammenhang zu errechnen.

Um den Unterschied zwischen Overfitting und Underfitting zu verstehen, ist es hilfreich, den Kompromiss zwischen Verzerrung und Varianz zu betrachten. Die Verzerrung bezieht sich auf die Tendenz des Modells, bestimmte Annahmen über die Daten zu treffen, während sich die Varianz auf seine Empfindlichkeit gegenüber dem Rauschen in den Daten bezieht. Ein Modell mit hoher Verzerrung und geringer Varianz passt wahrscheinlich nicht zu den Daten, während ein Modell mit geringer Verzerrung und hoher Varianz die Daten wahrscheinlich übererfüllt.

Das richtige Gleichgewicht zwischen Überanpassung und Unteranpassung zu finden, ist für die Entwicklung genauer und zuverlässiger Modelle für maschinelles Lernen unerlässlich. Durch den Einsatz geeigneter Techniken wie Regularisierung, Kreuzvalidierung, Merkmalsauswahl, frühzeitiges Stoppen und Ensemble-Methoden ist es möglich, Modelle zu entwickeln, die sich gut auf neue, ungesehene Daten verallgemeinern lassen.

Was sind die Konsequenzen von Overfitting in der Anwendung?

Eine Überanpassung kann in der realen Welt erhebliche Folgen haben, insbesondere bei Anwendungen, bei denen die Vorhersagen des Modells als Entscheidungsgrundlage dienen. Einige Beispiele für die Folgen einer Überanpassung sind:

  • Schlechte Generalisierung: Überangepasste Modelle sind stark auf die Trainingsdaten abgestimmt und können daher oft nicht gut auf ungesehene Daten verallgemeinert werden. Das bedeutet, dass das Modell bei den Trainingsdaten gut abschneidet, bei den neuen Daten jedoch schlecht, so dass es in realen Anwendungen unbrauchbar ist.
  • Verzerrungen bei der Entscheidungsfindung: Überangepasste Modelle können zu verzerrten Ergebnissen führen, die bestimmte Ergebnisse oder Datengruppen bevorzugen. Dies kann besonders bei Anwendungen zur Entscheidungsfindung problematisch sein, z. B. bei der Kreditwürdigkeitsprüfung oder der medizinischen Diagnose, wo selbst kleine Abweichungen erhebliche Folgen haben können.
  • Vergeudete Ressourcen: Übermäßiges Anpassen führt häufig zur Entwicklung komplexer Modelle, deren Training und Einsatz erhebliche Rechenressourcen erfordert. Dies kann zu einer Verschwendung von Zeit, Geld und Rechenleistung führen, insbesondere wenn das resultierende Modell in der Praxis nicht nützlich ist.
  • Erhöhtes Risiko: Überangepasste Modelle können den Eindruck von Genauigkeit erwecken, was zu übermäßigem Vertrauen in ihre Vorhersagen führt. Dies kann das Risiko erhöhen, auf der Grundlage fehlerhafter Modellergebnisse falsche Entscheidungen zu treffen oder unangemessene Maßnahmen zu ergreifen.

Zusammenfassend lässt sich sagen, dass eine Überanpassung schwerwiegende Folgen für die Praxis haben kann, weshalb es wichtig ist, Modelle zu entwickeln, die ein ausgewogenes Verhältnis zwischen Komplexität und Verallgemeinerung bieten.

Das solltest Du mitnehmen

  • Das Overfitting (deutsch: Überanpassung) ist ein Begriff aus dem Bereich des Data Science und beschreibt die Eigenschaft eines Modells sich zu stark auf den Trainingsdatensatz anzupassen.
  • Es ist meist daran erkennbar, dass der Fehler im Testdatensatz wieder zunimmt, während der Fehler im Trainingsdatensatz weiter abnimmt.
  • Man kann das Overfitting unter anderem dadurch verhindern, dass eine frühzeitige Stopping Rule einfügt oder im Vorhinein Features aus dem Datensatz entfernt, die mit anderen Features korreliert sind.

Andere Beiträge zum Thema Overfitting

Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner