Lineare Regression: Gradientenabstieg

Das Gradientenverfahren ist ein mathematisches Verfahren, das iterativ die Gewichtungen und Verzerrungen ermittelt, die das Modell mit dem geringsten Verlust. Beim Gradientenverfahren wird die beste Gewichtung und Verzerrung gefunden indem Sie den folgenden Prozess für mehrere benutzerdefinierte Iterationen wiederholen.

Das Modell beginnt mit dem Training mit randomisierten Gewichten und Verzerrungen und wiederholt dann die folgenden Schritte:

  1. Berechnen Sie den Verlust mit der aktuellen Gewichtung und Verzerrung.

  2. Bestimmen Sie die Richtung, in die die Gewichtungen und Verzerrungen bewegt werden sollen, um den Verlust zu reduzieren.

  3. Verschieben Sie die Werte für Gewichtung und Gewichtung geringfügig in die Richtung, in die reduziert wird. Verlust.

  4. Kehren Sie zu Schritt 1 zurück und wiederholen Sie den Vorgang, bis das Modell den noch mehr verlieren.

Das folgende Diagramm zeigt die iterativen Schritte des Gradientenverfahrens, mit denen Gewichtungen und Verzerrungen, die das Modell mit dem geringsten Verlust erzeugen.

Abbildung 12. Darstellung des Gradientenverfahrens

Abbildung 12. Das Gradientenverfahren ist ein iterativer Prozess zur Ermittlung von Gewichtungen, und Verzerrungen, die das Modell mit dem geringsten Verlust erzeugen.

Klicken Sie auf das Pluszeichen, um mehr über die Mathematik des Gradientenverfahrens zu erfahren.

Auf einer konkreten Ebene können wir die Schritte des Gradientenverfahrens durchlaufen, anhand eines kleinen Datasets mit sieben Beispielen zum Gewicht eines Autos in Pfund und seine Bewertung in Kilometern pro Gallone:

Pfund in 1.000 s (Feature) 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
  1. Das Modell beginnt mit dem Training, indem es die Gewichtung und Verzerrung auf null setzt:
  2. $$ \small{Weight:\ 0} $$ $$ \small{Bias:\ 0} $$ $$ \small{y = 0 + 0(x_1)} $$
  3. Berechnen Sie den MSE-Verlust mit den aktuellen Modellparametern:
  4. $$ \small{Loss = \frac{(18-0)^2 + (15-0)^2 + (18-0)^2 + (16-0)^2 + (15-0)^2 + (14-0)^2 + (24-0)^2}{7}} $$ $$ \small{Loss= 303.71} $$
  5. Steigung des Tangens zur Verlustfunktion bei jeder Gewichtung berechnen und die Voreingenommenheit:
  6. $$ \small{Weight\ slope: -119.7} $$ $$ \small{Bias\ slope: -34.3} $$

    Klicken Sie auf das Pluszeichen, um mehr über die Berechnung der Steigung zu erfahren.

    Um die Steigung der Linien zu ermitteln, die an die Gewichtsangabe verlaufen, Die Verlustfunktion wird mit Gewichtung und Voreingenommenheit respektieren, und dann das Problem und Gleichungen.

    Wir schreiben die Gleichung zur Erstellung einer Vorhersage so auf:
    $ f_{w,b}(x) = (w*x)+b $.

    Der tatsächliche Wert wird wie folgt geschrieben: $ y $.

    Der MSE wird wie folgt berechnet:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
    Dabei steht $i$ für das Trainingsbeispiel $ith$ und $M$ für das Trainingsbeispiel. die Anzahl der Beispiele.

    Ableitung der Gewichtung

    Die Ableitung der Verlustfunktion in Bezug auf die Gewichtung 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 addieren wir jeden vorhergesagten Wert minus den tatsächlichen Wert. und dann mit dem Doppelten des Merkmalswerts multiplizieren. Dann teilen wir die Summe durch die Anzahl der Beispiele. Das Ergebnis ist die Steigung der geraden Tangente an den Wert. des Gewichts.

    Wenn wir diese Gleichung mit einer Gewichtung und Verzerrung lösen, erhalten wir -119, 7 für die Steigung der Linie.

    Voreingenommenheitsableitung

    Die Ableitung der Verlustfunktion nach Voreingenommenheit wird geschrieben als:
    $ \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 addieren wir jeden vorhergesagten Wert minus den tatsächlichen Wert. und dann mit zwei multiplizieren. Dann dividieren wir die Summe durch die Anzahl der Beispiele. Das Ergebnis ist die Steigung der Linie was die Verzerrung bedeutet.

    Wenn wir diese Gleichung mit einer Gewichtung und Verzerrung lösen, erhalten wir -34, 3 für die Steigung der Linie.

  7. Bewegen Sie sich etwas in Richtung der negativen Steigung, um Gewichtung und Verzerrungen. Vorerst definieren wir willkürlich, „geringe Menge“ als 0,01:
  8. $$ \small{New\ weight = old\ weight - (small\ amount * weight\ slope)} $$ $$ \small{New\ bias = old\ bias - (small\ amount * bias\ slope)} $$ $$ \small{New\ weight = 0 - (0.01)*(-119.7)} $$ $$ \small{New\ bias = 0 - (0.01)*(-34.3)} $$ $$ \small{New\ weight = 1.2} $$ $$ \small{New\ bias = 0.34} $$

