Deep-Learning-Literatur steckt voller cleverer Tricks bei der Verwendung nicht konstanter Lernraten beim Gradientenabstieg. Dinge wie Exponential Decay, RMSprop, Adagrad usw. sind einfach zu implementieren und in jedem Deep-Learning-Paket verfügbar, scheinen jedoch außerhalb neuronaler Netze nicht zu existieren. Gibt es einen Grund dafür? Wenn es den Menschen einfach egal ist, gibt es einen Grund, warum wir uns nicht außerhalb neuronaler Netze kümmern müssen?
14
Antworten:
Haftungsausschluss: Ich habe nicht so viel Erfahrung mit der Optimierung außerhalb neuronaler Netze, daher ist meine Antwort eindeutig voreingenommen, aber es gibt einige Dinge, die eine Rolle spielen:
(Tiefe) Neuronale Netze haben viele Parameter . Dies hat mehrere Auswirkungen:
Erstens schließt es Methoden höherer Ordnung aus, nur weil die Berechnung von hessischen und höheren Derivaten nicht mehr möglich ist. In anderen Bereichen ist dies möglicherweise ein gültiger Ansatz, der besser ist als Änderungen an SGD.
Zweitens, obwohl SGD wunderbar ist , neigt es dazu, unpraktisch langsam zu sein. Diese verbesserten SGD-Varianten ermöglichen hauptsächlich ein schnelleres Training, während möglicherweise einige der schönen Eigenschaften von SGD verloren gehen . In anderen Bereichen ist die SGD-Trainingszeit möglicherweise nicht der Engpass, sodass Verbesserungen, die durch eine Beschleunigung erzielt werden, möglicherweise einfach vernachlässigbar sind.
Das Trainieren (tiefer) neuronaler Netze ist keine konvexe Optimierung, und mir sind keine signifikanten Ergebnisse der konvexen Relaxation auf diesem Gebiet bekannt. Im Gegensatz zu anderen Bereichen konzentrieren sich neuronale Netze nicht auf nachweislich global optimale Lösungen, was dazu führt, dass mehr Anstrengungen in die Verbesserung der Eigenschaften der Verlustfläche und ihrer Durchquerung während der Optimierung investiert werden.
In anderen Bereichen kann die Verwendung der konvexen Relaxation und das Erhalten global optimaler Lösungen im Mittelpunkt des Interesses stehen, anstatt des Optimierungsalgorithmus, da die Wahl des Optimierungsalgorithmus die Qualität der Lösung nicht verbessern kann, sobald das Problem als konvexes Problem definiert ist .
Ich nehme an, diese Antwort deckt nicht alle möglichen Aspekte ab und ich bin selbst neugierig auf andere Meinungen.
quelle