Gradient Descent ist eine mathematische Methode, mit der iterativ die Gewichte und der Bias ermittelt werden, die das Modell mit dem geringsten Verlust erzeugen. Beim Gradientenabstieg werden das optimale Gewicht und der optimale Bias ermittelt, indem der folgende Prozess für eine benutzerdefinierte Anzahl von Iterationen wiederholt wird.
Das Modell wird mit zufälligen Gewichten und Bias-Werten nahe null trainiert und wiederholt dann die folgenden Schritte:
Berechne den Verlust mit dem aktuellen Gewicht und Bias.
Richtung ermitteln, in die die Gewichte und der Bias verschoben werden müssen, um den Verlust zu verringern.
Verschieben Sie die Gewichts- und Bias-Werte ein wenig in die Richtung, in der der Verlust geringer wird.
Kehren Sie zu Schritt 1 zurück und wiederholen Sie den Vorgang, bis das Modell den Verlust nicht weiter reduzieren kann.
Das folgende Diagramm zeigt die iterativen Schritte, die beim Gradientenabstieg ausgeführt werden, um die Gewichte und den Bias zu finden, die das Modell mit dem geringsten Verlust erzeugen.
Abbildung 11. Der Gradientenabstieg ist ein iterativer Prozess, bei dem die Gewichte und der Bias ermittelt werden, die das Modell mit dem geringsten Verlust erzeugen.
Klicken Sie auf das Pluszeichen, um mehr über die Mathematik hinter dem Gradientenabstieg zu erfahren.
Konkret können wir die Schritte des Gradientenabstiegs anhand eines kleinen Datasets mit sieben Beispielen für das Gewicht eines Autos in Pfund und seine MPG-Bewertung durchgehen:
Pfund in Tausend (Funktion) | Meilen pro Gallone (Label) |
---|---|
3,5 | 18 |
3,69 | 15 |
3.44 | 18 |
3.43 | 16 |
4.34 | 15 |
4,42 | 14 |
2,37 | 24 |
- Das Modell wird trainiert, indem das Gewicht und die Bias auf null gesetzt werden:
- MSE-Verlust mit den aktuellen Modellparametern berechnen:
- Berechnen Sie die Steigung der Tangente an die Verlustfunktion für jedes Gewicht und den Bias:
- Bewegen Sie sich ein kleines Stück in Richtung der negativen Steigung, um das nächste Gewicht und den nächsten Bias zu erhalten. Für den Moment definieren wir den „kleinen Betrag“ willkürlich als 0, 01:
Klicken Sie auf das Pluszeichen, um mehr über die Berechnung der Steigung zu erfahren.
Um die Steigung der Tangenten an Gewicht und Bias zu ermitteln, leiten wir die Verlustfunktion nach Gewicht und Bias ab und lösen dann die Gleichungen.
Die Gleichung für die Vorhersage lautet:
$ f_{w,b}(x) = (w*x)+b $.
Wir schreiben den tatsächlichen Wert als „$y$“.
Der MSE wird so berechnet:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
Dabei steht $i$ für das $i$-te Trainingsbeispiel und $M$ für die Anzahl der Beispiele.
Die Ableitung der Verlustfunktion in Bezug auf das Gewicht wird so geschrieben:
$ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
und wird so ausgewertet:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $
Zuerst summieren wir jeden vorhergesagten Wert minus den tatsächlichen Wert und multiplizieren das Ergebnis dann mit dem doppelten Feature-Wert. Anschließend teilen wir die Summe durch die Anzahl der Beispiele. Das Ergebnis ist die Steigung der Tangente an den Wert des Gewichts.
Wenn wir diese Gleichung mit einem Gewicht und einem Bias von null lösen, erhalten wir -119,7 für die Steigung der Linie.
Bias-Ableitung Die Ableitung der Verlustfunktion in Bezug auf den Bias wird so geschrieben:
$ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
und wird so ausgewertet:
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $
Zuerst wird jeder vorhergesagte Wert minus dem tatsächlichen Wert summiert und dann mit zwei multipliziert. Anschließend teilen wir die Summe durch die Anzahl der Beispiele. Das Ergebnis ist die Steigung der Linie, die tangential zum Wert des Bias verläuft.
Wenn wir diese Gleichung mit einem Gewicht und einem Bias von null lösen, erhalten wir -34,3 für die Steigung der Linie.
Verwenden Sie das neue Gewicht und den neuen Bias, um den Verlust und die Wiederholung zu berechnen. Nach sechs Iterationen erhalten wir die folgenden Gewichte, Bias und Verluste:
Ausführung | Gewicht | Bias | Verlust (MSE) |
---|---|---|---|
1 | 0 | 0 | 303,71 |
2 | 1.20 | 0,34 | 170,84 |
3 | 2,05 | 0.59 | 103.17 |
4 | 2,66 | 0.78 | 68,70 |
5 | 3.09 | 0,91 | 51.13 |
6 | 3,40 | 1,01 | 42.17 |
Sie sehen, dass der Verlust mit jedem aktualisierten Gewicht und Bias geringer wird. In diesem Beispiel haben wir nach sechs Iterationen aufgehört. In der Praxis wird ein Modell so lange trainiert, bis es konvergiert. Wenn ein Modell konvergiert, wird der Verlust durch zusätzliche Iterationen nicht weiter reduziert, da durch den Gradientenabstieg die Gewichte und der Bias gefunden wurden, die den Verlust nahezu minimieren.
Wenn das Modell nach der Konvergenz weiter trainiert wird, beginnt der Verlust, in geringem Maße zu schwanken, da das Modell die Parameter kontinuierlich um ihre niedrigsten Werte herum aktualisiert. Das kann es erschweren, zu überprüfen, ob das Modell tatsächlich konvergiert ist. Um zu bestätigen, dass das Modell konvergiert ist, sollten Sie das Training fortsetzen, bis sich der Verlust stabilisiert hat.
Modellkonvergenz und Verlustkurven
Beim Trainieren eines Modells wird häufig eine Verlustkurve betrachtet, um festzustellen, ob das Modell konvergiert ist. Die Verlustkurve zeigt, wie sich der Verlust während des Trainings des Modells ändert. So sieht eine typische Verlustkurve aus. Der Verlust ist auf der Y-Achse und die Iterationen auf der X-Achse dargestellt:
Abbildung 12. Verlustkurve, die zeigt, dass das Modell um die 1.000. Iteration herum konvergiert.
Sie sehen, dass der Verlust in den ersten Iterationen drastisch abnimmt,dann allmählich sinkt und sich um die 1.000. Iteration herum stabilisiert. Nach 1.000 Iterationen können wir uns ziemlich sicher sein, dass das Modell konvergiert ist.
In den folgenden Abbildungen wird das Modell an drei Punkten während des Trainingsprozesses dargestellt: am Anfang, in der Mitte und am Ende. Wenn Sie den Zustand des Modells in Momentaufnahmen während des Trainingsprozesses visualisieren, wird die Verbindung zwischen dem Aktualisieren der Gewichte und des Bias, dem Reduzieren des Verlusts und der Modellkonvergenz verdeutlicht.
In den Abbildungen verwenden wir die abgeleiteten Gewichte und den Bias in einer bestimmten Iteration, um das Modell darzustellen. Im Diagramm mit den Datenpunkten und dem Modell-Snapshot zeigen blaue Verlustlinien vom Modell zu den Datenpunkten den Verlust an. Je länger die Linien sind, desto höher ist der Verlust.
In der folgenden Abbildung sehen wir, dass das Modell um die zweite Iteration herum aufgrund des hohen Verlusts keine guten Vorhersagen mehr treffen kann.
Abbildung 13. Verlustkurve und Snapshot des Modells zu Beginn des Trainingsprozesses.
Nach etwa 400 Iterationen hat der Gradientenabstieg das Gewicht und den Bias gefunden, mit denen sich ein besseres Modell erstellen lässt.
Abbildung 14. Verlustkurve und Momentaufnahme des Modells etwa in der Mitte des Trainings.
Nach etwa 1.000 Iterationen ist das Modell konvergiert und hat den niedrigstmöglichen Verlust.
Abbildung 15. Verlustkurve und Snapshot des Modells gegen Ende des Trainingsprozesses.
Übung: Wissen testen
Konvergenz und konvexe Funktionen
Die Verlustfunktionen für lineare Modelle erzeugen immer eine konvexe Oberfläche. Wenn ein lineares Regressionsmodell konvergiert, wissen wir, dass das Modell die Gewichte und den Bias gefunden hat, die den geringsten Verlust erzeugen.
Wenn wir die Verlustoberfläche für ein Modell mit einem Merkmal grafisch darstellen, sehen wir die konvexe Form. Das Folgende ist die Verlustoberfläche für einen hypothetischen Datensatz mit Meilen pro Gallone. Das Gewicht ist auf der x-Achse, der Bias auf der y-Achse und der Verlust auf der z-Achse:
Abbildung 16: Verlustoberfläche mit konvexer Form.
In diesem Beispiel führen ein Gewicht von -5,44 und ein Bias von 35,94 zum niedrigsten Verlust bei 5,54:
Abbildung 17. Verlustoberfläche mit den Gewichts- und Bias-Werten, die den niedrigsten Verlust ergeben.
Ein lineares Modell konvergiert, wenn der minimale Verlust erreicht ist. Daher führen zusätzliche Iterationen nur dazu, dass die Werte für Gewicht und Bias durch den Gradientenabstieg in sehr kleinen Schritten um das Minimum herum verschoben werden. Wenn wir die Gewichts- und Bias-Punkte während des Gradientenabstiegs grafisch darstellen, würden sie wie ein Ball aussehen, der einen Hügel hinunterrollt und schließlich an dem Punkt anhält, an dem es keine Abwärtsneigung mehr gibt.
Abbildung 18. Verlustdiagramm mit Punkten für den Gradientenabstieg, die am niedrigsten Punkt des Diagramms enden.
Die schwarzen Verlustpunkte bilden die genaue Form der Verlustkurve: ein steiler Abfall, bevor sie allmählich abfällt, bis sie den niedrigsten Punkt auf der Verlustoberfläche erreicht hat.
Das Modell findet fast nie das genaue Minimum für jedes Gewicht und jede Bias-Variable, sondern einen Wert, der sehr nahe daran liegt. Außerdem ist es wichtig zu beachten, dass das Minimum für die Gewichte und den Bias nicht dem Verlust von null entspricht, sondern nur einem Wert, der den niedrigsten Verlust für diesen Parameter erzeugt.
Mithilfe der Werte für Gewichtung und Bias, die den geringsten Verlust ergeben (in diesem Fall eine Gewichtung von -5,44 und ein Bias von 35,94), können wir das Modell grafisch darstellen, um zu sehen, wie gut es zu den Daten passt:
Abbildung 19. Modell, das mit den Gewichtungs- und Bias-Werten dargestellt wird, die den niedrigsten Verlust ergeben.
Dies wäre das beste Modell für diesen Datensatz, da keine anderen Gewichts- und Bias-Werte ein Modell mit geringerem Verlust ergeben.