una redes recurrente neuronales neuronal inteligencia entrenar entrenamiento ejemplos definicion como combativas artificial aprendizaje algoritmo neural-network genetic-algorithm reinforcement-learning

neural network - recurrente - ¿Cómo utilizan las redes neuronales los algoritmos genéticos y la retropropagación para jugar?



redes neuronales ejemplos (3)

Puede usar algoritmos genéricos como otra forma de optimizar la red neuronal. En lugar de utilizar la propagación de retorno, que es el algoritmo predeterminado, y el más utilizado por mucho, puede optimizar los pesos utilizando un algoritmo genético.

Por favor, eche un vistazo a este documento . Allí propusimos un algoritmo llamado evolución neuronal, que es una combinación de redes neuronales con un algoritmo genético llamado evolución diferencial. Se usa para hacer que un robot humanoide detecte las emociones humanas e interactúe de acuerdo. También hay un amplio estado del arte sobre el tema. Espero eso ayude.

Me encontré con este interesante video en YouTube sobre algoritmos genéticos .

Como puedes ver en el video, los bots aprenden a pelear.
Ahora, he estado estudiando las redes neuronales por un tiempo y quería comenzar a aprender los algoritmos genéticos. Esto de alguna manera combina ambos.

¿Cómo se combinan los algoritmos genéticos y las redes neuronales para hacer esto?
Y también, ¿cómo se puede saber el error en este caso que usas para propagar hacia atrás, actualizar tus pesos y entrenar a la red? Y también, ¿cómo crees que el programa en el video calculó su función de aptitud? Supongo que la mutación definitivamente está sucediendo en el programa en el video, pero ¿qué pasa con el cruce?

¡Gracias!


Bueno, este es un problema de refuerzo en el que las salidas de la red neuronal son las teclas del teclado que se presionarán para maximizar el puntaje dado por la función de acondicionamiento físico. Usando algoritmos genéticos (GA) y partiendo de una arquitectura de red neuronal inicial, la GA tiende a encontrar una mejor arquitectura que maximice una función de aptitud, de forma iterativa. El GA genera diferentes arquitecturas al criar una población de ellas y luego las usa para la tarea (jugar el juego), selecciona la que produce una puntuación más alta (usando la función de aptitud). La próxima vez, el GA utiliza los mejores candidatos de arquitectura (padres en terminología de GA) para usar para la cría y nuevamente repite el proceso de generar nueva población (arquitecturas). Por supuesto, la reproducción incluye mutación también.

Este proceso continúa hasta que se cumple un criterio de terminación (un valor específico para la función de aptitud física o la generación de una cantidad de poblaciones). Puede observar que los algoritmos genéticos son muy intensivos en términos de computación y, por lo tanto, están abandonados por problemas a gran escala. Naturalmente, cuando se genera una arquitectura se entrena usando backpropagation o cualquier otra técnica de optimización aplicable, incluidas las GA.

Por ejemplo, este video muestra cómo los algoritmos genéticos ayudan a seleccionar la " mejor " arquitectura para jugar Mario, ¡y lo hace muy bien! Sin embargo, tenga en cuenta que si GA selecciona una arquitectura para jugar a Mario muy bien en un nivel, esa arquitectura no estará necesariamente bien en los siguientes niveles, como se muestra en otro video . En mi opinión, esto se debe a que tanto los algoritmos genéticos como la retropropagación tienden a encontrar un mínimo local. Entonces todavía hay un largo camino por recorrer ...

Fuentes


¿Cómo se combinan los algoritmos genéticos y las redes neuronales para hacer esto?

Las redes neuronales se pueden entrenar con una combinación de algoritmos genéticos y de propagación inversa o puede entrenar un lote de redes con un algoritmo de retropropagación y elegir ese lote de formulario que crea más prometedor utilizando algoritmo genético.

Y también, ¿cómo se puede saber el error en este caso que usas para propagar hacia atrás, actualizar tus pesos y entrenar a la red?

El cálculo del error puede variar según el algoritmo, pero en general, si utiliza métodos de aprendizaje supervisado, debe hacer su cálculo de error como una cierta distancia del objetivo de aprendizaje deseado.

Sugiero mirar uno de los algoritmos genéticos más avanzados (actualmente) es NEAT .