Processing math: 100%

37 votos

Backpropagation vs Algoritmo Genético para el entrenamiento de Redes Neuronales

He leído algunos artículos en los que se discuten los pros y los contras de cada método, algunos argumentan que el AG no ofrece ninguna mejora en la búsqueda de la solución óptima, mientras que otros muestran que es más eficaz. Parece que en la literatura se prefiere el AG (aunque la mayoría de las personas lo modifican de alguna manera para lograr los resultados que necesitan), entonces ¿por qué la mayoría de las soluciones de software parecen utilizar sólo la retropropagación?

¿Existe alguna regla general sobre cuándo utilizar uno u otro? ¿Tal vez depende del tipo de NN o existe alguna solución de vanguardia que generalmente supera a las demás?

Si es posible, busco respuestas generales: por ejemplo, "si la NN es enorme, el AG es mejor", o "el AG siempre es mejor pero tiene problemas de rendimiento computacional", etc.

28voto

Geaden Puntos 31

Si se examina detenidamente la literatura científica, se encontrarán resultados contrastados. Obviamente, en algunos casos los AG (y más en general, los Algoritmos Evolutivos) puede ayudan a encontrar un diseño óptimo de NN, pero normalmente tienen muchos inconvenientes (ajuste de los parámetros del algoritmo, complejidad computacional, etc.) y su uso no es factible para las aplicaciones del mundo real. Por supuesto, se puede encontrar un conjunto de problemas en los que los AG/EA son siempre mejor que la retropropagación. Dado que encontrar un diseño óptimo de NN es un complejo problema de optimización multimodal, los GA/EAs pueden ayudar (como metaheurísticos) a mejorar los resultados obtenidos con los algoritmos "tradicionales", por ejemplo, utilizando los GA/EAs para encontrar sólo la configuración de pesos iniciales o ayudando a los algoritmos tradicionales a escapar de los mínimos locales (si te interesa, escribí un artículo sobre este tema).

He trabajado mucho en este campo y puedo decirte que hay muchos trabajos científicos sobre AG/EAs aplicados a NNs porque son (o mejor, eran) un campo de investigación emergente.

8voto

John Richardson Puntos 1197

Uno de los principales problemas de las redes neuronales es el sobreajuste, lo que significa que los algoritmos que se esfuerzan por encontrar una red que minimice algún criterio basado en una muestra finita de datos acabarán con una red que funciona muy bien para esa muestra concreta de datos, pero que tendrá una pobre generalización. Por esta razón, desconfío del uso de AGs para diseñar redes neuronales, especialmente si hacen la optimización de la arquitectura al mismo tiempo que optimizan los pesos. En general, he comprobado que entrenar redes (con regularización) a partir de un número (digamos 20) de vectores de pesos iniciales aleatorios y luego formar un conjunto de todas las redes resultantes es un enfoque tan bueno como cualquier otro.

Esencialmente, la optimización es la raíz de todos los males en el aprendizaje automático; cuanto más se haga, más probable será que se acabe ajustando en exceso a los datos.

5voto

Michael Buckley Puntos 2856

Cuando se trata de grandes cantidades de datos y se quiere resolver una tarea de aprendizaje supervisado con una red neuronal de avance, las soluciones basadas en la retropropagación son mucho más factibles. La razón es que, para una red neuronal compleja, el número de parámetros libres es muy elevado. Un proyecto industrial en el que estoy trabajando actualmente consiste en una red neuronal feed-forward con unas 1000 entradas, dos capas ocultas con 384 neuronas cada una y 60 salidas. Esto da lugar a 1000*384 + 384*384 + 384*60 = 554496 parámetros de peso que hay que optimizar. El uso de un enfoque GA aquí sería terriblemente lento.

3voto

Ruhan Habib Puntos 77

La segunda respuesta es incorrecta. El sobreajuste no está causado por la optimización. La sobreadaptación se produce cuando el modelo es demasiado complicado y puede ajustarse a todos los puntos de datos sin aprender la regla real que los creó (es decir, sólo memorizándolos, en el caso extremo). Hay muchas formas de evitar la sobreadaptación, como elegir modelos más sencillos, el abandono, la desconexión, el decaimiento del peso y simplemente utilizar más datos. El objetivo debe ser optimizar tu red y hacerla lo más precisa posible, teniendo en cuenta esas limitaciones.

Para responder a la pregunta, backprop es supuestamente mucho más rápido que la optimización estocástica (algoritmos genéticos y similares.) Mi conjetura es que esto es porque se aprovecha de lo que la salida real era supuestamente ser, ajusta los pesos en la dirección correcta basándose en eso, mientras que la optimización estocástica intenta cambios completamente aleatorios e ignora esa información.

Sin embargo, al explorar un área más grande, los AGs probablemente lo harán mejor a largo plazo al evitar los óptimos locales, sólo que tardarán más en entrenarse.

Tengo curiosidad por saber cuánto más lentos son los AGs que el backprop, y si alguien conoce algoritmos híbridos (la búsqueda dispersa parece que sería ideal para esto).

1voto

Timothy Gu Puntos 423

En mi opinión, la diferencia entre el AG y la retropropagación es que el AG se basa en números aleatorios y que la retropropagación se basa en un algoritmo estático como el descenso de gradiente estocástico. El hecho de que el AG se base en números aleatorios y añada la mutación significa que probablemente evitará quedar atrapado en un mínimo local. Pero el hecho de que el AG se base en números aleatorios significa que es bastante probable que si se ejecuta el aprendizaje en la misma red dos veces diferentes, se llegue a una conclusión diferente, es decir, a un conjunto diferente de pesos.

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