Underfitting und Overfitting beim maschinellen Lernen

Ob Sie es glauben oder nicht, in der realen Welt werden wir nie einen sauberen und perfekten Datensatz haben. Jeder Datensatz wird einige seltsame oder fehlende Teile oder unausgewogene Daten enthalten. Oder wir als Entwickler von maschinellem Lernen werden einige Fehler oder Unzulänglichkeiten in unser Modell einbringen. Einer der Hauptgründe dafür ist, dass wir wollen, dass unser Modell ein zugrunde liegendes Muster beschreiben kann. Leider liegt es in der Natur von realen Daten, dass sie ein gewisses Maß an Rauschen und Ausreißern enthalten, und in den meisten Fällen wollen wir, dass das Modell das Signal in den Daten erfasst und nicht das Rauschen.

Um das zugrundeliegende Muster in den Daten genau zu erfassen, muss das Modell nun möglicherweise das Rauschen einbeziehen. Dies hat zur Folge, dass das abgeleitete Modell gut zu den Modellierungsdaten passt, aber nicht gut genug auf andere Stichproben verallgemeinert, die nicht in den Modellierungsprozess einbezogen wurden.

Es gibt eine Terminologie, um zu beschreiben, wie gut ein maschinelles Lernmodell lernt und auf neue Daten verallgemeinert, das ist Overfitting und Underfitting. Das Ziel eines guten maschinellen Lernmodells ist es, von einem Trainingsdatensatz auf einen beliebigen Datensatz aus dem Problembereich zu generalisieren. Dies ermöglicht es uns, Vorhersagen auf der Grundlage eines Datensatzes zu treffen, den das Modell noch nie gesehen hat.

In der Statistik bezeichnet man die Anpassung als den Grad der Annäherung des Modells an die Zielklasse/Funktion/Wert. Überanpassung und Unteranpassung sind die beiden Hauptursachen für eine schlechte Leistung von Algorithmen oder Modellen des maschinellen Lernens.

Lassen Sie uns verstehen, was Best Fit, Überanpassung und Unteranpassung ist? Gefolgt von einigen Codes.

Was ist Overfitting & Underfitting?

Overfitting bezieht sich auf das Szenario, in dem ein maschinelles Lernmodell nicht verallgemeinert werden kann oder sich nicht gut an einen ungesehenen Datensatz anpasst. Ein deutliches Zeichen für eine Überanpassung des maschinellen Lernens ist, wenn der Fehler im Test- oder Validierungsdatensatz viel größer ist als der Fehler im Trainingsdatensatz.

Überanpassung ist ein Begriff aus der Statistik, der sich auf einen Modellierungsfehler bezieht, der auftritt, wenn eine Funktion einem Datensatz zu genau entspricht. Infolgedessen kann die Überanpassung dazu führen, dass zusätzliche Daten nicht angepasst werden, was die Genauigkeit der Vorhersage zukünftiger Beobachtungen beeinträchtigen kann.

Überanpassung tritt auf, wenn ein Modell die Details und das Rauschen im Trainingsdatensatz in einem Ausmaß lernt, dass es die Leistung des Modells in einem neuen Datensatz negativ beeinflusst. Das bedeutet, dass das Rauschen oder die zufälligen Schwankungen im Trainingsdatensatz vom Modell aufgegriffen und als Konzepte gelernt werden. Das Problem besteht darin, dass diese Konzepte nicht auf neue Datensätze anwendbar sind und sich negativ auf die Generalisierungsfähigkeit des Modells auswirken.

Das Gegenteil von Overfitting ist Underfitting.

Underfitting bezieht sich auf ein Modell, das weder den Trainingsdatensatz modellieren noch auf neue Datensätze generalisieren kann. Ein unzureichend angepasstes Modell für maschinelles Lernen ist kein geeignetes Modell und fällt durch eine schlechte Leistung auf dem Trainingsdatensatz auf.

Unteranpassung wird oft nicht diskutiert, da sie leicht zu erkennen ist, wenn eine gute Leistungsmetrik vorhanden ist.

Verständnis anhand von Beispielen

