¿Por qué no se utilizan algoritmos genéticos para optimizar las redes neuronales?


13

Según tengo entendido, los algoritmos genéticos son herramientas poderosas para la optimización de objetivos múltiples.

Además, la formación de redes neuronales (especialmente las profundas) es difícil y tiene muchos problemas (funciones de costos no convexas: mínimos locales, gradientes de desaparición y explosión, etc.).

También considero que capacitar conceptualmente un NN con GA es factible. Me preguntaba, ¿por qué no se usan en la práctica? ¿Es una cuestión de rendimiento?

Respuestas:


5

La formación de redes neuronales (NN) con algoritmos genéticos (GA) no solo es factible, hay algunas áreas de nicho donde el rendimiento es lo suficientemente bueno como para ser utilizado con frecuencia. Un buen ejemplo de esto es la neuroevolución de topologías de aumento o NEAT , que es un enfoque exitoso para generar controladores en entornos simples, como los juegos.

Sin embargo, en el caso más general, el enfoque no escala bien a redes grandes y profundas con muchos parámetros para sintonizar.

Los algoritmos genéticos y otras búsquedas globales de parámetros óptimos son robustos en formas que los algoritmos basados ​​en gradientes no lo son. Por ejemplo, puede entrenar a un NN con activaciones de funciones escalonadas o cualquier otra función de activación no diferenciable. Tienen debilidades en otros lugares. Una cosa relevante en el caso de las AG utilizadas para las NN es que los parámetros de peso son intercambiables en algunas combinaciones pero muy co-dependientes en otras combinaciones. La fusión de dos redes neuronales igualmente buenas con diferentes parámetros, lo que haría en el cruce en un GA, generalmente dará como resultado una tercera red con bajo rendimiento. El éxito de NEAT se debe en parte a encontrar una manera de abordar ese problema "haciendo crecer" las conexiones de la NN y uniéndolas entre redes neuronales similares.

Los enfoques basados ​​en gradientes son mucho más eficientes. En general, y no solo en el dominio de NN, si puede calcular el gradiente de una función con respecto a los parámetros, puede encontrar los parámetros óptimos más rápido que la mayoría de las otras técnicas de optimización. Un gradiente preciso garantiza al menos una pequeña mejora de una sola evaluación, y la mayoría de los otros optimizadores caen en un paradigma de generar y volver a intentar que no puede ofrecer ese tipo de garantía. La debilidad de tender a encontrar óptimos locales no ha resultado ser un obstáculo importante para las funciones de pérdida en las NN, y se ha abordado con cierto grado de éxito utilizando extensiones para el descenso de gradiente básico como impulso, RPROP, Adam, etc.

En la práctica, en una gran red multicapa, los métodos de gradiente son probablemente órdenes de magnitud más rápidos que las búsquedas de GA, como NEAT para encontrar parámetros de red. No encontrará ninguna CNN entrenada en GA que resuelva ImageNet, o incluso MNIST, donde la GA ha encontrado los pesos de la red sin ayuda. Sin embargo, los GA, o al menos algunas variantes de ellos, no se descartan al 100%. Por ejemplo, este blog de 2017 revisa documentos recientes que incluyen la clasificación a gran escala de clasificadores de imágenes que explora el uso de GA para descubrir hiperparámetros NN, que es una tarea importante en el aprendizaje automático y no es muy manejable utilizando métodos basados ​​en gradientes.


1

En realidad, Google Brain ya hizo algo similar para los clasificadores de imágenes.

Aún así, su investigación utiliza la propagación hacia atrás para entrenar redes, pero utilizan algoritmos genéticos para encontrar una buena arquitectura. Una cosa más para mencionar: para llegar a su mejor modelo, les requería una enorme cantidad de potencia de cálculo.

Publicaron su primer artículo en 2017 y en 2018 obtuvieron una versión mejorada . Puedes leer sobre esto en su blog

Hay otra investigación para la búsqueda de arquitectura de red, pero utilizan la optimización bayesiana en lugar de algoritmos genéticos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.