Lineare Regression: Gradientenabstieg

Der Gradientenabstieg ist ein mathematischer Ansatz, mit dem die Gewichte und Verzerrungen iterativ ermittelt werden, die das Modell mit dem geringsten Verlust ergeben. Bei der Gradientenabstiegsmethode werden die besten Gewichte und Voreingenommenheiten ermittelt, 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 dem aktuellen Gewicht und der aktuellen Voreingenommenheit.

  2. Legen Sie die Richtung fest, in die die Gewichte und der Bias 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.

Anhand eines kleinen Datasets mit sieben Beispielen für das Gewicht eines Autos in Pfund und den Kraftstoffverbrauch in Kilometern pro Gallone können wir die Schritte des Gradientenabstiegs konkret 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 Tangenten an die Gewichtung und den Bias zu erhalten, leiten wir die Verlustfunktion nach der Gewichtung und dem Bias ab und lösen dann die Gleichungen.

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

    Wir schreiben den tatsächlichen Wert als „y“ auf.

    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. Anschließend wird die Summe durch die Anzahl der Beispiele geteilt. 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 abzüglich des tatsächlichen Werts und multiplizieren ihn dann mit zwei. Anschließend wird die Summe durch die Anzahl der Beispiele geteilt. Das Ergebnis ist die Steigung der Tangente an den Wert der Voreingenommenheit.

    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. Für den Moment definieren wir den „geringen 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 das neue Gewicht und die neue Voreingenommenheit, um den Verlust zu berechnen, und wiederholen Sie den Vorgang. 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 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 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 sehen, dass der Verlust in den ersten Iterationen drastisch abnimmt,dann allmählich sinkt und sich nach der 1.000. Iteration einpendelt. Nach 1.000 Iterationen können wir mit ziemlicher Sicherheit davon ausgehen, dass das Modell konvergiert ist.

In den folgenden Abbildungen wird das Modell zu drei Zeitpunkten während des Trainings dargestellt: zu Beginn, 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 Trainings

Übung: Wissen testen

Welche Rolle spielt der Gradientenabstieg bei der linearen Regression?
Der Gradientenabstieg ist ein iterativer Prozess, bei dem die besten Gewichte und Vorurteile 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 Datensatz entfernt, damit das Modell bessere Vorhersagen treffen kann.
Der Gradientenabstieg ändert den Datensatz nicht.

Konvergenz und konvexe Funktionen

Die Verlustfunktionen für lineare Modelle ergeben immer eine konvexe Oberfläche. Aufgrund dieser Eigenschaft wissen wir, dass ein lineares Regressionsmodell, das konvergiert, die Gewichte und die Voreingenommenheit 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 Verlustfläche.

Abbildung 17. Verlustfläche mit konvexer Form

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 Biaswerten, die den geringsten Verlust verursachen.

Ein lineares Modell konvergiert, wenn der minimale Verlust gefunden wurde. Daher führen zusätzliche Iterationen nur dazu, dass die Gewichts- und Biaswerte durch den Gradientenabstieg in sehr kleinen Schritten um das Minimum herum verschoben werden. 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 Punkten des Gradientenabstiegs, die am niedrigsten Punkt des Diagramms 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.