Richtlinien zur Auswahl eines Optimierers für das Training neuronaler Netze


18

Ich benutze seit einiger Zeit neuronale Netze. Eine Sache, mit der ich ständig zu kämpfen habe, ist die Auswahl eines Optimierers zum Trainieren des Netzwerks (mit Backprop). Normalerweise beginne ich einfach mit einem (zB Standard-SGD) und versuche es dann ziemlich zufällig mit anderen. Ich habe mich gefragt, ob es einen besseren (und weniger zufälligen) Ansatz gibt, um einen guten Optimierer zu finden, z. B. aus dieser Liste:

  • SGD (mit oder ohne Impuls)
  • AdaDelta
  • AdaGrad
  • RMSProp
  • Adam

Insbesondere bin ich daran interessiert, ob es eine theoretische Rechtfertigung gibt, eine andere auszuwählen, wenn die Trainingsdaten eine Eigenschaft haben, z. B. dass sie spärlich sind. Ich würde mir auch vorstellen, dass einige Optimierer in bestimmten Bereichen besser funktionieren als andere, z. B. beim Trainieren von Faltungsnetzwerken im Vergleich zu Feed-Forward-Netzwerken oder Klassifizierung im Vergleich zu Regression.

Wenn einer von Ihnen eine Strategie und / oder ein Gespür dafür entwickelt hat, wie Sie Optimierer auswählen, wäre ich sehr daran interessiert, sie zu hören. Darüber hinaus wäre es sogar noch besser, wenn einige Arbeiten theoretische Rechtfertigungen für das Überlagern liefern.

Antworten:


3

1) AdaGrad benachteiligt die Lernrate zu stark für Parameter, die häufig aktualisiert werden, und erhöht die Lernrate für spärliche Parameter, die nicht so häufig aktualisiert werden. Bei mehreren Problemen sind häufig die kritischsten Informationen in den Daten vorhanden, die nicht so häufig, aber spärlich sind. Wenn sich das Problem, an dem Sie arbeiten, also mit spärlichen Daten wie tf-idf usw. Befasst. Adagrad kann nützlich sein.

2) AdaDelta, RMSProp funktioniert fast auf ähnlichen Linien, mit dem einzigen Unterschied, dass Sie für Adadelta keine anfängliche Lernratenkonstante benötigen.

3) Adam kombiniert die guten Eigenschaften von Adadelta und RMSprop und ist daher für die meisten Probleme besser geeignet.

4) Der stochastische Gradientenabstieg ist sehr einfach und wird derzeit nur selten verwendet. Ein Problem ist die damit verbundene globale Lernrate. Daher funktioniert es nicht gut, wenn sich die Parameter in verschiedenen Maßstäben befinden, da eine niedrige Lernrate das Lernen verlangsamt, während eine große Lernrate zu Oszillationen führen kann. Auch bei der stochastischen Gefälleabfahrt fällt es im Allgemeinen schwer, sich den Sattelpunkten zu entziehen. Adagrad, Adadelta, RMSprop und ADAM handhaben Sattelpunkte im Allgemeinen besser. SGD mit Impuls beschleunigt die Optimierung und hilft auch, lokalen Minima besser zu entkommen.


2

Mein persönlicher Ansatz ist die Auswahl des neuesten Optimierers (dh des neuesten in einem Peer-Review-Journal veröffentlichten Optimierers), da in der Regel Ergebnisse zu Standarddatensätzen oder zum aktuellen Stand der Technik oder zu beiden gemeldet werden. Wenn ich zum Beispiel Caffe benutze, benutze ich immer Adam ( http://arxiv.org/abs/1412.6980 ).


0
Nadam(lr=0.002, beta_1=0.9, beta_2=0.999, epsilon=None, schedule_decay=0.004)

Ähnlich Adamist es im Wesentlichen RMSpropmit dem Impuls, Nadamist Adam RMSpropmit dem Nesterov-Impuls.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.