Lineare Regression: Gradientenabstieg

Das Gradientenverfahren ist eine mathematische Methode, mit der iterativ die Gewichtungen und Verzerrungen ermittelt werden, die das Modell mit dem geringsten Verlust erzeugen. Der Gradientenabstieg ermittelt das beste Gewicht und die beste Voreingenommenheit, indem der folgende Prozess für eine Reihe von benutzerdefinierten Iterationen wiederholt wird.

Das Modell beginnt mit dem Training mit zufälligen Gewichten und Voreingenommenheiten nahe Null und wiederholt dann die folgenden Schritte:

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

  2. Legen Sie die Richtung fest, in die die Gewichte und die Voreingenommenheit verschoben werden sollen, um den Verlust zu verringern.

  3. Verschieben Sie die Gewichtungs- und Vorzeichenwerte geringfügig in die Richtung, in der die Verluste reduziert werden.

  4. Kehren Sie zu Schritt 1 zurück und wiederholen Sie den Vorgang, bis das Modell den Verlust nicht mehr weiter reduzieren kann.

Das folgende Diagramm zeigt die iterativen Schritte, die der Gradientenabstieg ausführt, um die Gewichte und Vorurteile zu finden, die das Modell mit dem geringsten Verlust ergeben.

Abbildung 12. Abbildung des Gradientenabstiegs.

Abbildung 12. Der Gradientenabstieg ist ein iterativer Prozess, bei dem die Gewichte und Verzerrungen ermittelt werden, die das Modell mit dem geringsten Verlust ergeben.

Klicken Sie auf das Pluszeichen, um mehr über die Mathematik hinter dem Gradientenabstieg zu erfahren.

Auf konkreter Ebene können wir die Schritte des Gradientenabstiegs anhand eines kleinen Datasets mit sieben Beispielen für die Schwere eines Autos in Kilogramm und seine Meilen pro Gallone durchgehen:

