¿Es posible entrenar una red neuronal sin propagación hacia atrás?

94

Muchos libros y tutoriales de redes neuronales dedican mucho tiempo al algoritmo de retropropagación, que es esencialmente una herramienta para calcular el gradiente.

Supongamos que estamos construyendo un modelo con ~ 10K parámetros / pesos. ¿Es posible ejecutar la optimización usando algunos algoritmos de optimización sin gradiente?

Creo que calcular el gradiente numérico sería demasiado lento, pero ¿qué tal otros métodos como Nelder-Mead, recocido simulado o un algoritmo genético?

Todos los algoritmos sufrirían de mínimos locales, ¿por qué obsesionarse con el gradiente?

Haitao Du
fuente
66
@FranckDernoncourt Interpreté la otra pregunta como "¿por qué no utilizar técnicas de optimización global para entrenar redes neuronales?", Mientras que esta es más "¿por qué no utilizar optimizadores sin derivados ...".
GeoMatt22
66
Con 3 respuestas votadas, esto no parece demasiado amplio para responderme.
gung - Restablece a Monica
55
Sí, no tienes que preocuparte mucho por que Nelder-Mead se quede atascado en un mínimo local, porque tendrás suerte si te resulta útil.
Mark L. Stone el
1
Por cierto, ultra L-BFGS, dale un giro. puede ser bueno, pero es tan oscuro que probablemente nadie lo haya probado en redes neuronales. Ver ecuación 2.9 en p. 12 (sin embargo, debe leer las páginas anteriores para comprender la fórmula) de maths.dundee.ac.uk/nasc/na-reports/NA149_RF.pdf (no llamado ultra BFGS en el documento), que luego 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 presenta en el documento. Ultra BFGS es básicamente un BFGS mejorado ("hot rod") - puede ser más rápido, pero podría ser un poco más salvaje.
Mark L. Stone

Respuestas:

80

Los dos primeros algoritmos que mencionas (Nelder-Mead y el recocido simulado) generalmente se consideran bastante obsoletos en los círculos de optimización, ya que existen alternativas mucho mejores que son más confiables y menos costosas. Los algoritmos genéticos cubren una amplia gama, y ​​algunos de estos pueden ser razonables.

Sin embargo, en la clase más amplia de algoritmos de optimización sin derivación (DFO), hay muchos que son significativamente mejores que estos "clásicos", ya que este ha sido un área activa de investigación en las últimas décadas. Entonces, ¿podrían algunos de estos enfoques más nuevos ser razonables para el aprendizaje profundo?

Un artículo relativamente reciente que compara el estado de la técnica es el siguiente:

Rios, LM y Sahinidis, NV (2013) Optimización sin derivados: una revisión de algoritmos y comparación de implementaciones de software. Revista de Optimización Global.

Este es un buen artículo que tiene muchas ideas interesantes sobre técnicas recientes. Por ejemplo, los resultados muestran claramente que los mejores optimizadores locales están "basados ​​en modelos", utilizando diferentes formas de programación cuadrática secuencial (SQP).

Sin embargo, como se señala en su resumen "Encontramos que la capacidad de todos estos solucionadores para obtener buenas soluciones disminuye al aumentar el tamaño del problema". Para dar una idea de los números, para todos los problemas, los solucionadores recibieron un presupuesto de 2500 evaluaciones de funciones, y los tamaños de los problemas tenían un máximo de ~ 300 parámetros para optimizar. Más allá de los parámetros O [10], muy pocos de estos optimizadores funcionaron muy bien, e incluso los mejores mostraron una disminución notable en el rendimiento a medida que aumentaba el tamaño del problema.

Entonces, para problemas dimensionales muy altos, los algoritmos DFO simplemente no son competitivos con los derivados. Para dar alguna perspectiva, la optimización basada en PDE (ecuación diferencial parcial) es otra área con problemas dimensionales muy altos (por ejemplo, varios parámetros para cada celda de una gran cuadrícula de elementos finitos 3D). En este ámbito, el " método adjunto " es uno de los métodos más utilizados. Este también es un optimizador de descenso de gradiente basado en la diferenciación automática de un código de modelo directo.

