Overfitting und Underfitting sind zwei der Hauptgründe, warum Machine-Learning-Algorithmen und -Modelle keine guten Ergebnisse erzielen. Wenn Sie verstehen, warum sie überhaupt auftreten, und Maßnahmen ergreifen, um sie zu verhindern, können Sie die Leistung Ihres Modells auf vielen Ebenen steigern. Lassen Sie uns den Unterschied zwischen Overfitting und Underfitting anhand eines hypothetischen Beispiels genauer untersuchen.
Angenommen, zwei Kinder müssen eine Matheprüfung ablegen. Aus Zeitgründen lernte das erste Kind nur Addition und konnte Subtraktion, Multiplikation oder Division nicht lernen. Das zweite Kind hatte ein phänomenales Gedächtnis, war aber nicht sehr gut in Mathe, also lernte es stattdessen alle Aufgaben aus dem Aufgabenheft auswendig. Während der Prüfung löste das erste Kind nur Additionsaufgaben und konnte keine Matheaufgaben mit den anderen drei Grundrechenarten lösen. Das zweite Kind hingegen konnte nur Aufgaben lösen, die es aus dem Matheaufgabenheft auswendig gelernt hatte, und konnte keine anderen Fragen beantworten. In diesem Fall würden beide Kinder die Prüfung nicht bestehen, wenn die Matheprüfungsfragen aus einem anderen Lehrbuch stammten und Fragen zu allen möglichen Grundrechenarten enthielten.
Algorithmen für maschinelles Lernen zeigen manchmal ein ähnliches Verhalten wie diese beiden Kinder. Manchmal lernen sie nur aus einem kleinen Teil des Trainingsdatensatzes (ähnlich wie das Kind, das nur Addition gelernt hat). In solchen Fällen ist das Modell nicht ausreichend angepasst. In anderen Fällen merken sich Modelle für maschinelles Lernen den gesamten Trainingsdatensatz (wie das zweite Kind) und erzielen bei bekannten Instanzen hervorragende Ergebnisse, versagen aber bei unbekannten Daten. In solchen Situationen ist das Modell Overfitting. Overfitting und Unteranpassung sind zwei wesentliche Konzepte beim maschinellen Lernen und können beide zu einer schlechten Modellleistung führen.
In diesem Artikel behandeln wir Generalisierung, Bias-Varianz-Kompromisse und wie sie mit Overfitting und Overfitting prinzipien zusammenhängen. Wir werden auch die Unterschiede zwischen Overfitting und Unteranpassung untersuchen, wie man sie erkennt und verhindert, und tiefer in Modelle eintauchen, die zu Overfitting und Unteranpassung neigen.
Was ist Generalisierung?
Beim überwachten Lernen besteht das Hauptziel darin, anhand von Trainingsdaten ein Modell zu erstellen, das auf der Grundlage neuer, noch nie gesehener Daten, die dieselben Eigenschaften wie der ursprüngliche Trainingssatz aufweisen, genaue Vorhersagen treffen kann. Dies wird als Generalisierung bezeichnet. Generalisierung bezieht sich darauf, wie effektiv die von einem maschinellen Lernmodell erlernten Konzepte auf bestimmte Beispiele angewendet werden, die während des Trainings nicht verwendet wurden. Sie möchten ein Modell erstellen, das so präzise wie möglich verallgemeinern kann. In der realen Welt ist dies jedoch ein kniffliges Problem.
Generalisierungsfehler
Wie Sie wissen, teilen Sie zum Trainieren eines Machine-Learning-Modells den Datensatz in drei Gruppen auf: Training, Validierung und Test. Wie diese Namen schon andeuten, trainieren Sie Ihre Modelle mit den Trainingsdaten, vergleichen und optimieren sie dann mit den Auswertungsergebnissen der Validierungsgruppe und bewerten am Ende die Leistung Ihres besten Modells mit der Testgruppe. Die Fehlerrate bei neuen Fällen wird als Generalisierungsfehler (oder Out-of-Sample-Fehler) bezeichnet. Durch die Auswertung Ihrer Modelle mit der Validierungsgruppe erhalten Sie eine Schätzung dieses Fehlers. Dieser Wert gibt an, wie gut Ihre Modelle bei Instanzen funktionieren, die noch nie iteriert wurden.
Der Generalisierungsfehler eines Modells (auch Vorhersagefehler genannt) kann als Summe dreier sehr unterschiedlicher Fehler ausgedrückt werden: Bias-Fehler, Varianzfehler und irreduzibler Fehler.
Hinweis: Der nicht reduzierbare Fehler entsteht durch das Rauschen der Daten selbst. Die einzige Möglichkeit, diesen Teil des Fehlers zu reduzieren, besteht darin, die Daten zu bereinigen (z. B. die Datenquellen wie defekte Sensoren zu reparieren oder Ausreißer zu erkennen und zu entfernen).
Das Konzept der Voreingenommenheit: Bias-Fehler
Diese Art von Fehler resultiert aus falschen Annahmen, z. B. der Annahme, dass die Daten linear sind, obwohl sie tatsächlich quadratisch sind. Bias wird als systematischer Fehler definiert, der im maschinellen Lernmodell als Folge fehlerhafter ML-Annahmen auftritt. Bias ist auch die durchschnittliche quadrierte Differenz zwischen den Vorhersagen des Modells und den tatsächlichen Daten. Modelle mit einem höheren Bias-Prozentsatz stimmen nicht mit den Trainingsdaten überein. Andererseits stimmen Modelle mit niedrigeren Bias-Raten mit dem Trainingsdatensatz überein. Zu den Merkmalen eines Modells mit hohem Bias gehören:
- Fehler beim Erfassen geeigneter Datentrends
- Potenzial für Unteranpassung
- Verallgemeinerter/übermäßig vereinfachter
- Hohe Fehlerquote
Einen detaillierteren Überblick über Verzerrungen beim maschinellen Lernen und andere relevante Themen finden Sie in unserem Blog .
Der Begriff der Varianz: Varianzfehler
Varianz als Generalisierungsfehler entsteht durch die übermäßige Empfindlichkeit des Modells gegenüber kleinen Abweichungen in den Trainingsdaten. Beim überwachten Lernen lernt das Modell aus Trainingsdaten. Wenn Sie also die Trainingsdaten ändern, wirkt sich dies auch auf das Modell aus. Die Varianz zeigt, in welchem Ausmaß die Leistung des Vorhersagemodells beeinträchtigt wird, wenn die Auswertung auf Grundlage der Validierungsdaten erfolgt. Wenn Ihr Modell gut generalisieren kann, sollte es sich von einer Teilung zur anderen nicht zu stark ändern. Beispielsweise weist ein Modell mit vielen Freiheitsgraden (wie ein hochgradiges Polynommodell) wahrscheinlich eine hohe Varianz auf, während lineare Modelle wahrscheinlich eine geringere Varianz aufweisen. Ein Modell mit hoher Varianz weist normalerweise die folgenden Eigenschaften auf:
- Rauschen im Datensatz
- Potenzial zur Overfitting
- Komplexe Modelle
- Versuchen Sie, alle Datenpunkte so nah wie möglich zu platzieren
Bias-Varianz-Kompromiss
Bias/Varianz beim maschinellen Lernen bezieht sich auf das Problem, zwei Fehlerquellen (Bias-Fehler und Varianzfehler) gleichzeitig zu minimieren.
Wie in Abbildung 1 dargestellt, weist ein zu einfaches Modell (z. B. ein lineares Modell) eine hohe Verzerrung und eine geringe Varianz auf. Ist Ihr Modell dagegen sehr komplex und hat viele Parameter, weist es eine geringe Verzerrung und eine hohe Varianz auf. Wenn Sie den Verzerrungsfehler verringern, erhöht sich der Varianzfehler und umgekehrt. Diese Korrelation wird als Bias-Varianz-Kompromiss bezeichnet.
Um ein Gleichgewicht zwischen Unteranpassung und Overfitting (das bestmögliche Modell) zu finden, müssen Sie ein Modell finden, das den Gesamtfehler minimiert.
Gesamtfehler = Bias² + Varianz + irreduzibler Fehler
Um die Mathematik hinter dieser Gleichung zu verstehen, sehen Sie sich die folgende Ressource an .
Was ist Unteranpassung
Unteranpassung tritt auf, wenn ein Modell nicht in der Lage ist, genaue Vorhersagen auf der Grundlage von Trainingsdaten zu treffen und daher nicht die Kapazität besitzt, auf neuen Daten gut zu verallgemeinern. Ein weiterer Fall von Unteranpassung liegt vor, wenn ein Modell nicht ausreichend aus Trainingsdaten lernen kann (Abbildung 2), wodurch es schwierig wird, den vorherrschenden Trend zu erfassen (das Modell ist nicht in der Lage, eine Zuordnung zwischen der Eingabe- und der Zielvariable herzustellen).
Machine-Learning-Modelle mit Underfitting weisen in der Regel sowohl in Trainings- als auch in Testsätzen eine schlechte Leistung auf (wie das Kind, das nur Addition gelernt hat und weder in seinem Mathe-Aufgabenbuch noch während der Matheprüfung Aufgaben zu anderen Grundrechenarten lösen konnte). Underfitting-Modelle weisen in der Regel eine hohe Verzerrung und geringe Varianz auf.
Was ist Overfitting?
Ein Modell gilt als Overfitting, wenn es bei Trainingsdaten sehr gute Ergebnisse erzielt, bei Validierungsdaten jedoch nicht die gleiche Leistung erbringt (wie das Kind, das jede Matheaufgabe im Aufgabenheft auswendig gelernt hat und bei Aufgaben aus anderen Quellen Probleme hätte). Ein Overfitting Modell kann nicht gut generalisieren, da es das Rauschen und die Muster der Trainingsdaten bis zu dem Punkt lernt, an dem dies die Leistung des Modells bei neuen Daten negativ beeinflusst (Abbildung 3). Wenn das Modell Overfitting ist, führt selbst eine kleine Änderung der Ausgabedaten zu einer erheblichen Änderung des Modells. Overfitting Modelle weisen normalerweise eine geringe Verzerrung und eine hohe Varianz auf (Abbildung 5).
Einer der Hauptgründe für Overfitting sind Modelle mit zu hoher Kapazität. Die Kapazität eines Modells wird als die Fähigkeit beschrieben, aus einem bestimmten Datensatz zu lernen, und wird durch die Vapnik-Chervonenkis-Dimension (VC) gemessen. Um die VC-Dimension zu verstehen, definieren wir zunächst „Zersplitterung“.
Zersplitterung ist die Fähigkeit eines Modells, eine Gruppe von Punkten zu kategorisieren. Das Modell kann eine Funktion bereitstellen, die die Punkte in zwei diskrete Klassen unterteilt und dabei Überlappungen vermeidet. Zersplitterung unterscheidet sich von einfacher Klassifizierung, da potenziell alle Kombinationen von Beschriftungen für diese Punkte berücksichtigt werden. Die VC-Dimension eines Klassifikators ist einfach die größte Anzahl von Punkten, die er zersplittern kann.
Für jede der acht möglichen Punktbeschriftungen in Abbildung 5 können Sie einen linearen Klassifikator finden, der für sie „null Trainingsfehler“ erzielt. Darüber hinaus ist es offensichtlich, dass es keinen Satz von vier Punkten gibt, den diese Hypothesenklasse zerstören kann, daher beträgt die VC-Dimension für dieses Beispiel 3.
Unten sehen Sie ein Diagramm, das ein visuelles Verständnis von Overfitting und Unteranpassung bietet. Ihr Hauptziel als Ingenieur für maschinelles Lernen ist es, ein Modell zu erstellen, das gut verallgemeinert und korrekte Werte perfekt vorhersagt (in der Analogie mit dem Pfeil ist dies die Mitte des Ziels).
Underfitting beim maschinellen Lernen: So erkennen Sie Underfitting
Sie haben bereits ein grundlegendes Verständnis davon, was Underfitting und Overfitting beim maschinellen Lernen sind. Das nächste Ziel ist zu verstehen, wie man sie erkennt und verhindert.
So erkennen Sie eine Unteranpassung:
1) Trainings- und Testverlust: Wenn das Modell nicht gut genug passt, sind die Verluste sowohl beim Training als auch bei der Validierung sehr hoch. Mit anderen Worten: Bei einem nicht gut passenden Datensatz sind die Trainings- und Validierungsfehler hoch.
2) Zu vereinfachtes Vorhersagediagramm: Wenn ein Diagramm mit den Datenpunkten und der angepassten Kurve gezeichnet wird und die Klassifikatorkurve zu vereinfacht ist, ist Ihr Modell höchstwahrscheinlich nicht ausreichend angepasst. In diesen Fällen sollte ein komplexeres Modell ausprobiert werden.
So vermeiden Sie Underfitting
Sie können verschiedene Maßnahmen ergreifen, um eine Unteranpassung in KI- und maschinellen Lernmodellen zu verhindern:
1) Trainieren Sie ein komplexeres Modell – Mangelnde Modellkomplexität in Bezug auf die Dateneigenschaften ist der Hauptgrund für unterangepasste Modelle. Sie haben beispielsweise möglicherweise Daten mit mehr als 100.000 Zeilen und mehr als 30 Parametern. Wenn Sie Daten mit dem Random-Forest-Modell trainieren und die maximale Tiefe (die maximale Tiefe bestimmt die maximale Tiefe des Baums) auf eine kleine Zahl (z. B. 2) setzen, wird Ihr Modell definitiv unterangepasst sein. Das Trainieren eines komplexeren Modells (in dieser Hinsicht ein Modell mit einem höheren Wert für die maximale Tiefe) wird uns helfen, das Problem der Unteranpassung zu lösen.
2) Mehr Zeit für das Training – Ein vorzeitiger Trainingsabbruch kann zu einer Unteranpassung führen. Als Machine-Learning-Ingenieur können Sie die Anzahl der Epochen erhöhen oder die Trainingsdauer verlängern, um bessere Ergebnisse zu erzielen.
3) Rauschen aus den Daten eliminieren – Eine weitere Ursache für Unteranpassung ist das Vorhandensein von Ausreißern und falschen Werten im Datensatz. Datenbereinigungstechniken können bei der Lösung dieses Problems helfen.
4) Passen Sie die Regularisierungsparameter an – der Regularisierungskoeffizient kann sowohl zu einer Overfitting als auch zu einer Unteranpassung der Modelle führen.
5) Probieren Sie ein anderes Modell aus – wenn keines der oben genannten Prinzipien funktioniert, können Sie ein anderes Modell ausprobieren (normalerweise muss das neue Modell von Natur aus komplexer sein). Sie können beispielsweise versuchen, das lineare Modell durch ein polynomisches Modell höherer Ordnung zu ersetzen.
Overfitting vs. Unteranpassung von Modellen: Modelle, die zu Unteranpassung neigen
Einige Modelle neigen eher zu Unteranpassung als andere. Einige Beispiele für Modelle, die normalerweise unterangepasst sind, sind lineare Regression, lineare Diskriminanzanalyse und logistische Regression. Wie Sie anhand der oben genannten Namen erraten können, sind lineare Modelle oft zu einfach und neigen im Vergleich zu anderen Modellen eher zu Unteranpassung. Dies ist jedoch nicht immer der Fall, da Modelle auch Overfitting sein können – dies geschieht normalerweise, wenn es mehr Merkmale als Instanzen in den Trainingsdaten gibt.
Unten können Sie den Unterschied zwischen einem linearen Regressionsmodell (das nicht ausreichend angepasst ist) und einem polynomischen Modell höherer Ordnung im Python-Code grafisch darstellen.
Overfitting beim maschinellen Lernen: So erkennen Sie Overfitting
Beim maschinellen Lernen und der KI ist Overfitting eines der Hauptprobleme, mit denen ein Ingenieur konfrontiert werden kann. Einige der Techniken, mit denen Sie Overfitting erkennen können, sind die folgenden:
1) Verwenden Sie eine Resampling-Technik, um die Modellgenauigkeit abzuschätzen. Die beliebteste Resampling-Technik ist die k-fache Kreuzvalidierung. Sie ermöglicht es Ihnen, Ihr Modell k-mal an verschiedenen Teilmengen von Trainingsdaten zu trainieren und zu testen und eine Schätzung der Leistung eines maschinellen Lernmodells anhand unbekannter Daten zu erstellen. Der Nachteil dabei ist, dass dies zeitaufwändig ist und nicht auf komplexe Modelle wie tiefe neuronale Netzwerke angewendet werden kann.
2) Halten Sie einen Validierungssatz zurück. Sobald ein Modell mit dem Trainingssatz trainiert wurde, können Sie es mit dem Validierungsdatensatz auswerten und dann die Genauigkeit des Modells im Trainingsdatensatz und im Validierungsdatensatz vergleichen. Eine signifikante Abweichung in diesen beiden Ergebnissen lässt die Annahme zu, dass Sie ein Overfitting Modell haben.
3) Eine andere Möglichkeit, Overfitting zu erkennen, besteht darin, mit einem vereinfachten Modell zu beginnen, das als Benchmark dient. Wenn Sie mit diesem Ansatz komplexere Algorithmen ausprobieren, erhalten Sie ein allgemeines Verständnis dafür, ob sich die zusätzliche Komplexität des Modells lohnt, wenn überhaupt. Dieses Prinzip ist als Ockhams Rasiermessertest bekannt . Dieses Prinzip besagt, dass einfachere Problemlösungen komplexeren vorzuziehen sind, wenn sonst alles unverändert bleibt (wenn Ihr Modell nach der Verwendung eines viel komplexeren Modells nicht wesentlich besser wird, ist es vorzuziehen, ein einfacheres Modell zu verwenden).
So verhindern Sie Overfitting
Es gibt zahlreiche Möglichkeiten, Overfitting in Modellen des maschinellen Lernens zu vermeiden. Einige dieser Methoden sind unten aufgeführt.
1) Hinzufügen weiterer Daten – In den meisten Fällen kann das Hinzufügen weiterer Daten Machine-Learning-Modellen dabei helfen, das „wahre“ Muster des Modells zu erkennen, besser zu verallgemeinern und Overfitting zu vermeiden. Dies ist jedoch nicht immer der Fall, da das Hinzufügen weiterer Daten, die ungenau sind oder viele fehlende Werte aufweisen, zu noch schlechteren Ergebnissen führen kann.
2) Frühzeitiges Stoppen – Bei iterativen Algorithmen ist es möglich, die Leistung der Modelliteration zu messen. Bis zu einer bestimmten Anzahl von Iterationen verbessern neue Iterationen das Modell. Nach diesem Punkt kann sich die Fähigkeit des Modells zur Verallgemeinerung jedoch verschlechtern, da es beginnt, die Trainingsdaten zu überanzupassen. Frühzeitiges Stoppen bezieht sich auf das Stoppen des Trainingsprozesses, bevor der Lernende diesen Punkt erreicht.
3) Datenerweiterung – Beim maschinellen Lernen erhöhen Datenerweiterungstechniken die Datenmenge, indem sie bereits vorhandene Daten leicht verändern und neue Datenpunkte hinzufügen oder indem sie aus einem bereits vorhandenen Datensatz synthetische Daten erstellen.
4) Merkmale entfernen – Sie können irrelevante Aspekte aus den Daten entfernen, um das Modell zu verbessern. Viele Merkmale in einem Datensatz tragen möglicherweise nicht viel zur Vorhersage bei. Das Entfernen nicht wesentlicher Merkmale kann die Genauigkeit verbessern und Overfitting verringern.
5) Regularisierung – Regularisierung bezieht sich auf eine Reihe von Techniken, mit denen Sie Ihr Modell vereinfachen können. Der von Ihnen gewählte Ansatz wird durch das Modell bestimmt, das Sie trainieren. Sie können beispielsweise einen Strafparameter für eine Regression hinzufügen (L1- und L2-Regularisierung), einen Entscheidungsbaum beschneiden oder Dropout in einem neuronalen Netzwerk verwenden sentiment analysis.
6) Ensemble – Ensemblemethoden kombinieren Vorhersagen aus zahlreichen verschiedenen Modellen. Diese Methoden befassen sich nicht nur mit Overfitting, sondern helfen auch bei der Lösung komplexer Probleme des maschinellen Lernens (wie dem Zusammenfügen von aus verschiedenen Winkeln aufgenommenen Bildern zu einer Gesamtansicht der Umgebung). Die beliebtesten Ensemblemethoden sind Boosting und Bagging.
- Boosting – Bei der Boosting-Methode trainieren Sie nacheinander eine große Anzahl schwacher Lerner (eingeschränkte Modelle), und jede Sequenz lernt aus den Fehlern der vorherigen Sequenz. Dann kombinieren Sie alle schwachen Lerner zu einem einzigen starken Lerner.
- Bagging ist eine weitere Technik zur Reduzierung von Overfitting. Dabei wird eine große Anzahl starker Lerner (uneingeschränkte Modelle) trainiert und anschließend alle kombiniert, um ihre Vorhersagen zu optimieren.
Overfitting vs. Unteranpassung von Modellen: Modelle, die zu Overfitting neigen
Wie bereits erwähnt, gilt ein Modell als Overfitting, wenn es bei Trainingsdaten sehr gute Ergebnisse erzielt, bei Testdaten jedoch nicht die gleiche Leistung erbringt. Nichtparametrische und nichtlineare Modelle, die beim Lernen einer Zielfunktion flexibler sind, neigen eher zu Overfitting problemen. Daher enthalten viele nichtparametrische Methoden des maschinellen Lernens Parameter oder Ansätze, um die Menge der vom Modell gelernten Details zu begrenzen. Modelle wie Entscheidungsbäume und neuronale Netzwerke neigen eher zu Overfitting.
Um zu demonstrieren, dass dieses Modell anfällig für Overfitting ist, sehen wir uns das folgende Beispiel an. In diesem Beispiel wurde die Zufallsfunktion make classification() verwendet, um ein binäres (zwei Klassen) Klassifizierungsvorhersageproblem mit 10.000 Beispielen (Zeilen) und 20 Eingabefunktionen (Spalten) zu definieren. Die Ergebnisse werden unten angezeigt.
Wie Sie sehen, beginnt das Modell ab Tiefe 7 mit der Overfitting. Sie können Techniken wie das Beschneiden verwenden, um die Overfitting des Modells einzuschränken.
Die zentralen Thesen
Generalisierung ist die Fähigkeit des Modells, genaue Vorhersagen für neue, unbekannte Daten zu treffen, die dieselben Eigenschaften wie der Trainingssatz aufweisen. Wenn Ihr Modell jedoch nicht gut generalisieren kann, treten wahrscheinlich Über- oder Unteranpassungsprobleme auf.
Ein Modell ist unterangepasst, wenn es nicht in der Lage ist, genaue Vorhersagen auf der Grundlage von Trainingsdaten zu treffen, und es auch nicht die Kapazität besitzt, auf neuen Daten gut zu verallgemeinern. Unterangepasstheit tritt normalerweise auf, wenn wir mit linearen Modellen arbeiten (gewöhnliche kleinste Quadrate, logistische Modelle) und kann verhindert werden, indem man ein komplexeres Modell trainiert, mehr Merkmale auswählt, Rauschen aus den Daten eliminiert und die Regularisierung anpasst.
Wenn ein maschinelles Lernmodell hingegen Overfitting ist, ist seine Leistung mit den Testdaten schlechter als mit den Trainingsdaten. Nichtparametrische und nichtlineare Modelle, die beim Lernen einer Zielfunktion flexibler sind, sind anfälliger für Overfitting probleme. Zu den Techniken zur Vermeidung von Overfitting gehören Datenerweiterung, Regularisierung, Techniken zum frühzeitigen Stoppen, Kreuzvalidierung, Ensemblebildung usw.