Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow. Aurélien Géron

Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow - Aurélien Géron


Скачать книгу
den Validierungsdaten an. Wenn das Modell auf sehr wenigen Datenpunkten trainiert wird, kann es nicht anständig verallgemeinern, weswegen der Validierungsfehler zu Beginn recht groß ist. Sobald das Modell weitere Trainingsdaten kennenlernt, sinkt der Validierungsfehler allmählich. Allerdings kann auch hier eine Gerade irgendwann die Daten nicht gut modellieren, daher erreicht der Fehler ein Plateau in der Nähe der zweiten Kurve.

       Abbildung 4-15: Lernkurven

      Diese Lernkurven sind für ein Modell typisch, bei dem Underfitting vorliegt. Beide Kurven erreichen ein Plateau; sie liegen nah beieinander und recht weit oben.

image Bei Underfitting der Trainingsdaten verbessert sich Ihr Modell durch zusätzliche Trainingsdaten nicht. Sie benötigen ein komplexeres Modell oder müssen bessere Merkmale finden.

      Betrachten wir nun die Lernkurven eines polynomiellen Modells 10. Grades auf den gleichen Daten (Abbildung 4-16):

      from sklearn.pipeline import Pipeline

      polynomial_regression = Pipeline([

      ("poly_features", PolynomialFeatures(degree=10, include_bias=False)),

      ("lin_reg", LinearRegression()),

      ])

      plot_learning_curves(polynomial_regression, X, y)

      Diese Lernkurven erinnern ein wenig an die vorherigen, es gibt aber zwei sehr wichtige Unterschiede:

       Der Fehler auf den Trainingsdaten ist viel geringer als beim Modell mit der linearen Regression.

       Es gibt eine Lücke zwischen den Kurven. Das bedeutet, dass das Modell auf den Trainingsdaten deutlich besser abschneidet als auf den Validierungsdaten. Dies ist die Handschrift eines Modells mit Overfitting. Wenn Sie allerdings einen deutlich größeren Datensatz verwendeten, würden sich die zwei Kurven weiter annähern.

       Abbildung 4-16: Lernkurven für ein polynomielles Modell 10. Grades

image Eine Möglichkeit, ein Modell mit Overfitting zu verbessern, ist, so lange zusätzliche Trainingsdaten bereitzustellen, bis der Validierungsfehler den Trainingsfehler erreicht.

       Das Gleichgewicht zwischen Bias und Varianz

      Ein wichtiges theoretisches Ergebnis aus der Statistik und dem Machine Learning ist, dass sich der Verallgemeinerungsfehler eines Modells als Summe dreier sehr unterschiedlicher Fehler ausdrücken lässt:

       Bias

      Dieser Teil des Verallgemeinerungsfehlers wird durch falsche Annahmen verursacht, etwa die Annahme, dass die Daten linear sind, obwohl sie sich quadratisch verhalten. Ein Modell mit hohem Bias wird die Trainingsdaten vermutlich underfitten.8

       Varianz

      Dieser Teil kommt durch übermäßige Empfindlichkeit des Modells für kleine Variationen in den Trainingsdaten zustande. Ein Modell mit vielen Freiheitsgraden (wie etwa ein höhergradiges Polynom) hat vermutlich eine hohe Varianz und overfittet daher die Trainingsdaten leichter.

       Nicht reduzierbare Fehler

      Dieser Teil ist durch das Rauschen in den Daten selbst bedingt. Die einzige Möglichkeit, diesen Fehleranteil zu verringern, ist, die Daten zu säubern – z.B. die Datenquellen zu reparieren (wie etwa beschädigte Sensoren) oder Ausreißer zu erkennen und zu entfernen.

      Das Steigern der Komplexität eines Modells erhöht meistens dessen Varianz und senkt dessen Bias. Umgekehrt erhöht eine geringere Komplexität des Modells dessen Bias und senkt die Varianz. Deshalb nennt man dies ein Gleichgewicht.

       Regularisierte lineare Modelle

      Wie wir bereits in den Kapiteln 1 und 2 gesehen haben, ist die Regularisierung des Modells (also es einzuschränken) eine sinnvolle Möglichkeit, um Overfitting zu vermeiden: Je weniger Freiheitsgrade das Modell hat, desto schwieriger wird es, die Daten zu overfitten. Beispielsweise lässt sich ein polynomielles Modell einfach regularisieren, indem man den Grad des Polynoms verringert.

      Bei einem linearen Modell wird die Regularisierung normalerweise in Form von Nebenbedingungen auf den Gewichten des Modells umgesetzt. Wir werden nun drei unterschiedliche Arten von Nebenbedingungen betrachten: Ridge-Regression, Lasso-Regression und Elastic Net.

       Ridge-Regression

      Die Ridge-Regression (auch Regularisierung nach Tikhonov genannt) ist eine regularisierte Variante der linearen Regression: Zur Kostenfunktion wird der Regularisierungsterm image addiert. Dieser zwingt den Lernalgorithmus, nicht nur die Daten zu fitten, sondern auch die Gewichte des Modells so klein wie möglich zu halten. Ein Regularisierungsterm sollte nur beim Trainieren zur Kostenfunktion addiert werden. Ist das Modell erst einmal trainiert, sollten Sie die Vorhersageleistung des Modells mit dem nicht regularisierten Leistungsmaß evaluieren.

image Es tritt recht häufig auf, dass sich die Kostenfunktion beim Trainieren vom Qualitätsmaß beim Testen unterscheidet. Neben der Regularisierung besteht ein weiterer Grund darin, dass eine Kostenfunktion beim Trainieren leicht optimierbare Ableitungen haben sollte, während das Leistungsmaß beim Testen möglichst nah am eigentlichen Ziel sein sollte. Ein gutes Beispiel hierfür ist ein Klassifikator, der mit einer Kostenfunktion wie (dem in Kürze besprochenen) Log Loss trainiert wird, aber mit Relevanz und Sensitivität evaluiert wird.

      Der Hyperparameter α steuert, wie stark Sie das Modell regularisieren möchten. Bei α = 0 entspricht die Ridge-Regression exakt der linearen Regression. Wenn α sehr groß ist, werden sämtliche Gewichte annähernd null, und es ergibt sich eine horizontale Linie durch den Mittelwert der Daten. Formel 4-8 zeigt die Kostenfunktion bei der Ridge-Regression.9

       Formel 4-8: Kostenfunktion bei der Ridge-Regression

image

      Der Bias-Term θ0 ist nicht regularisiert (die Summe beginnt bei i = 1, nicht bei 0). Wenn wir w als Gewichtsvektor der Merkmale definieren (θ1 bis θn), ist der Regularisierungsterm einfach gleich ½(|| w ||2)2, wobei || w ||2 für die 2-Norm des Gewichtsvektors steht.10 Beim Gradientenverfahren


Скачать книгу