¿Por qué el algoritmo de descenso "Saddle-Free Newton" no se utiliza en la práctica?

13

Recientemente leí un artículo de Yann Dauphin et al. Identificando y atacando el problema del punto de silla de montar en la optimización no convexa de alta dimensión , donde introducen un interesante algoritmo de descenso llamado Saddle-Free Newton , que parece estar adaptado exactamente para la optimización de la red neuronal y no debería verse atrapado en los puntos de silla de montar como métodos de primer orden como vainilla SGD.

El documento se remonta a 2014, por lo que no es nada nuevo, sin embargo, no he visto que se use "en la naturaleza". ¿Por qué no se usa este método? ¿El cálculo de Hesse es demasiado prohibitivo para problemas / redes del tamaño real? ¿Existe alguna implementación de código abierto de este algoritmo, posiblemente para ser utilizado con algunos de los principales marcos de aprendizaje profundo?

Actualización de febrero de 2019: hay una implementación disponible ahora: https://github.com/dave-fernandes/SaddleFreeOptimizer )

Jan Kukacka
fuente
Buena pregunta, no pude encontrar nada. Sin embargo, el pseudocódigo es muy simple, por lo que puede probarlo usted mismo, en cuyo caso hay algunos detalles útiles de implementación en una de las tesis doctorales de los autores (página 103, papyrus.bib.umontreal.ca/xmlui/bitstream/handle / 1866/13710 / ... )
galoosh33
1
Encontré referencia a este mismo artículo en una publicación del blog Uber Deep-Neuroevolution. Enlace: eng.uber.com/deep-neuroevolution Puede preguntarle al autor si tiene alguna implementación en línea / compartida a través de GitHub.
Cantren
Aquí hay una implementación para TensorFlow: github.com/dave-fernandes/SaddleFreeOptimizer
Dave F
Si tuviera que adivinar, mi suposición sería que calcular + invertir el Hessian no es práctico cuando su modelo tiene millones de parámetros.
Sycorax dice Reinstate Monica
1
¿Puede refinar su pregunta de "¿hay una implementación"? Eso parece permitir, sí / no respuestas y / o suena como una solicitud de software (que está fuera de tema aquí). ¿Podría su pregunta ser elaborada en algo como "qué dificultades explican por qué no parece haber más implementaciones"?
gung - Restablece a Monica

Respuestas:

2

Una mejor optimización no significa necesariamente un mejor modelo. Al final, lo que nos importa es qué tan bien generaliza el modelo y no necesariamente qué tan bueno es el rendimiento en el conjunto de entrenamiento. Las técnicas de optimización más sofisticadas generalmente funcionan mejor y convergen más rápido en el conjunto de entrenamiento, pero no siempre generalizan tan bien como los algoritmos básicos. Por ejemplo, este documento muestra que SGD puede generalizar mejor que el optimizador ADAM. Este también puede ser el caso con algunos algoritmos de optimización de segundo orden.


[Editar] Se eliminó el primer punto ya que no se aplica aquí. Gracias a bayerj por señalar esto.

Soroush
fuente
1
Si bien estoy de acuerdo con el segundo punto, el primero no es válido aquí. Los autores proponen hacer la optimización solo en el subespacio de Krylov, que no requiere complejidad cuadrática.
bayerj