Neuroevolución cibercalmar

Red neuronal en evolución


Las redes neuronales artificiales imitan los sistemas nerviosos biológicos reales. Contienen neuronas y conexiones entre ellas, proporcionando la conversión de señales entrantes en un resultado de salida significativo. En el campo del aprendizaje automático, estas redes a menudo se inicializan con conexiones aleatorias entre neuronas, después de lo cual la red aprende hasta que comienza a comportarse de la manera correcta. Este enfoque es bastante aplicable, sin embargo, los animales tienen muchos sistemas nerviosos simples que funcionan de forma inmediata: nadie enseña a los peces a nadar ni a las mariposas a volar, a pesar de que su comportamiento es creado por redes de neuronas. Sus sistemas nerviosos no son el resultado de la inicialización aleatoria y el entrenamiento posterior, sino de la evolución.. Después de muchas generaciones, la naturaleza ha creado un patrón de células y conexiones que proporciona un comportamiento complejo y exitoso.

Para crear redes neuronales que proporcionen comportamiento sin aprendizaje, puede usar la neuroevolución . Los algoritmos evolutivos (como el que usé para realizar la evolución de las plantas ) someten el código genético a la evolución durante un largo período de tiempo. El código genético (el modelo para el ADN) y el organismo que representa son inicialmente muy simples, pero durante generaciones, las pequeñas mutaciones aumentan la complejidad favorable y agregan funciones que estimulan la propagación de estas propiedades.

Calamar digital


Para demostrar el efecto de la neuroevolución, quiero exponer la evolución del calamar digital. Los calamares tienen las siguientes propiedades:


Figura 1: calamar flotante.

  • Pueden tener cualquier cantidad de tentáculos de diferentes longitudes.
  • Cada mano está controlada por una neurona de salida, bombeándola en una dirección con una señal de salida baja y en la otra con una señal de salida alta.
  • Los calamares tienen cabeza ; El tamaño de la cabeza determina el número máximo posible de neuronas.
  • La masa del calamar está determinada por el tamaño de la cabeza y el número de segmentos del tentáculo.
  • Los calamares flotan en un fluido simulado lleno de puntos que denotan comida. Al tocar estos puntos, el calamar los "come", y la puntuación del calamar se calcula como el número de puntos comidos, dividido por su masa.

Estas propiedades, gracias a la evolución, deberían crear calamares que efectivamente nadan en el medio ambiente, comiendo tanta comida como sea posible. Como también tienen masa, los cuerpos de calamar deben ser efectivos: los cuerpos pesados ​​y los tentáculos grandes requieren más alimento para tener una razón para su creación evolutiva.

Dado que los calamares pueden tener propiedades variables (por ejemplo, tamaño de la cabeza y configuración del tentáculo), estas propiedades también evolucionan. El ADN del calamar contiene no solo un "dibujo" de su cerebro, sino también un plan del cuerpo.

La figura 1 muestra un calamar simulado con dos manos. El movimiento oscilante de las manos se garantiza mediante la adición de fuerza de resorte a los segmentos del brazo; Si los músculos dejan de mover los brazos, los segmentos se alinearán gradualmente hasta que los brazos se conviertan en líneas rectas. Para calcular la magnitud de la aceleración, se suma todo el movimiento lateral. Todo el movimiento lateral que se muestra en la figura se agrega a este número. Balanceando los tentáculos detrás del cuerpo, el calamar proporciona movimiento hacia adelante.

Spike redes neuronales


Elegir la red neuronal adecuada para nuestro proyecto no es una tarea fácil. Hay muchos tipos diferentes de redes neuronales; en este artículo contiene una descripción general fácil de algunos de ellos. La tarea del manejo de los calamares en ciertos aspectos es diferente al trabajo de redes conocidas:

  • «-». , . - , .
  • . «-», .
  • , . , .

Estos requisitos se cumplen mediante una red neuronal de pico (pulso) . Dichas redes funcionan en tiempo real, fueron diseñadas para simular con mayor precisión la vida silvestre. Al igual que las neuronas reales, las células en una red neuronal espiga acumulan potencial, recogido gradualmente de todas las señales de entrada y, en ausencia de señales de entrada, vuelven gradualmente a su estado "neutral". No se requiere que las redes neuronales de pico se adhieran a un diagrama de cableado estricto. Consisten en una capa de neuronas de entrada, una capa de neuronas de salida (en nuestro caso, tentáculos de control) y varias neuronas entre ellas, llamada capa oculta. Las neuronas en la capa oculta se pueden conectar a las neuronas de entrada y salida, pero las neuronas también se pueden desconectar. En nuestra tarea, las neuronas de capa oculta pueden conectarse entre sí.


Figura 2: función logística.