El más cercano 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, este es esencialmente un enfoque SQP, pero con una interpretación bayesiana-gaussiana (por lo que el modelo cuadrático es positivo definido, es decir, sin puntos de silla). 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 el aprendizaje profundo, creo que el consenso es que son los puntos de silla de montar en lugar de los mínimos locales, que son los más problemáticos para espacios de parámetros NN de alta dimensión.

Por ejemplo, la revisión reciente en Nature dice que "Los resultados teóricos y empíricos recientes sugieren fuertemente que los mínimos locales no son un problema serio en general. En cambio, el paisaje está repleto de un gran número de puntos de silla combinatoriamente donde el gradiente es cero, y el la superficie se curva hacia arriba en la mayoría de las dimensiones y las curvas hacia abajo en el resto ".

Una preocupación relacionada es la optimización local versus la optimización global (por ejemplo, esta pregunta señalada en los comentarios). Si bien no hago aprendizaje profundo, en mi experiencia, el sobreajuste es definitivamente una preocupación válida. En mi opinión, los métodos de optimización global son más adecuados para problemas de diseño de ingeniería que no dependen en gran medida de los datos "naturales". En problemas de asimilación de datos, cualquier mínimo global actual podría cambiar fácilmente al agregar nuevos datos (advertencia: Mi experiencia se concentra en problemas de geociencia, donde los datos son generalmente "escasos" en relación con la capacidad del modelo).

Una perspectiva interesante es quizás

O. Bousquet y L. Bottou (2008) Las compensaciones del aprendizaje a gran escala. NIPS

que proporciona argumentos semi-teóricos sobre por qué y cuándo la optimización aproximada puede ser preferible en la práctica.

Nota final (metaoptimización): si bien las técnicas basadas en gradientes parecen ser dominantes para las redes de capacitación, puede haber un papel para DFO en las tareas de metaoptimización asociadas.

Un ejemplo sería el ajuste de hiperparámetros. (Curiosamente, los optimizadores de DFO basados ​​en modelos exitosos de Rios & Sahinidis podrían considerarse esencialmente como la resolución de una secuencia de problemas de diseño de experimentos / superficie de respuesta ).

Otro ejemplo podría ser el diseño de arquitecturas, en términos de la configuración de capas (por ejemplo, número, tipo, secuencia, nodos / capa). En este contexto de optimización discreta, los algoritmos de estilo genético pueden ser más apropiados. Tenga en cuenta que aquí estoy pensando en el caso en el que la conectividad está determinada implícitamente por estos factores (por ejemplo, capas completamente conectadas, capas convolucionales, etc.). En otras palabras, la conectividad está meta-optimizada explícitamente. (La fuerza de conexión recaería en el entrenamiento, donde, por ejemplo, la dispersión podría ser promovida por la regularización y / o las activaciones de ReLU ... sin embargo, estas opciones podrían optimizarse).O[N2]notL1

GeoMatt22
fuente
1
La "revisión" que cita es de los principales defensores de las redes neuronales; Yo cuestionaría la afirmación sobre los mínimos locales: una crítica teórica bien conocida de las NN es precisamente que ningún modelo complejo puede optimizarse mediante el descenso de gradiente porque se atascará en los mínimos locales. No está claro si solo los éxitos de las nns se pueden resolver con el telón de fondo y si no se conocen las fallas.
seanv507
2
@ GeoMatt22 La divergencia contrastante es una aproximación especial al gradiente de una clase especial de modelos, bajo la cual se encuentran los RBM. Cabe señalar que los RBM son modelos probabilísticos que implican un cierto tipo de distribución, para el cual el gradiente de la estimación de máxima verosimilitud es intratable. Las redes neuronales son modelos computacionales, que se pueden usar sin ningún punto de partida probabilístico, por ejemplo, mediante la optimización de una pérdida de bisagra. En pocas palabras, el CD no es un medio general para optimizar las redes neuronales.
bayerj
2
@ seanv507 Si bien los principales proponentes han hecho la afirmación, hay artículos revisados ​​por pares de las principales conferencias de aprendizaje automático que evalúan esas afirmaciones rigurosamente, por ejemplo, arxiv.org/abs/1406.2572 . En este momento, esa afirmación es ampliamente aceptada en la comunidad más amplia de LD, principalmente debido a sus argumentos teóricos superiores y evidencia empírica. No creo que un argumento ad hominem sea adecuado aquí.
bayerj
1
Estoy de acuerdo en que falta la teoría DL. Aún así, debes reconocer que artículos como este están avanzando. Si considera que el artículo indica resultados incorrectos y las conclusiones (como "los mínimos locales son menos problemáticos que los puntos de silla") no son válidos, debe hacerlo mejor que declarar otro ataque ad hominem, esta vez dirigido a Comunidad de ML en su conjunto.
bayerj
1
Un trabajo reciente muestra que con la inicialización aleatoria, el descenso del gradiente converge a un mínimo local (en lugar de un punto de silla de montar). Documento aquí: arxiv.org/abs/1602.04915 y publicación en el blog aquí: offconvex.org/2016/03/24/saddles-again Por otro lado, hay una hipótesis (menos) reciente de que en redes neuronales grandes, los mínimos locales son casi tan bueno como el global, discutido aquí: stats.stackexchange.com/questions/203288/…
DavidR
12