Beispiel 1:

Sagen wir, drei Schüler haben sich auf eine Mathematikprüfung vorbereitet.

Der erste Schüler hat nur die mathematischen Operationen der Addition gelernt und andere mathematische Operationen wie Subtraktion, Division, Multiplikation usw. ausgelassen.

Der zweite Schüler hat ein besonders gutes Gedächtnis. So hat der zweite Schüler alle Aufgaben aus dem Lehrbuch auswendig gelernt.

Und der dritte Schüler hat alle mathematischen Operationen gelernt und ist gut auf die Prüfung vorbereitet.

In der Prüfung wird der Schüler nur die Fragen zur Addition lösen können und bei den Aufgaben oder Fragen zu den anderen mathematischen Operationen versagen.

Schüler zwei wird nur Fragen beantworten können, die zufällig im Lehrbuch vorkommen (da er es auswendig gelernt hat) und wird keine anderen Fragen beantworten können.

Schüler drei wird alle Prüfungsaufgaben einigermaßen gut lösen können.

Maschinelle Lernalgorithmen verhalten sich ähnlich wie unsere drei Schüler, manchmal sind die vom Algorithmus erzeugten Modelle ähnlich wie beim ersten Schüler. Sie lernen nur von einem kleinen Teil des Trainingsdatensatzes, in solchen Fällen ist das Modell Underfitting.

Manchmal prägt sich das Modell den gesamten Trainingsdatensatz ein, wie der zweite Student. Sie schneiden bei bekannten Instanzen sehr gut ab, sind aber bei ungesehenen Daten oder unbekannten Instanzen fehlerhaft. In solchen Fällen spricht man von einer Überanpassung des Modells.

Und wenn das Modell sowohl im Trainingsdatensatz als auch bei den ungesehenen Daten oder unbekannten Instanzen gut abschneidet, wie beim dritten Schüler, ist es eine gute Anpassung.

Beispiel 2:

Nehmen wir ein anderes Beispiel: Sie haben eine Stadt „X“ besucht und sind mit dem Taxi gefahren. Im Gespräch mit Freunden stellen Sie später fest, dass der Taxifahrer das Doppelte oder Dreifache des normalen Fahrpreises verlangt hat. Dies geschah, weil Sie neu in der Stadt waren und der Fahrer Sie buchstäblich über den Tisch gezogen hat.

Außerdem haben Sie bei einem Straßenverkäufer etwas gekauft, und auch hier haben Sie mehr bezahlt, als es wert war. Schließlich kommen Sie zu dem Schluss, dass die Menschen in der Stadt „X“ unehrlich sind. Das ist eine menschliche Eigenschaft: Menschen verallgemeinern oft. Auch Modelle des maschinellen Lernens haben diese Schwäche, wenn wir bei der Entwicklung nicht darauf achten, dass sie nicht voreingenommen sind: Modellierung, Auswahl von Algorithmen, Merkmalen, Trainingsdatensatz usw.

Angenommen, in derselben Stadt „X“ hat Ihnen ein anderer Taxifahrer angemessen und nach Taxameter abgerechnet, aber aufgrund Ihrer Erfahrung sind Sie der Meinung, dass auch dieser Fahrer mehr berechnet hat. Dies nennt man Überanpassung.

Aus den beiden obigen Beispielen können wir sagen, dass ein Modell, das in einem Test oder einem ungesehenen Datensatz gut abschneidet, ein bestangepasstes oder gutes Modell ist. Und wenn das Modell im Test- oder ungesehenen Datensatz nicht gut abschneidet, aber im Trainingsdatensatz gut abschneidet, dann handelt es sich um ein Overfit-Modell. Und jedes Modell, das weder im Trainingsdatensatz noch im Testdatensatz gut abgeschnitten hat, ist ein Underfit-Modell.

Nachfolgend sehen Sie ein Beispiel mit Python-Code.

Beispiel 3:

Dieses Beispiel demonstriert die Probleme von Underfitting und Overfitting und wie wir lineare Regression mit polynomialen Merkmalen verwenden können, um nichtlineare Funktionen zu approximieren.

