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.
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.
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.