Wie kann man die optimale Lernrate für den Gradientenabstieg bestimmen? Ich denke, ich könnte es automatisch anpassen, wenn die Kostenfunktion einen größeren Wert als in der vorherigen Iteration zurückgibt (der Algorithmus konvergiert nicht), aber ich bin mir nicht sicher, welchen neuen Wert er annehmen soll.
regression
machine-learning
gradient-descent
Valentin Radu
quelle
quelle
Antworten:
(Jahre später) die Schrittgrößenmethode von Barzilai-Borwein nachschlagen; onmyphd.com hat eine schöne 3-seitige Beschreibung. Der Autor sagt
aber es ist schrecklich für sein Applet der 2d Rosenbrock-Funktion. Wenn jemand Barzilai-Borwein verwendet, kommentieren Sie bitte.
quelle
Du bist auf dem richtigen Weg. Ein üblicher Ansatz besteht darin, die Schrittgröße zu verdoppeln, wenn Sie einen erfolgreichen Abfahrtsschritt ausführen, und die Schrittgröße zu halbieren, wenn Sie versehentlich "zu weit" gehen. Sie könnten natürlich um einen anderen Faktor als 2 skalieren, aber das macht im Allgemeinen keinen großen Unterschied.
Anspruchsvollere Optimierungsmethoden beschleunigen wahrscheinlich die Konvergenz erheblich. Wenn Sie jedoch aus irgendeinem Grund ein eigenes Update durchführen müssen, ist das oben Genannte attraktiv einfach und oft gut genug.
quelle