Lassen Sie uns zwei Variablen generieren, sagen wir X und y. X wird eine Zufallszahl / Stichprobe haben, während y ein Teil der Kosinusfunktion ist.

Basierend auf den Daten wird das Diagramm so aussehen… einfaches Plotten von X und y.

Lassen Sie uns unser Modell mit linearer Regression trainieren, vorhersagen und visualisieren.

Lassen Sie uns das vorhergesagte Modell visualisieren.

Wir können sehen, dass die gerade Linie nicht in der Lage ist, die Muster in den Daten zu erfassen. Dies ist ein Beispiel für eine unzureichende Anpassung. Der Fehler wird bei diesem Modell sehr groß sein.

Betrachten wir das Polynommerkmal mit einigen Graden und trainieren wir unser Modell.

Wir sehen, dass eine lineare Funktion (Polynom mit Grad 1) nicht ausreicht, um die Trainingsmuster zu erfassen. Dies wird als Underfitting bezeichnet.

Ein Polynom vom Grad 4 approximiert die wahre Funktion fast perfekt. Dies wird als Best Fit oder Good Model bezeichnet.

Bei höheren Graden (mit Grad 15) wird das Modell jedoch den Trainingsdatensatz überanpassen, d.h. es lernt das Rauschen der Trainingsdaten.

Wir evaluieren quantitativ Overfitting / Underfitting mit Hilfe der Kreuzvalidierung.

Wir berechnen auch den mittleren quadratischen Fehler (MSE) auf dem Validierungsdatensatz; je höher dieser ist, desto unwahrscheinlicher ist es, dass das Modell korrekt aus dem Trainingsdatensatz verallgemeinert.

Der vollständige Code kann referenziert werden von
https://colab.research.google.com/drive/1XzngJPT8WUyHFW-JxhrawVhPurJlv1cA?usp=sharing

Erkennen von Überanpassung oder Unteranpassung

Eine zentrale Herausforderung bei der Erkennung jeder Art von Anpassung (sei es Unteranpassung oder beste Anpassung oder Überanpassung) ist fast unmöglich, bevor Sie die Daten testen. Sie kann dazu beitragen, die inhärenten Merkmale der Überanpassung, d. h. die Unfähigkeit, einen Datensatz zu verallgemeinern, zu beseitigen. Die Daten können daher in verschiedene Teilmengen aufgeteilt werden, um das Trainieren und Testen zu erleichtern. Die Daten werden in zwei Hauptteile aufgeteilt, d. h. einen Testdatensatz und einen Trainingsdatensatz.

Die Aufteilungstechnik kann je nach Art des Datensatzes variieren, und es kann jede beliebige Aufteilungstechnik verwendet werden.

Wenn unser Modell im Trainingsdatensatz viel besser abschneidet als im Testdatensatz, liegt wahrscheinlich eine Überanpassung vor. Beispielsweise hat unser Modell im Trainingsdatensatz eine Genauigkeit von 99 % erreicht, im Testdatensatz jedoch nur 50-55 %. Es ist Overfitting des Modells und hat auf dem ungesehenen Datensatz nicht gut abgeschnitten.

Wenn unser Modell auf dem Testdatensatz viel besser abschneidet als auf dem Trainingsdatensatz, dann sind wir wahrscheinlich underfitting.

Und wenn unser Modell sowohl auf dem Trainings- als auch auf dem Testdatensatz gut abschneidet, dann haben wir die beste Anpassung. Unser Modell hat beispielsweise eine Genauigkeit von 90 % im Trainingsdatensatz und eine Genauigkeit von 88 % – 92 % im Testdatensatz. Es ist das am besten geeignete Modell.

Eine weitere einfache Möglichkeit, dies zu erkennen, ist die Kreuzvalidierung. Dabei wird versucht, das trainierte Modell mit einem neuen Datensatz zu untersuchen, um seine Vorhersagegenauigkeit zu überprüfen. Bei einem Datensatz wird ein Teil davon zurückgehalten (z. B. 30 %), während der Rest für das Training des Modells verwendet wird. Sobald das Modell trainiert wurde, werden die zurückbehaltenen Daten verwendet, um die Genauigkeit des Modells im Vergleich zu den Daten, die beim Training verwendet wurden, zu überprüfen. Eine signifikante Abweichung dieser beiden Werte deutet auf Überanpassung hin.