Hay todo tipo de algoritmos de búsqueda local que podría usar, la propagación hacia atrás acaba de demostrar ser la más eficiente para tareas más complejas en general ; Hay circunstancias en las que otras búsquedas locales son mejores.

Puede usar la escalada de inicio aleatorio en una red neuronal para encontrar una solución correcta rápidamente, pero no sería factible encontrar una solución casi óptima.

Wikipedia (lo sé, no es la mejor fuente, pero aún así) dice

Para problemas en los que encontrar el óptimo global preciso es menos importante que encontrar un óptimo local aceptable en una cantidad fija de tiempo, el recocido simulado puede ser preferible a alternativas como el descenso por gradiente.

fuente

En cuanto a los algoritmos genéticos, vería Backpropagation vs Genetic Algorithm for Neural Network training

El caso principal que haría para backprop es que es muy utilizado y ha tenido muchas mejoras excelentes . Estas imágenes realmente muestran algunos de los increíbles avances en la propagación inversa de vainilla.

No pensaría en backprop como un algoritmo, sino como una clase de algoritmos.

También me gustaría agregar que para las redes neuronales, los parámetros de 10k son pequeños beans. Otra búsqueda funcionaría muy bien, pero en una red profunda con millones de parámetros, no es práctico.

Liam McInroy
fuente
12

Bueno, las redes neuronales originales, antes de la revolución de propagación hacia atrás en los años 70, fueron "entrenadas" a mano. :)

Habiendo dicho eso:

Hay una "escuela" de aprendizaje automático llamada máquina de aprendizaje extremo que no utiliza la propagación hacia atrás.

Lo que hacen es crear una red neuronal con muchos, muchos, muchos nodos, con pesos aleatorios, y luego entrenar la última capa usando cuadrados mínimos (como una regresión lineal). Luego, podan la red neuronal después o aplican regularización en el último paso (como lazo) para evitar el sobreajuste. He visto esto aplicado a redes neuronales con una sola capa oculta solamente. No hay entrenamiento, por lo que es súper rápido. Hice algunas pruebas y, sorprendentemente, estas redes neuronales "entrenadas" de esta manera son bastante precisas.

La mayoría de las personas, al menos con las que trabajo, tratan a esta "escuela" de aprendizaje automático con burla y son un grupo marginado con sus propias conferencias, etc., pero en realidad creo que es algo ingenuo.


Otro punto: dentro de la retropropagación, hay alternativas que rara vez se mencionan, como la retroprogación resistente , que se implementan en R en el neuralnetpaquete y que solo utilizan la magnitud de la derivada. El algoritmo está hecho de condiciones if-else en lugar de álgebra lineal. Tienen algunas ventajas sobre la retropropagación tradicional, es decir, no necesita normalizar sus datos porque no sufren el problema del gradiente de fuga .

