RMSProp und Adam gegen SGD

11

Ich führe Experimente mit dem EMNIST-Validierungssatz unter Verwendung von Netzwerken mit RMSProp, Adam und SGD durch. Ich erreiche eine Genauigkeit von 87% mit SGD (Lernrate von 0,1) und Dropout (0,1 Dropout Prob) sowie L2-Regularisierung (1e-05-Strafe). Wenn ich die gleiche exakte Konfiguration mit RMSProp und Adam sowie die anfängliche Lernrate von 0,001 teste, erreiche ich eine Genauigkeit von 85% und eine deutlich weniger glatte Trainingskurve. Ich weiß nicht, wie ich dieses Verhalten erklären soll. Was kann der Grund für die mangelnde Glätte in der Trainingskurve und die geringere Genauigkeit und höhere Fehlerraten sein?

Alk
quelle
Dies hängt vom Netzwerk ab. Können Sie uns Details zum Netzwerk zeigen? Können Sie auch die Lernkurven angeben?
Memming
Dies ist ein Netzwerk mit 5 Schichten (Dropout, Affine, ELU in jeder Schicht), die wie folgt eingerichtet sind: 150 verborgene Dimensionen, verwendete ELU-Aktivierungsfunktion, 0,1 Lernrate für SGD, 0,001 Lernrate für RMS und Adam, L2-Regularisierung mit 1e -05 Strafe, Ausfall mit 0,1 Ausschlusswahrscheinlichkeit.
Alk
Und wenn Sie "genau dieselbe Konfiguration ... anfängliche Lernrate von 0,001" sagen, meinen Sie damit, dass Sie eine andere Lernrate verwendet haben oder zwei Experimente durchgeführt haben: eines mit derselben Lernrate und eines mit einer anderen? Es kann von der tatsächlichen Software abhängen, welche Parameter standardmäßig verwendet werden.
Wayne
Also habe ich 0,1 für SGD und 0,001 für Adam und RMSProp verwendet. Dies liegt daran, dass Adam und RMSProp mit einer Lernrate von 0,1 mit einer Genauigkeit von 60% schlecht abschnitten. Außerdem ist 0,001 der empfohlene Wert in der Arbeit über Adam.
Alk
Sie sollten Lernkurven veröffentlichen und angeben, ob Sie Fehler an Test- oder Trainingsdaten messen.
Jakub Bartczuk

Antworten:

4

Nach einigen Online-Recherchen und der Keras-Dokumentation wird empfohlen, den RMSProp-Optimierer für wiederkehrende neuronale Netze zu empfehlen. https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L209

Der stochastische Gradientenabstieg scheint seine Lernrate und seinen Impuls zwischen den einzelnen Chargen zu nutzen, um die Gewichte des Modells basierend auf den Informationen der Verlustfunktion zu optimieren. In meinem Fall ist dies "kategoriale Kreuzentropie".

Ich empfehle http://ruder.io/optimizing-gradient-descent/index.html für zusätzliche Informationen zu Optimierungsalgorithmen.

Alejandro Trujillo
quelle
Ich bin nicht sicher, was Sie unter "RMSProp-Optimierer wird für wiederkehrende neuronale Netze empfohlen" verstehen. Der Link, den Sie setzen, ist jetzt defekt und es wird nirgends erwähnt, dass er empfohlen wird.
Harshal Parekh