optimizers optimizer optimizador neural-network tensorflow

neural network - optimizador - En caso de que aprendamos a disminuir la tasa de adam optimizer



optimizador adam (3)

Adam tiene una tasa de aprendizaje única, pero es una tasa máxima que es adaptable, por lo que no creo que muchas personas utilicen la programación de la tasa de aprendizaje con ella.

Debido a la naturaleza adaptativa, la tasa predeterminada es bastante robusta, pero puede haber ocasiones en las que desee optimizarla. Lo que puede hacer es encontrar una tasa predeterminada óptima de antemano comenzando con una tasa muy pequeña e incrementándola hasta que la pérdida deje de disminuir, luego observe la pendiente de la curva de pérdida y elija la tasa de aprendizaje asociada con la disminución más rápida de la pérdida ( no es el punto donde la pérdida es realmente más baja). Jeremy Howard menciona esto en el curso de aprendizaje profundo de Fast.ai y es del documento de tasas de aprendizaje cíclico.

Estoy entrenando una red para la localización de imágenes con el optimizador Adam, y alguien me sugiere que use decaimiento exponencial. No quiero probar eso porque el optimizador de Adam declina la velocidad de aprendizaje. Pero ese tipo insiste y dijo que lo había hecho antes. Entonces, ¿debo hacer eso y hay alguna teoría detrás de tu sugerencia?


Depende. ADAM actualiza cualquier parámetro con una tasa de aprendizaje individual. Esto significa que cada parámetro en la red tiene una tasa de aprendizaje específica asociada.

Pero la tasa de aprendizaje única para el parámetro se calcula utilizando lambda (la tasa de aprendizaje inicial) como límite superior. Esto significa que cada tasa de aprendizaje individual puede variar de 0 (sin actualización) a lambda (actualización máxima).

Las tasas de aprendizaje se adaptan durante los pasos del tren, es cierto, pero si quiere estar seguro de que cada paso de actualización no supere lambda, puede bajar lambda utilizando la disminución exponencial o lo que sea. Puede ayudar a reducir la pérdida durante el último paso del entrenamiento, cuando la pérdida calculada con el parámetro lambda previamente asociado se ha detenido para disminuir.


En mi experiencia, no tiene sentido (y no funciona bien) hacer el decaimiento de la tasa de aprendizaje con el optimizador Adam.

La teoría es que Adam ya maneja la optimización de la tasa de aprendizaje ( ver referencia ):

"Proponemos Adam, un método para la optimización estocástica eficiente que solo requiere gradientes de primer orden con pocos requisitos de memoria. El método calcula las tasas de aprendizaje adaptativo individual para diferentes parámetros a partir de estimaciones del primer y segundo momento de los gradientes; el nombre Adam se deriva de estimación del momento adaptativo ".

Al igual que con cualquier problema de aprendizaje profundo YMMV, una talla no se ajusta a todas, debe probar diferentes enfoques y ver qué funciona para usted, etc. etc.