Construyendo un proceso de selección natural con IA

Creado por Fabio Carbone, NeuralEvolution es un experimento que entrena una red neuronal a través de un proceso de selección natural (algoritmo genético) en un escenario donde la única supervivencia es la comida. A medida que avanzan las generaciones, los habitantes de este mundo se hacen cada vez más buenos en conseguir alimento, pero que desafortunadamente no lo logran cuando se dan cuenta de que su mundo es limitado y no hay nada más que aprender.

El mundo que Fabio ha creado es simple y se compone de dos elementos principales: Los Bloop y el alimento. Los Bloop (las bolas blancas) caminan y comen la comida (puntos rojos). El Bloop tiene una salud inicial de 1000 puntos. Cada vez que comen, la salud se incrementa en 100. Si se va a cero muere. El Bloop se mueven por una red neuronal que se muestra en la imagen de abajo. Las entradas de la red neural son la distancia a lo largo del eje X y la distancia en el eje Y de la comida más cercana. Mientras que las salidas son los comandos de movimiento hacia arriba, abajo, derecha, izquierda. Todos los pesos de la red forman el ADN del individuo Bloop, que es su forma de interactuar con el mundo. Además, el ADN de la bloop tiene una variable extra que indica la magnitud del Bloop y por lo tanto su velocidad de movimiento.

Fabio señala que en un primer momento todo Bloop se crea en una instancia al azar y muchos no saben cómo moverse de forma correcta. Rápidamente aprenden y entienden que tienen una pequeña oportunidad de reproducirse si no comen, por lo tanto consiguen mejorar. La reproducción de un Bloop, es obra de la red neuronal, se reproducen con otro Bloop del mismo ADN pero con alguna mutación de cualquier gen o peso.

Web del proyecto: Fabio Carbone

Agregar un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *