Los dos primeros algoritmos que menciona (Nelder-Mead y Simulated Annealing) suelen considerarse bastante obsoletos en los círculos de optimización, ya que existen alternativas mucho mejores que son a la vez más fiables y menos costosas. Los algoritmos genéticos abarcan una amplia gama, y algunos de ellos pueden ser razonables.
Sin embargo, en la clase más amplia de algoritmos de optimización sin derivadas (OFD), hay muchos que son significativamente mejores que estos "clásicos", ya que ésta ha sido un área activa de investigación en las últimas décadas. Entonces, ¿podrían algunos de estos enfoques más recientes ser razonables para el aprendizaje profundo?
A continuación se presenta un documento relativamente reciente en el que se compara el estado de la cuestión:
Ríos, L. M., & Sahinidis, N. V. (2013) Optimización sin derivadas: revisión de algoritmos y comparación de implementaciones de software. Revista de Optimización Global.
Se trata de un buen artículo que contiene muchas ideas interesantes sobre técnicas recientes. Por ejemplo, los resultados muestran claramente que los mejores optimizadores locales están todos "basados en modelos", utilizando diferentes formas de programación cuadrática secuencial (SQP).
Sin embargo, como señalan en su resumen "Observamos que la capacidad de todos estos solucionadores para obtener buenas soluciones disminuye al aumentar el tamaño del problema." Para dar una idea de las cifras, para todos los problemas se dio a los solucionadores un presupuesto de 2500 evaluaciones de funciones, y los tamaños de los problemas eran de un máximo de ~300 parámetros a optimizar. Más allá de O[10] parámetros, muy pocos de estos optimizadores funcionaban muy bien, e incluso los mejores mostraban una notable disminución del rendimiento a medida que aumentaba el tamaño del problema.
Por tanto, para problemas de dimensiones muy elevadas, los algoritmos DFO no son competitivos con los basados en derivadas. Para dar un poco de perspectiva, Optimización basada en EDP (ecuaciones diferenciales parciales) es otro ámbito con problemas de dimensiones muy elevadas (por ejemplo, varios parámetros por cada celda de una gran malla de elementos finitos 3D). En este ámbito, la " método adjunto " es uno de los métodos más utilizados. Se trata también de un optimizador de gradiente-descenso basado en la diferenciación automática de un código de modelo de avance.
Lo más parecido a un optimizador DFO de alta dimensión es quizás el Filtro Ensemble Kalman utilizado para asimilar datos en simulaciones PDE complejas, por ejemplo, modelos meteorológicos. Curiosamente, se trata esencialmente de un enfoque SQP, pero con una interpretación Bayesiano-Gaussiana (por lo que el modelo cuadrático es positivo definido, es decir, no hay puntos de silla de montar). Pero no creo que el número de parámetros u observaciones en estas aplicaciones sea comparable a lo que se ve en el aprendizaje profundo.
Nota al margen (mínimos locales): Por lo poco que he leído sobre aprendizaje profundo, creo que el consenso es que es puntos suspensivos en lugar de mínimos locales, que son los más problemáticos para los espacios de parámetros NN de alta dimensión.
Por ejemplo, el revisión reciente en Nature dice: "Recientes resultados teóricos y empíricos sugieren que los mínimos locales no son un problema grave en general. En cambio, el paisaje está repleto de un número combinatoriamente grande de puntos de silla donde el gradiente es cero, y la superficie se curva hacia arriba en la mayoría de las dimensiones y se curva hacia abajo en el resto."
Otra cuestión relacionada es la optimización local frente a la global (por ejemplo esta pregunta señalado en los comentarios). Aunque no me dedico al aprendizaje profundo, en mi experiencia el sobreajuste es sin duda una preocupación válida. En mi opinión, los métodos de optimización global son los más adecuados para la ingeniería. diseño problemas que no dependen en gran medida de datos "naturales". En los problemas de asimilación de datos, cualquier mínimo global actual podría cambiar fácilmente al añadir nuevos datos (advertencia: Mi experiencia es concentrados en problemas geocientíficos, donde los datos suelen ser "escasos" en relación con la capacidad del modelo).
Una perspectiva interesante es quizás
O. Bousquet & L. Bottou (2008) Las ventajas y desventajas del aprendizaje a gran escala. NIPS.
que ofrece argumentos semiteóricos sobre por qué y cuándo la optimización aproximada puede ser preferible en la práctica.
Nota final (metaoptimización): Aunque parece probable que las técnicas basadas en gradientes predominen en el entrenamiento de redes, la OFD puede desempeñar un papel en las tareas de metaoptimización asociadas.
Un ejemplo sería el ajuste de hiperparámetros. (Curiosamente, los exitosos optimizadores DFO basados en modelos de Ríos y Sahinidis podría considerarse esencialmente como la resolución de una secuencia de diseño de experimentos/ respuesta-superficie problemas).
Otro ejemplo podría ser el diseño de arquitecturas, en términos de configuración de capas (por ejemplo, número, tipo, secuencia, nodos/capa). En este contexto de optimización discreta, los algoritmos de tipo genético pueden ser más apropiados. Nótese que estoy pensando en el caso en que conectividad viene determinada implícitamente por estos factores (por ejemplo, capas totalmente conectadas, capas convolucionales, etc.). En otras palabras $\mathrm{O}[N^2]$ la conectividad es $not$ metaoptimizado explícitamente. (La intensidad de la conexión entraría en el ámbito de la formación, donde, por ejemplo, la dispersión podría fomentarse mediante $L_1$ regularización y/o activaciones ReLU ... estos opciones no obstante, podría metaoptimizarse).
3 votos
Posible duplicado de En las redes neuronales, ¿por qué utilizar métodos de gradiente en lugar de otras metaheurísticas?
6 votos
@FranckDernoncourt Interpreté la otra pregunta como "¿por qué no utilizar global de optimización para entrenar redes neuronales?", mientras que ésta es más bien "¿por qué no utilizar sin derivados optimzers ...".
0 votos
@GeoMatt22 Ya veo, voto retirado, dejo que el OP decida :)
7 votos
Con 3 respuestas upvoted, esto no me parece demasiado amplio para ser contestado.
6 votos
Sí, no tienes que preocuparte mucho de que Nelder-Mead se atasque en un mínimo local, porque tendrás suerte si llega a algún sitio útil.
1 votos
Puede que sea bueno, pero es tan poco conocido que probablemente nadie lo haya probado en redes neuronales. Véase la ecuación 2.9 en la página 12 (aunque es necesario leer las páginas anteriores para entender la fórmula) de maths.dundee.ac.uk/nasc/na-reports/NA149_RF.pdf (no llamado ultra BFGS en el documento), que entonces necesitaría entrar en una versión "L" (memoria limitada) para ser ultra L-BFGS, en lugar de ultra BFGS. La versión no L se describe en el documento. Ultra BFGS es, básicamente, un BFGS modificado ("hot rod"): puede ser más rápido, pero puede ser un poco más salvaje.
1 votos
Según parece, sólo las redes neuronales feed-forward pueden entrenarse con retropropagación (porque las derivadas parciales son fáciles de calcular a partir de la regla de la cadena). Si se trata de redes neuronales más generales (redes neuronales recurrentes, redes neuronales de picos acoplados, etc.), lo normal es probar otro método (los algoritmos genéticos son los que conozco mejor).
0 votos
Como ya se ha mencionado, dependiendo de la arquitectura es posible prescindir de la retropropagación. Las NN de creencia profunda (DBN), las NN de correlación en cascada y las NN de enlace funcional vectorial aleatorio (RVFL) no utilizan la retropropagación en absoluto.