Was ist Gradientenabstieg (Gradient Descent)?

Ein Optimierungsverfahren, das den Gradienten der Verlustfunktion (die partielle Ableitung nach jedem Parameter) berechnet und die Parameter wiederholt ein Stück entgegen dem Gradienten verschiebt, um Parameter mit kleinem Verlust zu finden. Die Aktualisierung lautet w ← w − η∇L, wobei η Lernrate heißt. Der stochastische Gradientenabstieg (SGD), der mit Gradienten auf einem Teil der Daten (einem Mini-Batch) arbeitet, und seine Weiterentwicklungen wie Momentum und Adam werden zum Training neuronaler Netze weithin eingesetzt.

Japanische Bezeichnung: 勾配降下法

„Gradientenabstieg (Gradient Descent)“ kommt in 1 Übungsfragen aus 1 Themen vor, z. B. Grundlagen des maschinellen Lernens.

Fachgebiet: Grundlagen des maschinellen Lernens

Aktualisierungsregel und Lernrate

Betrachtet man den Verlust L als Funktion eines Gewichts w, gibt der Gradient ∂L/∂w Richtung und Größe der Zunahme von L an, wenn w leicht erhöht wird. Daher wird w entgegen dem Gradienten verschoben: w ← w − η × ∂L/∂w. Mit L = (w − 3)² und dem Startwert w = 0 beträgt der Gradient zum Beispiel 2 × (0 − 3) = −6, mit η = 0,1 rückt das Gewicht also auf 0,6 vor. In diesem Beispiel schrumpft mit η = 0,1 der verbleibende Abstand zum Minimum bei w = 3 bei jeder Aktualisierung auf das 0,8-Fache, während mit η = 1,1 jedes Mal über das Minimum hinausgesprungen wird und der Abstand jeweils auf das 1,2-Fache wächst, sodass das Verfahren divergiert.

Batch, Mini-Batch und stochastischer Gradientenabstieg

Den exakten Gradienten des Verlusts über alle Trainingsdaten zu berechnen und dann einmal zu aktualisieren, heißt Batch-Gradientenabstieg; bei vielen Daten dauert jede Aktualisierung jedoch lange. Der stochastische Gradientenabstieg wiederholt stattdessen Aktualisierungen mit Gradienten, die nur auf einem Teil der Daten (einem Mini-Batch) berechnet werden. Der Gradient wird dadurch verrauscht, doch es sind viel mehr Aktualisierungen möglich, und der Mini-Batch lässt sich so bemessen, dass eine GPU ihn effizient parallel berechnet. Ein vollständiger Durchlauf durch die Trainingsdaten heißt Epoche.

Verbesserte Verfahren

Einfacher SGD kommt bei Verlustfunktionen in Form eines langen, schmalen Tals nur langsam voran, weil er quer zum Tal hin und her springt. Momentum übernimmt die Richtung früherer Aktualisierungen wie eine Trägheit und dämpft diese Schwingung. Adam und RMSProp passen die Schrittweite jedes Parameters automatisch anhand des Verlaufs seiner Gradientenbeträge an. Häufig sind auch ein Warm-up, das die Lernrate zu Beginn des Trainings allmählich erhöht, und Zeitpläne, die die Lernrate mit fortschreitendem Training senken.

Jetzt üben: Fragen zu Gradientenabstieg (Gradient Descent)

Beim Gradientenabstieg hat der Gradient des Verlusts ∂L/∂w beim Gewicht w = 2,0 den Wert 0,5, und die Lernrate beträgt 0,1. Wie groß ist das Gewicht nach einer Aktualisierung?

  1. A1,5
  2. B1,95
  3. C2,05
Antwort und Erläuterung anzeigen

Antwort: B. 1,95

Der Gradientenabstieg verschiebt das Gewicht in die Richtung, in der der Verlust sinkt, also entgegen dem Gradienten, und aktualisiert w ← w − η × ∂L/∂w (η ist die Lernrate). Hier gilt w = 2,0 − 0,1 × 0,5 = 1,95. Ist die Lernrate zu groß, springt das Gewicht über das Tal des Verlusts hinweg und schwingt oder divergiert; ist sie zu klein, kommt das Training nur sehr langsam voran. In der Praxis werden der stochastische Gradientenabstieg (SGD), der Aktualisierungen mit Gradienten auf einem Teil der Daten (einem Mini-Batch) wiederholt, und Weiterentwicklungen wie Adam verwendet.

Häufige Fragen

Worin unterscheidet sich der Gradientenabstieg von Backpropagation?

Backpropagation ist ein Verfahren, das den Gradienten des Verlusts bezüglich aller Gewichte eines neuronalen Netzes effizient berechnet. Der Gradientenabstieg ist ein Verfahren, das diese Gradienten nutzt, um die Gewichte zu aktualisieren. Das Training wiederholt den Zyklus: Verlust per Forward Pass berechnen, Gradienten per Backpropagation berechnen und Gewichte per Gradientenabstieg aktualisieren.

Findet der Gradientenabstieg die beste Lösung?

Ist die Verlustfunktion konvex (hat sie nur ein einziges Tal), führt eine passend gewählte Lernrate nahe an das Minimum. Der Verlust eines neuronalen Netzes ist nicht konvex, daher wird oft nur eine lokale Lösung gefunden; erfahrungsgemäß erreichen Netze mit vielen Parametern aber trotzdem oft eine für die Praxis ausreichende Leistung.

„Gradientenabstieg (Gradient Descent)“ in den Erläuterungen

Fragen mit „Gradientenabstieg (Gradient Descent)“ (1)

  1. Beim Gradientenabstieg hat der Gradient des Verlusts ∂L/∂w beim Gewicht w = 2,0 den Wert 0,5, und die Lernrate beträgt 0,1. Wie groß ist das Gewicht nach einer Aktualisierung?

Verwandte Begriffe

Aktivierungsfunktion Bestärkendes Lernen (Reinforcement Learning) Convolutional Neural Network (CNN) Hauptkomponentenanalyse (PCA) k-Means-Algorithmus Konfusionsmatrix (Wahrheitsmatrix) Kreuzvalidierung Precision und Recall Regularisierung Rekurrentes neuronales Netz (RNN)

Zur Glossarübersicht