RMSProp y Adam vs SGD


12

Estoy realizando experimentos en el conjunto de validación EMNIST usando redes con RMSProp, Adam y SGD. Estoy logrando un 87% de precisión con SGD (tasa de aprendizaje de 0.1) y abandono (0.1 problema de abandono), así como la regularización L2 (penalización 1e-05). Al probar la misma configuración exacta con RMSProp y Adam, así como la tasa de aprendizaje inicial de 0.001, estoy logrando una precisión del 85% y una curva de entrenamiento significativamente menos suave. No sé cómo explicar este comportamiento. ¿Cuál puede ser la razón detrás de la falta de suavidad en la curva de entrenamiento y la menor precisión y las mayores tasas de error logradas?


Esto depende de la red. ¿Puede mostrarnos detalles sobre la red? ¿También puedes proporcionar las curvas de aprendizaje?
Memming

Esta es una red con 5 capas (Dropout, Affine, ELU en cada capa), configurada de la siguiente manera: 150 dimensiones ocultas, función de activación ELU utilizada, 0.1 tasa de aprendizaje para SGD, 0.001 tasa de aprendizaje para RMS y Adam, regularización L2 con 1e -05 penalización, Abandono con 0.1 probabilidad de exclusión.
Alk

Y cuando dice "exactamente la misma configuración ... tasa de aprendizaje inicial de 0.001", ¿quiere decir que usó una tasa de aprendizaje diferente o realizó dos experimentos: uno con la misma tasa de aprendizaje y otro con uno diferente? Puede depender del software real que esté utilizando en cuanto a los parámetros predeterminados para qué.
Wayne

Así que usé 0.1 para SGD y 0.001 para Adam y RMSProp. Esto se debe a que cuando ejecuté Adam y RMSProp con una tasa de aprendizaje de 0.1, ambos funcionaron mal con una precisión del 60%. Además, 0.001 es el valor recomendado en el documento sobre Adam.
Alk

Debe publicar las curvas de aprendizaje y si mide el error en los datos de prueba o entrenamiento.
Jakub Bartczuk

Respuestas:


4

Después de investigar algunos artículos en línea y la documentación de Keras, se sugiere que el optimizador RMSProp se recomiende para redes neuronales recurrentes. https://github.com/keras-team/keras/blob/master/keras/optimizers.py#L209

El Descenso de gradiente estocástico parece aprovechar su velocidad de aprendizaje y el impulso entre cada lote para optimizar los pesos del modelo en función de la información de la función de pérdida en mi caso es 'categorical_crossentropy'.

Sugiero http://ruder.io/optimizing-gradient-descent/index.html para obtener información adicional sobre algoritmos de optimización.


No estoy seguro de qué quiere decir con "se recomienda el optimizador RMSProp para redes neuronales recurrentes". El enlace que colocas ahora está roto y no se menciona en ninguna parte que se recomiende.
Harshal Parekh
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.