Todas las neuronas del sistema nervioso tienen una función de activación . Esta función determina el valor de salida de una neurona en función de la suma de sus señales de entrada. Las neuronas están conectadas por axones que conectan las neuronas fuente y objetivo. El axón agrega a la activación de la neurona objetivo el valor de salida de la neurona original multiplicado por el peso del axón (que puede ser un número positivo o negativo). Luego, la función de activación determina el valor de salida de la neurona en función de su activación. Para esta simulación, seleccionamos la función logística como la función de activación :

11+mi-una


En esta ecuación unaes la activación de una neurona. La figura 2 muestra un gráfico de la función. Auna=0 0 el valor de salida es0,5 ; En nuestra simulación, esto es útil porque la red debe ser capaz de proporcionar un comportamiento incluso en ausencia de un valor de entrada. Si el valor de salida predeterminado no es igual a cero, entonces algunas señales fluirán constantemente a través del sistema. Significado teóricouna puede ser muy pequeño o muy grande, pero las asíntotas de la función logística garantizan que el valor de salida siempre estará en el rango[0 0,1] . Debido a esto, los valores extremos de salida del sistema no se propagan.

Simulación de la evolución


El entorno de simulación consta de los siguientes componentes:

  • Cualquier número de calamares con diferentes estructuras corporales y redes neuronales con púas para controlar sus extremidades.
  • Alimentos esparcidos por el medio ambiente.

Para comenzar a simular la evolución, se simula una vida útil fija de cada generación en el sistema. En mis simulaciones, elegí segmentos de 20 a 30 segundos. Después de este tiempo, se selecciona el calamar más productivo, que se duplica varias veces para crear una nueva generación de calamar. Antes de realizar la siguiente simulación, todos los calamares sufren una ligera mutación. Las siguientes propiedades pueden mutar:

  • El radio del cuerpo, y con él el número máximo permitido de neuronas en el cerebro del calamar.
  • Número y ubicación de tentáculos.
  • La longitud de los tentáculos.
  • El número de neuronas en el cerebro.
  • Conexiones axónicas entre neuronas (las conexiones pueden aparecer o desaparecer, los pesos de los enlaces también pueden cambiar).

Por el momento, el cerebro de calamar no contiene neuronas de entrada. El número de neuronas de salida siempre es igual al número de tentáculos, y se asigna una neurona de salida a cada tentáculo. Si el tentáculo desaparece durante la mutación, también se elimina la neurona de salida correspondiente. Cuando aparece un nuevo tentáculo durante la mutación, recibe una nueva neurona de salida con conexiones aleatorias.

El código fuente de la simulación se carga en GitHub y la simulación se realiza en el navegador .

resultados



Figura 3: El sistema nervioso crea impulsos interminables.

Al realizar una simulación, los calamares en movimiento generalmente se obtienen en varios cientos de generaciones. Cuando una estrategia de natación de trabajo surge evolutivamente, generalmente evoluciona con el tiempo hacia la versión más óptima.

El sistema nervioso puede ser visualizado. La Figura 3 muestra un sistema nervioso de calamar simple con dos brazos. La red contiene cinco neuronas, indicadas por círculos naranjas, y dos neuronas de salida, indicadas por círculos azules. Cuando aumenta la señal de salida de una neurona, las neuronas se vuelven más brillantes. Cuando la señal de salida disminuye, los círculos se vuelven transparentes. Los axones se visualizan mediante líneas discontinuas que conectan las neuronas correspondientes. Cuando el axón transmite una señal (y afecta a la neurona objetivo), la línea punteada se vuelve más visible y la línea punteada se mueve en la dirección de la señal.


Figura 4: Calamares flotantes evolucionados. Tenga en cuenta que no todos los agentes son particularmente efectivos; algunos contienen mutaciones inútiles.

La Figura 4 muestra varios calamares flotando en un entorno de simulación. Estos calamares usan dos tentáculos que se balancean simultáneamente. Entre los agentes notable variabilidad:

  • Hay varios tramos de tentáculos, pero sus patrones de movimiento son aproximadamente los mismos.
  • Los dos agentes en la parte inferior de la imagen han recibido evolutivamente tentáculos adicionales, que aún no son particularmente útiles. Aumentan la masa de calamar, reduciendo así su puntuación.

Conclusión


La simulación en su estado actual demuestra la efectividad de la neuroevolución y forma la base para un mayor desarrollo del sistema:

  • . , .
  • . , .
  • , , .
  • . . , . , .

Estas adiciones no requerirán ningún cambio en el mecanismo básico de la neuroevolución, simplemente permitirán que aparezcan estrategias más diversas. La universalidad y adaptabilidad del marco mostrado de neuroevolución lo convierten en una herramienta interesante para muchas otras áreas, en particular, los estudios de la vida artificial .

All Articles