Cómo elegir un optimizador para mi modelo de tensorflow

Al elegir un optimizador, lo que es importante tener en cuenta es la profundidad de la red (probablemente se beneficiará de las tasas de aprendizaje por peso si su red es profunda), el tipo de capas y el tipo de datos (¿está altamente desequilibrado?). Andrej Karpathy entra en los optimizadores más populares en sus notas de conferencia cs231 http://cs231n.github.io/neural-n…, y sugiere que sgd + Nesterov o Adam son opciones sólidas. Definitivamente deberías leer esas notas, y con suerte responderán tu pregunta por completo.

Puede valer la pena decir que, a menos que pase días para entrenar una red, la elección no suele ser muy importante porque siempre puede probar con otro optimizador más adelante. La literatura académica parece utilizar principalmente sgd, a pesar de que existen estos métodos más avanzados.

Personalmente uso sgd + Nesterov para redes poco profundas, y adam o rmsprop para redes profundas.

Hay un estudio bastante reciente de optimizadores en el blog de Sebastian Ruders, con muchos gráficos que explican los conceptos.

Aqui esta el link:

Una visión general de los algoritmos de optimización de descenso de gradiente

He encontrado que Adam Optimizer funciona bien para mí en la práctica sin tener que pensar mucho en las tasas de aprendizaje, etc.