Verhindern von Über- oder Unteranpassung

Die Erkennung von Über- oder Unteranpassung ist nützlich, löst aber nicht das Problem. Zum Glück gibt es mehrere Möglichkeiten, die Sie ausprobieren können. Hier sind einige der beliebtesten Lösungen.

Die Abhilfe für Underfitting besteht darin, weiterzugehen und andere Algorithmen für maschinelles Lernen auszuprobieren. Dennoch bietet es einen guten Kontrast zum Problem der Überanpassung.

Um Überanpassung zu verhindern, gibt es verschiedene Möglichkeiten, von denen im Folgenden einige vorgestellt werden.

  • Kreuzvalidierung:
    • Kreuzvalidierung ist eine wirksame Vorbeugungsmaßnahme gegen Überanpassung.
    • Verwenden Sie Ihre anfänglichen Trainingsdaten, um mehrere Mini-Train-Test-Splits zu erzeugen. Verwenden Sie diese Splits, um Ihr Modell abzustimmen.
    • Bei der standardmäßigen k-fachen Kreuzvalidierung werden die Daten in k Teilmengen, so genannte Folds, unterteilt. Dann wird der Algorithmus iterativ auf k-1 Folds trainiert, während der verbleibende Fold als Testdatensatz verwendet wird (der so genannte „Holdout-Fold“).
    • Bei der Kreuzvalidierung können Sie die Hyperparameter nur mit Ihrem ursprünglichen Trainingsdatensatz abstimmen. Auf diese Weise können Sie Ihren Testdatensatz als wirklich ungesehenen Datensatz für die Auswahl Ihres endgültigen Modells beibehalten.
  • Trainieren Sie mit mehr Daten
    • Es wird nicht immer funktionieren, aber das Training mit mehr Daten kann den Algorithmen helfen, das Signal besser zu erkennen.
    • Wenn der Benutzer mehr Trainingsdaten in das Modell einspeist, wird es nicht mehr in der Lage sein, alle Stichproben zu übertreffen, und es wird gezwungen sein, zu generalisieren, um Ergebnisse zu erzielen.
    • Um die Genauigkeit des Modells zu erhöhen, sollte der Benutzer kontinuierlich mehr Daten sammeln.
    • Diese Methode gilt jedoch als teuer, und daher sollte der Benutzer sicherstellen, dass die verwendeten Daten relevant und sauber sind.
    • Das ist natürlich nicht immer der Fall. Wenn man einfach nur mehr verrauschte Daten hinzufügt, wird diese Technik nicht helfen. Deshalb sollten Sie immer sicherstellen, dass Ihre Daten sauber und relevant sind.
  • Datenerweiterung
    • Eine Alternative zum Training mit mehr Daten ist die Datenerweiterung, die im Vergleich zu ersterer weniger kostspielig ist.
    • Wenn Sie nicht in der Lage sind, ständig mehr Daten zu sammeln, können Sie die verfügbaren Datensätze vielfältig erscheinen lassen.
    • Datenerweiterung lässt eine Datenprobe jedes Mal etwas anders aussehen, wenn sie vom Modell verarbeitet wird. Dieser Prozess lässt jeden Datensatz für das Modell einzigartig erscheinen und verhindert, dass das Modell die Eigenschaften der Datensätze erlernt.
  • Komplexität reduzieren oder Datenvereinfachung
    • Overfitting kann aufgrund der Komplexität eines Modells auftreten, so dass es dem Modell selbst bei großen Datenmengen immer noch gelingt, den Trainingsdatensatz zu überanpassen.
    • Die Methode der Datenvereinfachung wird verwendet, um das Overfitting zu reduzieren, indem die Komplexität des Modells so weit verringert wird, dass es nicht übermäßig angepasst wird.
    • Zu den Maßnahmen, die implementiert werden können, gehören das Beschneiden eines Entscheidungsbaums, die Verringerung der Anzahl von Parametern in einem neuronalen Netz und die Verwendung von Dropout bei einem neuronalen Netz.
    • Die Vereinfachung des Modells kann auch dazu führen, dass das Modell leichter wird und schneller läuft.
  • Regularisierung
    • Regularisierung bezieht sich auf eine breite Palette von Techniken, mit denen ein Modell künstlich vereinfacht werden kann.
    • Die Methode hängt von der Art des Lerners ab, den Sie verwenden. Sie können zum Beispiel einen Entscheidungsbaum beschneiden, Dropout bei einem neuronalen Netz verwenden oder einen Strafparameter zur Kostenfunktion bei der Regression hinzufügen.
    • Oft ist die Regularisierungsmethode auch ein Hyperparameter, was bedeutet, dass sie durch Kreuzvalidierung abgestimmt werden kann.
    • Um mehr über Regularisierung zu erfahren, lesen Sie den Artikel https://datascience.foundation/datatalk/regularization-machine-learning-teacher, der von Abhishek Mishra geschrieben und sehr gut erklärt wurde.
  • Ensembling
    • Ensembles sind Methoden des maschinellen Lernens zur Kombination von Vorhersagen aus mehreren separaten Modellen. Es gibt einige verschiedene Methoden für das Ensembling, aber die zwei häufigsten sind: Boosting und Bagging.
    • Boosting arbeitet mit einfachen Basismodellen, um deren Gesamtkomplexität zu erhöhen. Es trainiert eine große Anzahl schwacher Lerner, die in einer Sequenz angeordnet sind, so dass jeder Lerner in der Sequenz aus den Fehlern des Lerners vor ihm lernt.
    • Boosting versucht, die Vorhersageflexibilität einfacher Modelle zu verbessern.
    • Boosting kombiniert alle schwachen Lerner in der Sequenz, um einen starken Lerner hervorzubringen.
    • Bagging arbeitet, indem es viele starke Lerner trainiert, die in einem parallelen Muster angeordnet sind, und sie dann kombiniert, um ihre Vorhersagen zu optimieren.
    • Bagging versucht, die Wahrscheinlichkeit einer Überanpassung komplexer Modelle zu verringern.
    • Bagging kombiniert dann alle starken Lerner miteinander, um ihre Vorhersagen zu „glätten“.
  • Frühes Stoppen
    • Wenn man einen Lernalgorithmus iterativ trainiert, kann man messen, wie gut jede Iteration des Modells abschneidet.
    • Bis zu einer bestimmten Anzahl von Iterationen verbessern neue Iterationen das Modell. Nach diesem Punkt kann die Fähigkeit des Modells zur Verallgemeinerung jedoch schwächer werden, da es beginnt, die Trainingsdaten zu sehr anzupassen.
    • Frühes Stoppen bezieht sich auf das Stoppen des Trainingsprozesses, bevor der Lerner diesen Punkt erreicht.
    • Heute wird diese Technik hauptsächlich beim Deep Learning verwendet, während andere Techniken (z. B. Regularisierung) werden beim klassischen maschinellen Lernen bevorzugt.
  • Bei linearen und SVM-Modellen muss eine Regularisierung hinzugefügt werden.
  • Bei Entscheidungsbaummodellen kann die maximale Tiefe reduziert werden.
  • Bei neuronalen Netzen kann eine Dropout-Schicht eingeführt werden, um Overfitting zu reduzieren.

Kurzzusammenfassung

Overfitting ist ein Modellierungsfehler, der zu einer Verzerrung des Modells führt, weil es zu eng mit dem Datensatz verbunden ist.

Overfitting führt dazu, dass das Modell nur für den eigenen Datensatz relevant ist und für alle anderen Datensätze irrelevant ist.

Zu den Methoden, die zur Vermeidung von Overfitting eingesetzt werden, gehören Ensembling, Datenvergrößerung, Datenvereinfachung und Kreuzvalidierung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.