Verwenden Sie die neue Gewichtung und Verzerrung, um den Verlust und die Wiederholung zu berechnen. Abschluss erhalten wir die folgenden Gewichtungen, Verzerrungen, und Verlusten:

Ausführung Gewicht Verzerrung Verlust (MSE)
1 0 0 303,71
2 1.2 0,34 170,67
3 2,75 0.59 67,3
4 3,17 0.72 50,63
5 3,47 0,82 42,1
6 3,68 0,9 37,74

Wie Sie sehen, sinkt der Verlust mit jeder aktualisierten Gewichtung und Verzerrung. In diesem Beispiel haben wir die Wiedergabe nach sechs Iterationen beendet. In der Praxis kann ein Modell bis sie konvergent. Wenn ein Modell konvergent, verringern zusätzliche Iterationen den Verlust nicht weiter da beim Gradientenverfahren die Gewichtungen und Verzerrungen den Verlust zu minimieren.

Wenn das Modell die Konvergenz weiter trainiert, steigt der Verlust leicht schwanken, da das Modell kontinuierlich Parameter um ihre niedrigsten Werte herum. Dies kann es schwierig machen, ob das Modell tatsächlich konvergiert ist. Modell bestätigen konvergiert ist, sollten Sie so lange trainieren, bis der Verlust stabilisiert sind.

Konvergenz- und Verlustkurven des Modells

Beim Trainieren eines Modells geht es oft um Verluste Kurve, um zu bestimmen, ob das Modell konvergent. Die Verlustkurve zeigt, wie sich der Verlust beim Trainieren des Modells ändert. Im Folgenden sehen Sie, was ein typischer Verlust wie die Kurve aussieht. Der Verlust befindet sich auf der Y-Achse und die Iterationen auf der X-Achse:

Abbildung 13. Diagramm einer Verlustkurve mit steilem Rückgang und dann leichtem Rückgang.

Abbildung 13. Verlustkurve, die zeigt, wie das Modell um die 1.000. Wiederholungsmarke.

Sie sehen, dass der Verlust in den ersten Iterationen drastisch abnimmt, die dann allmählich abnimmt,bevor sie um die 1.000. Iteration herum ausfällt. . Nach 1.000 Iterationen können wir mit hoher Sicherheit sicher sein, konvergiert wurden.

In den folgenden Abbildungen zeichnen wir das Modell an drei Punkten während des Trainings. Anfang, Mitte und Ende. Modellstatus visualisieren während des Trainingsvorgangs eine Verbindung zwischen den Aktualisierungen und Gewichtungen und Verzerrungen, Reduzierung von Verlusten und Modellkonvergenz.

In den Abbildungen verwenden wir die abgeleiteten Gewichtungen und Verzerrungen stellen das Modell dar. Im Diagramm mit den Datenpunkten und dem Modell-Snapshot Blaue Verlustlinien vom Modell zu den Datenpunkten zeigen das Ausmaß des Verlusts an. Die desto mehr Verluste treten auf.

In der folgenden Abbildung sehen wir, dass das Modell Vorhersagen aufgrund des hohen Verlusts nicht möglich sind.

Abbildung 14. Verlustkurve und entsprechendes Diagramm des Modells, das von den Datenpunkten wegneigt.

Abbildung 14. Verlustkurve und Snapshot des Modells zu Beginn der Schulungsprozess.

Etwa zur 400. Iteration zeigt der Gradientenabstieg das Ergebnis Gewichtung und Verzerrungen, die ein besseres Modell erzeugen.

Abbildung 15: Verlustkurve und entsprechendes Diagramm des Modells, das die Datenpunkte durchschneidet, aber nicht im optimalen Winkel dargestellt wird.

Abbildung 15. Verlustkurve und Snapshot des Modells zur Mitte des Trainings.

