Was ist „Overfitting“ und „Underfitting“ beim maschinellen Lernen?

– S1E14

Da Ihre Hauptaufgabe darin besteht, einen Lernalgorithmus auszuwählen und ihn auf einigen Daten zu trainieren, Die beiden Dinge, die schief gehen können, sind „schlechter Algorithmus“ und „schlechte Daten“

Dies sind Beispiele für einen schlechten Algorithmus-

Overfitting-

Overfitting ist ein Modellierungsfehler, der auftritt, wenn eine Funktion zu eng an einen begrenzten Satz von Datenpunkten angepasst wird. Das bedeutet, dass das Modell in den Trainingsdaten gut funktioniert, aber nicht gut verallgemeinert werden kann.

Angenommen, Sie besuchen ein fremdes Land und der Taxifahrer nimmt Sie übers Ohr. Sie könnten versucht sein zu sagen, dass alle Taxifahrer in diesem Land Diebe sind

Überanpassung der Trainingsdaten

Komplexe Modelle wie tiefe neuronale Netzwerke können subtile Muster in den Daten erkennen, Aber wenn der Trainingssatz verrauscht oder zu klein ist (was zu Stichprobenrauschen führt), dann wird das Modell wahrscheinlich Muster im Rauschen selbst erkennen.

Angenommen, Sie fügen Ihrem Lebenszufriedenheitsmodell das Attribut des Ländernamens hinzu-

In diesem Fall kann ein komplexes Modell Muster erkennen, wie z.B. die Tatsache, dass alle Länder in den Trainingsdaten, die ein ‚w‘ in ihrem Namen haben, eine Lebenszufriedenheit von mehr als 7 haben: Neuseeland (7.3), Norwegen (7,4), Schweden (7,2) und die Schweiz (7,5).

Aber diese w-Zufriedenheitsregel lässt sich nicht auf Ruanda, Simbabwe usw. verallgemeinern.

Offensichtlich ist dieses Muster in den Trainingsdaten rein zufällig aufgetreten, aber das Modell hat keine Möglichkeit zu erkennen, ob ein Muster real ist oder einfach das Ergebnis von Rauschen in den Daten.

Overfitting tritt auf, wenn das Modell im Verhältnis zur Menge und zum Rauschen der Trainingsdaten zu komplex ist.

Hier sind die möglichen Lösungen:

  • Vereinfachen Sie das Modell, indem Sie eines mit weniger Parametern wählen (z.B., ein lineares Modell anstelle eines Polynommodells mit hohem Grad),
  • Die Anzahl der Attribute in den Trainingsdaten reduzieren oder das Modell einschränken*.
  • Mehr Trainingsdaten sammeln.
  • Das Rauschen in den Trainingsdaten reduzieren (z.B., Datenfehler beheben und Ausreißer entfernen).

Ein Modell einzuschränken, um es zu vereinfachen und das Risiko einer Überanpassung zu verringern, wird als Regularisierung bezeichnet.

Das lineare Modell, das wir zuvor definiert haben, hat beispielsweise zwei Parameter, θ0 und θ1.

Damit hat der Lernalgorithmus zwei Freiheitsgrade, um das Modell an die Trainingsdaten anzupassen: Er kann sowohl die Höhe (θ0 ) als auch die Steigung (θ1 ) der Linie verändern.

Wenn wir θ1 = 0 erzwingen würden, hätte der Algorithmus nur einen Freiheitsgrad und würde es viel schwerer haben, die Daten richtig anzupassen: Alles, was er tun könnte, wäre, die Linie nach oben oder unten zu verschieben, um so nah wie möglich an die Trainingsinstanzen heranzukommen, so dass sie um den Mittelwert herum enden würde.

Wenn wir dem Algorithmus erlauben, θ1 zu ändern, ihn aber zwingen, es klein zu halten, dann hat der Lernalgorithmus effektiv irgendwo zwischen einem und zwei Freiheitsgraden.

Sie wollen das richtige Gleichgewicht zwischen der perfekten Anpassung an die Trainingsdaten und der Einfachheit des Modells finden, um sicherzustellen, dass es gut verallgemeinert werden kann.

Regularisierung reduziert das Risiko der Überanpassung
  • Gestrichelte Linie – nur auf Kreise trainiert,
  • Gestrichelte Linie – trainiert sowohl auf Kreisen als auch auf Quadraten
  • Gestrichelte Linie – ist ein Modell, das nur auf Kreisen trainiert wurde

Sie sehen, dass die Regularisierung das Modell zu einer kleineren Steigung gezwungen hat: Dieses Modell passt nicht so gut zu den Trainingsdaten (Kreise) wie das erste Modell, aber es verallgemeinert besser auf neue Beispiele, die es beim Training nicht gesehen hat (Quadrate).

Das Ausmaß der beim Lernen anzuwendenden Regularisierung kann durch einen Hyperparameter gesteuert werden.

Ein Hyperparameter ist ein Parameter eines Lernalgorithmus (nicht des Modells). Er muss vor dem Training festgelegt werden und bleibt während des Trainings konstant.

Wenn man den Regularisierungs-Hyperparameter auf-

  • einen sehr großen Wert einstellt, erhält man ein fast flaches Modell (eine Steigung nahe Null), der Lernalgorithmus wird die Trainingsdaten mit ziemlicher Sicherheit nicht übererfüllen, aber es wird weniger wahrscheinlich sein, eine gute Lösung zu finden.

Das Abstimmen von Hyperparametern ist ein wichtiger Teil des Aufbaus eines Systems für maschinelles Lernen (ein ausführliches Beispiel wird in weiteren Episoden gezeigt).

Underfitting tritt auf, wenn Ihr Modell zu einfach ist, um die zugrundeliegende Struktur der Daten zu erlernen.

Ein lineares Modell der Lebenszufriedenheit ist anfällig für Underfit, die Realität ist einfach komplexer als das Modell, so dass seine Vorhersagen zwangsläufig ungenau sein werden.

Hier sind die wichtigsten Optionen zur Behebung dieses Problems-

  • Wählen Sie ein leistungsfähigeres Modell mit mehr Parametern.
  • Füttern Sie den Lernalgorithmus mit besseren Merkmalen (Feature Engineering).
  • Reduzieren Sie die Einschränkungen des Modells (z.B., den Regularisierungs-Hyperparameter reduzieren).

Weiter lesen – Testen und Validieren eines trainierten Modells

Schreibe einen Kommentar

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