Viele Online-Tutorials befassen sich mit dem Gradientenabstieg und fast alle verwenden eine feste Schrittgröße (Lernrate ). Warum wird die Zeilensuche nicht verwendet (z. B. Backtracking-Zeilensuche oder exakte Zeilensuche)?
Viele Online-Tutorials befassen sich mit dem Gradientenabstieg und fast alle verwenden eine feste Schrittgröße (Lernrate ). Warum wird die Zeilensuche nicht verwendet (z. B. Backtracking-Zeilensuche oder exakte Zeilensuche)?
Antworten:
Der Vanille-Gefälle-Abstieg kann mithilfe von Liniensuchen zuverlässiger gemacht werden. Ich habe Algorithmen geschrieben, die dies tun, und es ergibt einen sehr stabilen Algorithmus (obwohl nicht unbedingt schnell).
Es macht jedoch fast keinen Sinn, nach stochastischen Gradientenmethoden zu suchen . Der Grund, warum ich das sage, ist, dass wir, wenn wir eine Zeilensuche durchführen, die auf der Minimierung der vollen Verlustfunktion basiert, sofort eine der Hauptmotivationen für stochastische Methoden verloren haben. Wir müssen nun für jedes Update die Full Loss-Funktion berechnen, deren Rechenaufwand in der Regel mit der Berechnung der vollständigen ersten Ableitung vergleichbar ist. Angesichts der Tatsache, dass wir die Berechnung des vollständigen Gefälles aufgrund von Rechenaufwand vermeiden wollten, ist es sehr unwahrscheinlich, dass wir die Berechnung der vollständigen Verlustfunktion in Ordnung bringen möchten.
Alternativ können Sie auch eine Zeilensuche basierend auf Ihrem zufällig ausgewählten Datenpunkt durchführen. Dies ist jedoch auch keine gute Idee. Dies sagt nichts darüber aus, ob Sie zu weit gegangen sind (was der Hauptvorteil der Liniensuche ist). Angenommen, Sie führen eine logistische Regression durch. Dann ist jedes Ergebnis einfach eine 0 oder 1, und für jede einzelne Probe erhalten wir trivial eine perfekte Trennung, sodass die optimale Lösung für unsere Regressionsparameter basierend auf der Probe von 1 trivial oder durch den Hauck-Donner-Effekt ist. Das ist nicht gut.
BEARBEITEN
@DeltaIV weist darauf hin, dass dies auch für Mini-Chargen gilt, nicht nur für Einzelproben.
In den Tutorials wird vermutlich von Gradientenabstieg gesprochen, da es sich um einen der einfachsten Algorithmen handelt, die zur Optimierung verwendet werden. Daher ist es leicht zu erklären. Da die meisten dieser Tutorials eher kurz sind, konzentrieren sie sich auf einfache Dinge. Es gibt mindestens mehrere gängige Optimierungsalgorithmen, die über die einfache Gradientenabnahme hinausgehen und für das Tiefenlernen verwendet werden. Tatsächlich verwenden die Menschen oft andere Algorithmen als den Gradientenabstieg, da sie normalerweise schneller konvergieren. Einige von ihnen weisen eine nicht konstante Lernrate auf (z. B. mit der Zeit abnehmend). Eine Übersicht über solche Algorithmen finden Sie im Artikel Eine Übersicht über Algorithmen zur Optimierung des Gradientenabstiegs von Sebastian Ruder (oder im Artikel von arXived ).