Ricardo Cruz
fuente
Puede hacer (la mayoría o la totalidad) de la vuelta en su cuarto párrafo, y luego usar el resultado como punto de partida para una optimización basada en derivadas para "afinarlo".
Mark L. Stone el
1
@ MarkL.Stone No conozco a nadie que haya hecho propagación hacia atrás aplicando primero una regresión lineal a la última capa. Aunque suena interesante.
Ricardo Cruz
1
Hasta donde sé, la controversia en torno a los ELM se debe principalmente a aspectos éticos, no a la implementación. Schmidt et al ya habían tocado el tema en 1992, con su Red Feedforward con pesos aleatorios.
Firebug
3

Puede usar prácticamente cualquier algoritmo de optimización numérica para optimizar los pesos de una red neuronal. También puede utilizar algoritmos mixtos de optimización continua-discreta para optimizar no solo los pesos, sino también el diseño en sí (número de capas, número de neuronas en cada capa, incluso el tipo de neurona). Sin embargo, no existe un algoritmo de optimización que no sufra "maldición de dimensionalidad" y óptimas locales de alguna manera

transeúnte
fuente
3

También puede usar otra red para aconsejar cómo deben actualizarse los parámetros.

Hay las interfaces neuronales desacopladas (DNI) de Google Deepmind. En lugar de utilizar la propagación hacia atrás, utiliza otro conjunto de redes neuronales para predecir cómo actualizar los parámetros, lo que permite la actualización de parámetros paralelos y asíncronos.

El documento muestra que el DNI aumenta la velocidad de entrenamiento y la capacidad del modelo de los RNN, y ofrece resultados comparables tanto para RNN como para FFNN en diversas tareas.


El documento también enumeró y comparó muchos otros métodos de no propagación hacia atrás

Nuestro modelo de gradiente sintético es más análogo a una función de valor que se utiliza para el ascenso de gradiente [2] o una función de valor utilizada para el arranque. La mayoría de los otros trabajos que apuntan a eliminar la propagación hacia atrás lo hacen con el objetivo de realizar una asignación de crédito biológicamente plausible, pero esto no elimina el bloqueo de actualizaciones entre capas. Por ejemplo, la propagación de objetivos [3, 15] elimina la dependencia de pasar gradientes entre capas, en su lugar genera activaciones de objetivos que deberían ajustarse. Sin embargo, estos objetivos aún deben generarse secuencialmente, propagándose hacia atrás a través de la red y, por lo tanto, las capas aún se actualizan y bloquean hacia atrás. Otros algoritmos eliminan el bloqueo hacia atrás al permitir que las pérdidas o recompensas se transmitan directamente a cada capa, por ejemplo, REFORZAR [21] (considerando que todas las activaciones son acciones),1, y Policy Gradient Coagent Networks [20], pero aún permanecen bloqueadas las actualizaciones, ya que requieren que las recompensas sean generadas por una salida (o un crítico global). Si bien el aprendizaje recurrente en tiempo real [22] o aproximaciones como [17] pueden parecer una forma prometedora de eliminar el bloqueo de actualización, estos métodos requieren mantener el gradiente completo (o aproximado) del estado actual con respecto a los parámetros. Esto no es inherentemente escalable y también requiere que el optimizador tenga conocimiento global del estado de la red. En contraste, al enmarcar la interacción entre capas como un problema de comunicación local con DNI, eliminamos la necesidad de un conocimiento global del sistema de aprendizaje. Otros trabajos como [4, 19] permiten el entrenamiento de capas en paralelo sin propagación hacia atrás,

dontloo
fuente
2

Mientras esta sea una pregunta de la comunidad, pensé que agregaría otra respuesta. "Propagación hacia atrás" es simplemente el algoritmo de descenso de gradiente. Implica utilizar solo la primera derivada de la función para la que se está tratando de encontrar los mínimos o máximos locales. Hay otro método llamado método de Newton o Newton-Raphson que consiste en calcular el hessiano y, por lo tanto, utiliza segundas derivadas. Puede tener éxito en los casos en que falla el descenso de gradiente. Otros me dicen que tienen más conocimiento que yo, y sí, esta es una apelación de segunda mano a la autoridad, que no se usa en redes neuronales porque calcular todas las segundas derivadas es demasiado costoso en términos de cálculo.

aginensky
fuente