Cómo usar tanto algoritmos genéticos como redes neuronales artificiales en una simulación de vida artificial

Al igual que la vida humana es el resultado de la secuencia de genes en nuestro ADN y el aprendizaje de la red neuronal de nuestro cerebro, la vida artificial se puede representar mejor mediante un algoritmo evolutivo con red neuronal artificial.

Primero, similar a la sociedad humana, tienes que crear una sociedad artificial, donde millones de esa vida artificial evolucionarán según la regla evolutiva. Puede usar un algoritmo genético o cualquier otro algoritmo evolutivo, aunque el algoritmo genético no ha considerado muchos conceptos evolutivos como Especiación y sexo. Por lo tanto, debe crear reglas para transferir el genotipo al fenotipo explícitamente, junto con otras reglas evolutivas en dicha sociedad.

En segundo lugar, dentro de los datos genotípicos de cada vida artificial, algunos datos deberían estar disponibles para fenotipar el cerebro artificial respectivo, que se utilizará para la interacción dentro de la sociedad. Como red neuronal artificial y su AVATAR actual, el aprendizaje profundo aún no es tan sofisticado como nuestro cerebro; La implementación del mecanismo de aprendizaje para dicho cerebro será difícil ya que necesita una gran cantidad de datos de nivel.

Tercero, el papel de la mente tiene una contribución importante en esa vida artificial. Entonces, tienes que implementar esa mente artificial a través del aprendizaje de refuerzo.

Pero, en lo que respecta a la eficiencia, dicha sociedad debe implementarse según las tres leyes que he mencionado; similar a las leyes de robótica establecidas por Asimov.

Finalmente, como predije , dicha sociedad artificial desempeñará un papel importante para obtener una inteligencia artificial fuerte o inteligencia artificial general en el campo del aprendizaje automático.

Neuroevolution of Augmenting Topologies (NEAT) es precisamente ANN y una variante de GA para lograr lo que pides. Consideraría que NEAT es una buena opción para muchos escenarios de vida artificial (a-life).

HyperNEAT es especialmente adecuado para una vida en la que está diseñado para codificar información espacial. Los juegos de mesa, el reconocimiento de personajes y cualquier cosa con subestructuras cuasiperiódicas probablemente funcionarían muy bien con HyperNEAT.

Consulte las revistas de prensa del MIT – Vida artificial – Resumen para obtener más información.

NEAT es una especie de “secreto mejor guardado”. Demasiado bien cuidado. Me sorprende que no se conozca mejor.

NeuroEvolution of Augmenting Topologies está disponible en muchos idiomas diferentes, y soy responsable de la implementación de Ruby ( http://www.rubyneat.de/ ).

He jugado con redes neuronales y he desarrollado comportamientos con éxito en criaturas artificiales. No uso una AG típica, sino una selección natural; solo el más fuerte sobrevive.

En pocas palabras: tengo criaturas con sensores que pueden obtener información sobre otras criaturas (color, sonido, salud, etc.) y su entorno. Comienzo la simulación con redes neuronales (cerebros) y criaturas generadas al azar. Luego los dejo ‘vivir’ en su entorno y cuando una criatura obtiene suficientes puntos (puntaje recompensado por recolectar comida o matar a otras criaturas y castigar por matar a su propia especie, etc., cualesquiera que sean las reglas), simplemente las reproduzco al azar mutaciones dos criaturas mutadas de uno de los padres. Les lleva tiempo desarrollar comportamientos específicos, pero es divertido observarlos y hacerles la vida más difícil cuando ‘llegan allí’.

Esta pregunta implica que usted no sabe lo suficiente sobre ninguno de los tres temas para hacer una programación relacionada con esta pregunta; los tres son en su mayoría temas no relacionados que no tendrán mucha relevancia entre sí (las personas han usado algoritmos genéticos para pesos ANN) pero no es muy eficiente)