Estaba leyendo sobre el optimizador Adam para Deep Learning y encontré la siguiente oración en el nuevo libro Deep Learning de Bengio, Goodfellow y Courville:
En general, se considera que Adam es bastante robusto para la elección de hiperparámetros, aunque a veces la tasa de aprendizaje debe cambiarse del valor predeterminado sugerido.
si esto es cierto, es un gran problema porque la búsqueda de hiperparámetros puede ser realmente importante (al menos en mi experiencia) en el rendimiento estadístico de un sistema de aprendizaje profundo. Por lo tanto, mi pregunta es, ¿por qué Adam Robust tiene parámetros tan importantes? ¿Especialmente y β 2 ?
He leído el artículo de Adam y no proporciona ninguna explicación de por qué funciona con esos parámetros o por qué es robusto. ¿Justifican eso en otra parte?
Además, mientras leo el artículo, parece que el número de hiperparámetros que probaron era muy pequeño, para solo 2 y para β 2 solo 3. ¿Cómo puede ser un estudio empírico exhaustivo si solo funciona en hiperparámetros 2x3? ?
fuente
Respuestas:
En lo que respecta a la evidencia con respecto al reclamo, creo que la única evidencia que respalda el reclamo se puede encontrar en la figura 4 de su documento . Muestran los resultados finales en un rango de valores diferentes para , β 2 y α .β1 β2 α
Personalmente, no encuentro su argumento convincente, en particular porque no presentan resultados en una variedad de problemas. Dicho esto, voy a señalar que tengo ADAM utiliza para una variedad de problemas, y mi conclusión personal es que los valores por defecto de y beta 2 no parecen sorprendentemente fiable, a pesar de un acuerdo bien de toquetearβ1 β2 α
fuente
Esto está en gran contraste con el stock de descenso de gradiente estocástico de vainilla, donde:
Adam no es el único optimizador con tasas de aprendizaje adaptativo. Como se afirma en el artículo de Adam, está muy relacionado con Adagrad y Rmsprop, que también son extremadamente insensibles a los hiperparámetros. Especialmente, Rmsprop funciona bastante bien.
Pero Adam es el mejor en general. Con muy pocas excepciones, Adam hará lo que quieras :)
Hay algunos casos bastante patológicos en los que Adam no funcionará, particularmente para algunas distribuciones no estacionarias. En estos casos, Rmsprop es una excelente opción de espera. Pero en términos generales, para la mayoría de los casos no patológicos, Adam funciona extremadamente bien.
fuente
Mirando las fórmulas de ADAM, parece un poco extraño que después de una gran cantidad de iteraciones por lotes (digamos ~ 400k), la magnitud del gradiente original basado en el error en sí mismo no juegue ningún papel real en el paso dado que parece aspirar a el parámetro de configuración de la tasa de aprendizaje en el signo relevante.
Quizás ADAM controla la adaptación del peso mejor que el SGD simple durante las primeras iteraciones / épocas, pero en el futuro la actualización parece estar reducida a algo algo ingenuo (?) ¿Alguien puede dar alguna intuición sobre por qué eso realmente se desea y / o tiende a funcionar bien?
fuente