120 votos

¿Es posible entrenar una red neuronal sin retropropagación?

Muchos libros y tutoriales sobre 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 utilizando 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, Simulated Annealing o un Algoritmo Genético?

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

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 :)

94voto

GeoMatt22 Puntos 1290

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).

2 votos

La "reseña" que citas es de los principales defensores de las redes neuronales; yo pondría en duda la afirmación sobre los mínimos locales; una crítica teórica bien conocida de las redes neuronales es precisamente que cualquier modelo complejo no puede optimizarse mediante el descenso de gradiente porque se atascará en mínimos locales. No está claro si sólo los éxitos de las nns pueden resolverse con descenso y no se oye hablar de los fracasos.

0 votos

@seanv507 justo por la cita en mi nota al margen. No pretendía defender ninguna postura, y cité a los proponentes a propósito. El grueso de mi respuesta es independiente, todo de decididamente no la comunidad del aprendizaje automático. Tiene ejemplos de algún área en la que se resuelvan regularmente problemas de optimización con > 100's de variables y el método de elección sea ? no alguna forma de descenso de gradiente (esencialmente con el meta de obtener un mínimo local)?

0 votos

Sólo comentaba la nota al margen. No tengo ejemplos - estoy argumentando desde el punto de vista opuesto - que por lo general es necesario dividir el problema en componentes y optimizar por separado ( que no es lo que se hace con NNs); Estoy totalmente de acuerdo en que el descenso gradiente es el método de elección para NNS

24voto

Paul Hinett Puntos 630

Bueno, las redes neuronales originales, antes de la revolución de la retropropagación en los años 70, se "entrenaban" a mano. :)

Dicho esto:

Existe una "escuela" de aprendizaje automático llamada máquina de aprendizaje extremo que no utiliza la retropropagación.

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

La mayoría de la gente, al menos con la que yo trabajo, trata esta "escuela" de aprendizaje automático con sorna y son un grupo marginado con sus propias conferencias y demás, pero en realidad creo que es algo ingenuo.


Otro punto: dentro de la retropropagación, hay alternativas que rara vez se mencionan como retroproagación resistente que se implementan en R en el neuralnet que sólo 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, a saber, que no es necesario normalizar los datos porque no sufren de la problema del gradiente de fuga .

0 votos

Cab hace (la mayor parte o todo) lo que dice en su 4º párrafo, y luego utiliza el resultado como punto de partida para una optimización basada en derivadas para "afinarlo".

1 votos

@MarkL.Stone No conozco a nadie que haya hecho backpropagation aplicando primero una regresión lineal a la última capa. Aunque suena interesante.

1 votos

Por lo que sé, la controversia en torno a los ELM se debe sobre todo a aspectos éticos, no a su aplicación. Schmidt et al ya habían tocado el tema en 1992, con su red Feedforward con pesos aleatorios.

13voto

fthinker Puntos 121

Existen todo tipo de algoritmos de búsqueda local, pero la retropropagación ha demostrado ser el más eficaz para las tareas más complejas. en general Hay circunstancias en las que otras búsquedas locales son mejores.

Puede utilizar arranque aleatorio en pendiente en una red neuronal para encontrar una solución ok 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 los problemas en los que encontrar el óptimo global preciso es menos importante que encontrar un óptimo local aceptable en una cantidad de tiempo fija, el recocido simulado puede ser preferible a alternativas como el descenso de gradiente.

fuente

En cuanto a los algoritmos genéticos, vería Algoritmo de retropropagación frente a algoritmo genético para el entrenamiento de redes neuronales

El principal argumento a favor del backprop es que su uso está muy extendido y ha tenido un montón de grandes mejoras . Estas imágenes realmente muestran algunos de los increíbles avances a la retropropagación vainilla.

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

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

4voto

tb. Puntos 76

Puede utilizar 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 sólo los pesos, sino la propia disposición (número de capas, número de neuronas en cada capa, incluso tipo de neurona). Sin embargo, no existe ningún algoritmo de optimización que no sufra de alguna manera la "maldición de la dimensionalidad" y los óptimos locales.

4voto

dontloo Puntos 334

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

Existe la Interfaces neuronales desacopladas (DNI) de Google Deepmind. En lugar de utilizar la retropropagación, utiliza otro conjunto de redes neuronales para predecir cómo actualizar los parámetros, lo que permite la actualización paralela y asíncrona de los parámetros.

El artículo muestra que la DNI aumenta la velocidad de entrenamiento y la capacidad de modelado de las RNN, y ofrece resultados comparables tanto para las RNN como para las FFNN en diversas tareas.


El documento también enumeraba y comparaba muchos otros métodos distintos de la retropropagación

Nuestro modelo de gradiente sintético es más análogo a una función de valor que se utiliza para el ascenso por gradiente [2] o una función de valor utilizada para bootstrapping. La mayoría de los demás trabajos que pretenden eliminar la retropropagación lo hacen con el objetivo de realizar una asignación de créditos biológicamente plausible. pero esto no elimina el bloqueo de actualizaciones entre capas. Por ejemplo, la propagación objetivo [3, 15] elimina la dependencia de pasar gradientes entre capas, generando en su lugar activaciones objetivo que deben ajustarse. Sin embargo, estos objetivos deben Sin embargo, estos objetivos deben generarse secuencialmente, propagándose hacia atrás por la red, por lo que las capas siguen actualizándose y retrocediendo. por lo que las capas siguen estando bloqueadas hacia atrás y hacia arriba. Otros algoritmos de Otros algoritmos eliminan el bloqueo hacia atrás permitiendo que las pérdidas o recompensas se transmitan directamente a cada capa. directamente a cada capa; por ejemplo, REINFORCE [21] (que considera que las todas las activaciones son acciones), Kickback 1 y gradiente político Coagent Networks [20] - pero siguen estando bloqueadas por actualizaciones, ya que requieren que las recompensas sean generadas por una salida (o un crítico global). Aunque el aprendizaje recurrente en tiempo real [22] o aproximaciones como [17] pueden parecer una forma prometedora de eliminar el bloqueo de actualizaciones, estos métodos requieren mantener el gradiente completo (o aproximado) del estado actual con respecto a los parámetros. Esto es intrínsecamente no escalable y también requiere que el optimizador tenga un conocimiento global del estado de la red. En cambio, si se concibe la interacción entre capas como un problema de comunicación local con DNI, eliminamos la necesidad de conocimiento global del sistema de aprendizaje. Otros trabajos como [4, 19] permiten el entrenamiento de capas en paralelo sin retropropagación, pero en la práctica no son escalables a sistemas más complejos. la práctica no son escalables a arquitecturas de red más complejas y genéricas. más complejas y genéricas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X