Nach der 1.000. Iteration sehen wir, dass das Modell konvergiert ist, um ein Modell mit geringstmöglichem Verlust zu erstellen.

Abbildung 16: Verlustkurve und entsprechendes Diagramm des Modells, das gut zu den Daten passt.

Abbildung 16. Verlustkurve und Snapshot des Modells gegen Ende des Trainings .

Übung: Wissenstest

Welche Rolle spielt der Gradientenabstieg bei der linearen Regression?
Das Gradientenverfahren ist ein iterativer Prozess, Gewichtungen und Verzerrungen, die den Verlust minimieren.
Das Gradientenverfahren hilft zu bestimmen, welche Art von Verlust Trainieren eines Modells wie L1 oder L2
Der Gradientenabstieg ist nicht an der Auswahl eines Verlusts beteiligt für das Modelltraining.
Beim Gradientenabstieg werden Ausreißer aus dem Dataset entfernt, um das Modell zu unterstützen bessere Vorhersagen zu treffen.
Der Gradientenabstieg ändert das Dataset nicht.

Konvergenz- und konvexe Funktionen

Die Verlustfunktionen für lineare Modelle erzeugen immer eine konvexe Fläche. Infolge von Wenn ein lineares Regressionsmodell konvergiert, die Gewichtungen und Verzerrungen ermittelt haben, die den geringsten Verlust erzeugen.

Wenn wir die Verlustoberfläche für ein Modell mit einem einzigen Feature grafisch darstellen, können wir ihre konvex zu sein. Im Folgenden ist die Verlustoberfläche des Datasets mit Kilometern pro Gallone dargestellt. die in den vorherigen Beispielen verwendet wurden. Das Gewicht befindet sich auf der x-Achse, die Verzerrung ist auf der y-Achse, und Verlust auf der z-Achse:

Abbildung 17: 3D-Diagramm der Verlustoberfläche.

Abbildung 17. Verlustoberfläche, die ihre konvexe Form zeigt.

In diesem Beispiel erzeugen eine Gewichtung von -5,44 und eine Verzerrung von 35,94 den geringsten Verlust. um 5,54:

Abbildung 18: 3D-Diagramm der Verlustoberfläche mit (-5, 44; 35, 94; 5, 54) unten

Abbildung 18. Verlustoberfläche, die die Gewichts- und Verzerrungswerte zeigt, die den geringsten Verlust.

Ein lineares Modell konvergiert, wenn der minimale Verlust gefunden wurde. Daher werden zusätzliche Iterationen nur dazu führen, dass das Gradientenverfahren die Gewichtung und Gewichtung sehr kleine Beträge um den Mindestwert herum. Wenn wir die Gewichtungen und Verzerrungspunkte grafisch darstellen, während des Gradientenabstiegs, sehen die Punkte wie ein Ball aus, der und schließlich an dem Punkt anhalten, an dem es kein Gefälle mehr gibt.

Abbildung 19: Konvexe 3D-Verlustfläche mit Gradientenabstiegspunkten, die sich zum niedrigsten Punkt bewegen.

Abbildung 19. Verlustdiagramm mit Gradientenabstiegspunkten, die am niedrigsten Wert enden Punkt im Diagramm.

Beachten Sie, dass die schwarzen Verlustpunkte die genaue Form der Verlustkurve erstellen: starker Rückgang, bevor sie allmählich abfallen, bis sie den niedrigsten Wert erreichen Punkt auf der Verlustoberfläche.

Dabei ist zu beachten, dass das Modell fast nie für jede Gewichtung und Verzerrung, sondern findet einen Wert, der diesem sehr nahe kommt. Es ist auch wichtig zu beachten, dass das Minimum für Gewichtungen und Verzerrungen dem Nullverlust entsprechen, ist nur der Wert mit dem niedrigsten Verlust für diesen Wert identisch. .

Die Gewichts- und Verzerrungswerte verwenden, die den niedrigsten Verlust erzielen – in diesem Fall eine Gewichtung von -5,44 und eine Verzerrung von 35,94 hat. Wir können das Modell grafisch darstellen, um zu sehen, gut in die Daten passt:

Abbildung 20. Diagramm von Kilogramm in 1.000 Sek. im Vergleich zu Meilen pro Gallone, wobei das Modell den Daten entspricht.

Abbildung 20. Das Modell wurde unter Verwendung der Werte für Gewichtung und Verzerrung grafisch dargestellt, die den geringsten Verlust.

Dies wäre das beste Modell für dieses Dataset, da keine andere Gewichtung und Verzerrungen erzeugen ein Modell mit geringem Verlust.