Verlust reduzieren: Gradientenabstieg

Das Diagramm des iterativen Ansatzes (Abbildung 1) enthielt ein grünes, handförmiges Feld mit dem Titel "Compute parameter updates" (Aktualisierungen der Parameter berechnen). Stattdessen ersetzen wir diesen algorithmischen Feenstaub durch etwas Wesentliches.

Angenommen, wir hätten die Zeit und die Rechenressourcen, um den Verlust für alle möglichen Werte von \(w_1\)zu berechnen. Für die Art von Regressionsproblemen, die wir untersucht haben, ist das resultierende Verlustdiagramm im Vergleich zu \(w_1\) immer konvex. Mit anderen Worten, das Diagramm wird immer schalenförmig sein:

Ein Diagramm einer U-förmigen Kurve, wobei die vertikale Achse als „Verlust“ und die horizontale Achse als Wert des Gewichts w i beschriftet ist.

Abbildung 2. Regressionsprobleme führen zu Diagrammen des konvexen Verlusts im Vergleich zu Gewichtsdiagrammen.

 

Konvexe Probleme haben nur ein Minimum, das heißt, nur eine Stelle, an der die Steigung genau 0 ist. Bei diesem Minimum konvergiert die Verlustfunktion.

Die Berechnung der Verlustfunktion für jeden denkbaren Wert von \(w_1\)über das gesamte Dataset wäre eine ineffiziente Möglichkeit, den Konvergenzpunkt zu finden. Im Folgenden wird ein besserer Mechanismus beschrieben, der im maschinellen Lernen sehr beliebt ist, den sogenannten Gradientenabstieg.

Die erste Phase des Gradientenverfahrens besteht darin, einen Startwert (einen Startpunkt) für \(w_1\)auszuwählen. Der Ausgangspunkt ist nicht entscheidend. Daher setzen viele Algorithmen \(w_1\) einfach auf 0 oder wählen einen Zufallswert aus. Die folgende Abbildung zeigt, dass wir einen Startpunkt ausgewählt haben, der etwas größer als 0 ist:

Darstellung einer U-förmigen Kurve. Ein Punkt, der etwa auf halber Höhe der linken Seite der Kurve liegt, wird als „Startpunkt“ bezeichnet.

Abbildung 3. Ausgangspunkt für das Gradientenverfahren.

Der Algorithmus des Gradientenabstiegs berechnet dann den Gradienten der Verlustkurve am Startpunkt. In Abbildung 3 ist der Gradient des Verlusts gleich der Ableitung (Slope) der Kurve und gibt an, welcher Weg "wärmer" oder "kälter" ist. Wenn mehrere Gewichtungen vorhanden sind, ist der Gradient ein Vektor von partiellen Ableitungen in Bezug auf die Gewichtungen.

Beachten Sie, dass ein Farbverlauf ein Vektor ist und daher die folgenden beiden Eigenschaften aufweist:

  • eine Richtung
  • eine Größenordnung

Der Gradient zeigt immer in die Richtung des steilsten Anstiegs der Verlustfunktion. Der Algorithmus des Gradientenabstiegs legt einen Schritt in Richtung des negativen Gradienten vor, um den Verlust so schnell wie möglich zu reduzieren.

Darstellung einer U-förmigen Kurve. Ein Punkt auf der linken Seite der Kurve ist als „Startpunkt“ bezeichnet. Von diesem Punkt nach rechts zeigt ein Pfeil mit der Bezeichnung „Negativverlauf“.

Abbildung 4. Beim Gradientenabstieg werden negative Farbverläufe verwendet.

Um den nächsten Punkt entlang der Verlustfunktionskurve zu bestimmen, fügt der Algorithmus des Gradientenabstiegs einen Bruchteil der Größe des Gradienten zum Startpunkt hinzu, wie in der folgenden Abbildung dargestellt:

Darstellung einer U-förmigen Kurve. Ein Punkt auf der linken Seite der Kurve ist als „Startpunkt“ bezeichnet. Von diesem Punkt nach rechts zeigt ein Pfeil mit der Bezeichnung „Negativverlauf“. Ein weiterer Pfeil zeigt von der Spitze des ersten Pfeils nach unten zu einem zweiten Punkt auf der Kurve. Der zweite Punkt ist mit „Nächster Punkt“ beschriftet.

Abbildung 5. Ein Gradientenschritt bringt uns zum nächsten Punkt auf der Verlustkurve.

Der Gradientenabstieg wiederholt diesen Prozess dann und nähert sich dem Minimum immer näher.