Pfund in Tausendern (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
  1. Zu Beginn des Trainings werden Gewicht und Voreingenommenheit auf null gesetzt:
  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. Berechnen Sie die Steigung der Tangente an der Verlustfunktion bei jedem Gewicht und der 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 das Gewicht und die Verzerrung verlaufen, leiten wir die Verlustfunktion in Bezug auf das Gewicht und die Verzerrung ab und lösen dann die Gleichungen.

    Die Gleichung für die Vorhersage lautet:
    $ f_{w,b}(x) = (w*x)+b $.

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

    Wir berechnen den MSE mit der folgenden Formel:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
    wobei „i“ das i-te Trainingsbeispiel und „M“ die Anzahl der Beispiele bezeichnet.

    Gewichtsableitung

    Die Ableitung der Verlustfunktion nach dem Gewicht wird so geschrieben:
    $ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $

    und ergibt:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $

    Zuerst wird jeder vorhergesagte Wert abzüglich des tatsächlichen Werts addiert und dann mit dem doppelten Merkmalwert multipliziert. Dann 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 einer Voreinstellung von null lösen, erhalten wir -119,7 für die Steigung der Linie.

    Derivate der Verzerrung

    Die Ableitung der Verlustfunktion nach dem Bias wird so geschrieben:
    $ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $

    und ergibt:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $

    Zuerst summieren wir jeden vorhergesagten Wert minus den tatsächlichen Wert und multiplizieren ihn dann mit zwei. Anschließend wird die Summe durch die Anzahl der Beispiele geteilt. Das Ergebnis ist die Steigung der Linie, die an den Wert der Verzerrung grenzt.

    Wenn wir diese Gleichung mit einem Gewicht und einer Vorahnung von null lösen, erhalten wir -34,3 für die Steigung der Linie.

  7. Bewegen Sie sich ein wenig in Richtung der negativen Steigung, um das nächste Gewicht und die nächste Voreingenommenheit zu erhalten. Vorerst definieren wir den „kleinen Betrag“ willkürlich 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. Wenn wir den Prozess sechsmal durchlaufen, erhalten wir die folgenden Gewichte, Voreingenommenheiten und Verluste:

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

Sie sehen, dass der Verlust mit jedem aktualisierten Gewicht und jeder aktualisierten Voreingenommenheit sinkt. In diesem Beispiel haben wir die Ausführung nach sechs Iterationen beendet. 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 der Gradientenabstieg die Gewichte und Voreingenommenheiten gefunden hat, die den Verlust nahezu minimieren.

Wenn das Modell nach der Konvergenz weiter trainiert wird, beginnt der Verlust, in kleinen Mengen zu schwanken, da das Modell die Parameter kontinuierlich um ihre niedrigsten Werte aktualisiert. Das kann es schwierig machen, 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 sehen Sie sich häufig eine Verlustkurve an, um festzustellen, ob das Modell konvergiert ist. Die Verlustkurve zeigt, wie sich der Verlust beim Trainieren des Modells ändert. Im Folgenden sehen Sie eine typische Verlustkurve. Der Verlust ist auf der y-Achse und die Iterationen auf der x-Achse:

Abbildung 13. Diagramm einer Verlustkurve mit einem steilen Abfall und dann einem sanften Rückgang.

Abbildung 13. Verlustkurve, die zeigt, dass das Modell um die 1.000. Iteration herum konvergiert.

Sie können sehen, dass der Verlust in den ersten Iterationen drastisch abnimmt und dann nach und nach abnimmt,bevor er sich um die 1.000. Iterationsmarkierung herum ausgleicht. Nach 1.000 Iterationen können wir mit ziemlicher Sicherheit davon ausgehen, dass das Modell konvergiert ist.

In den folgenden Abbildungen zeichnen wir das Modell an drei Punkten während des Trainingsprozesses: am Anfang, in der Mitte und am Ende. Wenn Sie den Zustand des Modells in Snapshots während des Trainings visualisieren, wird der Zusammenhang zwischen Aktualisieren der Gewichte und der Voreingenommenheit, der Reduzierung des Verlusts und der Modellkonvergenz verdeutlicht.

In den Abbildungen verwenden wir die abgeleiteten Gewichte und die Voreingenommenheit bei 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 Leitungen 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 treffen kann.

Abbildung 14. Verlustkurve und entsprechendes Diagramm des Modells, das sich von den Datenpunkten weg neigt.

Abbildung 14. Verlustkurve und Snapshot des Modells zu Beginn des Trainings.

Nach etwa der 400. Iteration sehen wir, dass der Gradientenabstieg das Gewicht und die Voreingenommenheit gefunden hat, die ein besseres Modell ergeben.

Abbildung 15: Verlustkurve und entsprechendes Diagramm des Modells, das die Datenpunkte schneidet, aber nicht im optimalen Winkel

Abbildung 15. Verlustkurve und Snapshot des Modells etwa in der Mitte des Trainings

Nach etwa 1.000 Iterationen sehen wir, dass das Modell konvergiert ist und ein Modell mit dem geringstmöglichen Verlust erzeugt.

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

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

Übung: Wissen testen

Welche Rolle spielt der Gradientenabstieg bei der linearen Regression?
Der Gradientenabstieg ist ein iterativer Prozess, bei dem die besten Gewichte und Voreingenommenheiten gefunden werden, um den Verlust zu minimieren.
Mithilfe des Gradientenabstiegs lässt sich bestimmen, welche Art von Verlust beim Trainieren eines Modells verwendet werden soll, z. B. L1 oder L2.
Der Gradientenabstieg spielt bei der Auswahl einer Verlustfunktion für das Modelltraining keine Rolle.
Beim Gradientenabstieg werden Ausreißer aus dem Dataset entfernt, damit das Modell bessere Vorhersagen treffen kann.
Der Gradientenabstieg ändert das Dataset nicht.

Konvergenz und konvexe Funktionen

Die Verlustfunktionen für lineare Modelle ergeben immer eine konvexe Oberfläche. Wenn ein lineares Regressionsmodell konvergiert, wissen wir daher, dass das Modell die Gewichtungen und Verzerrungen gefunden hat, die den geringsten Verlust verursachen.

Wenn wir die Verlustfläche für ein Modell mit einer Funktion grafisch darstellen, sehen wir ihre konvexe Form. Unten sehen Sie die Verlustfläche des Datasets „Meilen pro Gallon“, das in den vorherigen Beispielen verwendet wurde. Das Gewicht ist auf der x-Achse, die Voreingenommenheit auf der y-Achse und der Verlust auf der z-Achse:

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

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

In diesem Beispiel führen ein Gewicht von -5,44 und eine Voreingenommenheit von 35,94 zu einem Verlust von 5,54:

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

Abbildung 18. Verlustfläche mit den Gewichts- und Vorzeichenwerten, die den geringsten Verlust verursachen.

Ein lineares Modell konvergiert, wenn der minimale Verlust gefunden wurde. Daher bewirken zusätzliche Iterationen nur, dass der Gradientenabstieg die Gewichts- und Biaswerte nur sehr geringfügig um das Minimum verschiebt. Wenn wir die Gewichte und Biaspunkte während des Gradientenabstiegs in einem Diagramm darstellen würden, würden die Punkte 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 19: Konvexe 3D-Verlustfläche mit Gradientenabstiegspunkten, die sich zum niedrigsten Punkt bewegen.

Abbildung 19. Verlustdiagramm mit Gradientenabstiegspunkten, die am niedrigsten Punkt der Grafik enden.

Die schwarzen Verlustpunkte bilden genau die Form der Verlustkurve: ein steiler Rückgang, der allmählich abnimmt, bis der niedrigste Punkt der Verlustfläche erreicht ist.

Das Modell findet fast nie das genaue Minimum für jedes Gewicht und jede Voreingenommenheit, sondern einen Wert, der sehr nahe daran liegt. Außerdem ist es wichtig zu beachten, dass das Minimum für die Gewichte und die Voreingenommenheit nicht dem Nullverlust entspricht, sondern nur einem Wert, der den geringsten Verlust für diesen Parameter ergibt.

Mit den Gewichts- und Vorzeichenwerten, die den geringsten Verlust ergeben – in diesem Fall ein Gewicht von -5,44 und ein Vorzeichen von 35,94 – können wir das Modell grafisch darstellen, um zu sehen, wie gut es zu den Daten passt:

Abbildung 20. Diagramm mit Gewicht in 1.000 Pfund und Meilen pro Gallone, mit dem Modell, das die Daten anpasst

Abbildung 20. Modell, das mit den Gewichts- und Vorzeichenwerten dargestellt wird, die den geringsten Verlust bewirken.

Dies wäre das beste Modell für diesen Datensatz, da mit keinem anderen Gewichts- und Biaswert ein Modell mit einem niedrigeren Verlust erzielt werden kann.