Neuroevolução Cybercalmar

Rede neural em evolução


As redes neurais artificiais imitam os sistemas nervosos biológicos reais. Eles contêm neurônios e conexões entre eles, proporcionando a conversão de sinais recebidos em um resultado de saída significativo. No campo do aprendizado de máquina, essas redes geralmente são inicializadas com conexões aleatórias entre neurônios, após o que a rede aprende até que comece a se comportar da maneira correta. Essa abordagem é bastante aplicável, no entanto, em animais, existem muitos sistemas nervosos simples que funcionam imediatamente: ninguém ensina peixes a nadar ou borboletas a voar, apesar do fato de que seu comportamento é criado por redes de neurônios. Seu sistema nervoso não é resultado de inicialização aleatória e treinamento subsequente, mas evolução. Depois de muitas gerações, a natureza criou um padrão de células e conexões que fornece um comportamento complexo e bem-sucedido.

Para criar redes neurais que fornecem comportamento sem aprendizado, você pode usar a neuroevolução . Algoritmos evolutivos (como o que eu usei para realizar a evolução das plantas ) sujeitam o código genético à evolução por um longo período de tempo. O código genético (o modelo do DNA) e o organismo que ele representa são inicialmente muito simples, mas por gerações pequenas mutações aumentam a complexidade favorável e acrescentam funções que estimulam a disseminação dessas propriedades.

Lula digital


Para demonstrar o efeito da neuroevolução, quero expor a evolução da lula digital. Lula têm as seguintes propriedades:


Figura 1: Lula flutuante.

  • Eles podem ter qualquer número de tentáculos de diferentes comprimentos.
  • Cada mão é controlada por um neurônio de saída, bombeando-o em uma direção com um sinal de saída baixo e na outra com um sinal de saída alto.
  • Lulas têm uma cabeça ; o tamanho da cabeça determina o número máximo possível de neurônios.
  • A massa da lula é determinada pelo tamanho da cabeça e pelo número de segmentos do tentáculo.
  • As lulas flutuam em um fluido simulado cheio de pontos que indicam comida. Tocando nesses pontos, a lula os "come" e a pontuação da lula é calculada como o número de pontos consumidos, dividido por sua massa.

Essas propriedades, graças à evolução, devem criar lulas que nadam efetivamente no ambiente, comendo o máximo de comida possível. Como eles também têm massa, os corpos das lulas devem ser eficazes: corpos pesados ​​e grandes tentáculos exigem mais comida para ter uma razão para sua criação evolutiva.

Como o squid pode ter propriedades variadas (por exemplo, tamanho da cabeça e configuração do tentáculo), essas propriedades também evoluem. O DNA da lula contém não apenas um "desenho" de seu cérebro, mas também um plano do corpo.

A Figura 1 mostra uma lula simulada com as duas mãos. O movimento oscilante das mãos é garantido pela adição de força da mola aos segmentos do braço; se os músculos param de mover os braços, os segmentos se alinham gradualmente até que os braços se transformem em linhas retas. Para calcular a magnitude da aceleração, todo movimento lateral é somado. Todo o movimento lateral mostrado na figura é adicionado a esse número. Balançando tentáculos atrás do corpo, a lula fornece movimento para a frente.

Spike neural networks


Escolher a rede neural certa para o nosso projeto não é uma tarefa fácil. Existem muitos tipos diferentes de redes neurais; em este artigo contém uma visão geral fácil de alguns deles. A tarefa do gerenciamento de Lula em certos aspectos é diferente do trabalho de redes conhecidas:

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

Esses requisitos são atendidos por uma rede neural de pico (pulso) . Essas redes funcionam em tempo real, foram projetadas para simular com mais precisão a vida selvagem. Como neurônios reais, as células de uma rede neural de pico acumulam potencial, coletadas gradualmente de todos os sinais de entrada e, na ausência de sinais de entrada, retornam gradualmente ao estado "neutro". As redes neurais de pico não são obrigadas a aderir a um diagrama de fiação rigoroso. Eles consistem em uma camada de neurônios de entrada, uma camada de neurônios de saída (no nosso caso, controlando tentáculos) e vários neurônios entre eles, chamados de camada oculta. Os neurônios na camada oculta podem ser conectados aos neurônios de entrada e saída, mas os neurônios também podem ser desconectados. Em nossa tarefa, os neurônios da camada oculta podem ser conectados entre si.


Figura 2: função logística.

Todos os neurônios do sistema nervoso têm uma função de ativação . Esta função determina o valor de saída de um neurônio com base na soma de seus sinais de entrada. Os neurônios são conectados por axônios que conectam os neurônios fonte e alvo. O axônio adiciona à ativação do neurônio alvo o valor de saída do neurônio original multiplicado pelo peso do axônio (que pode ser um número positivo ou negativo). Então a função de ativação determina o valor de saída do neurônio com base em sua ativação. Para esta simulação, selecionamos a função logística como a função de ativação :

11+ea


Nesta equação aÉ a ativação de um neurônio. A Figura 2 mostra um gráfico da função. Ata=0 valor de saída é 0.5; em nossa simulação, isso é útil porque a rede deve ser capaz de fornecer comportamento mesmo na ausência de um valor de entrada. Se o valor padrão de saída não for igual a zero, alguns sinais fluirão constantemente pelo sistema. Teoricamente, significadoa pode ser muito pequeno ou muito grande, mas as assíntotas da função logística garantem que o valor de saída esteja sempre na faixa [0,1]. Por esse motivo, valores extremos de saída do sistema não são propagados.

Simulação da evolução


O ambiente de simulação consiste nos seguintes componentes:

  • Qualquer número de lulas com diferentes estruturas corporais e picos de redes neurais para controlar seus membros.
  • Alimentos espalhados pelo ambiente.

Para começar a simular a evolução, uma vida útil fixa de cada geração é simulada no sistema. Nas minhas simulações, escolhi segmentos de 20 a 30 segundos. Após esse período, a lula mais produtiva é selecionada, duplicada várias vezes para criar uma nova geração de lula. Antes de executar a próxima simulação, todas as lulas sofrem uma ligeira mutação. As seguintes propriedades podem sofrer mutações:

  • O raio do corpo e, com ele, o número máximo permitido de neurônios no cérebro das lulas.
  • Número e localização dos tentáculos.
  • O comprimento dos tentáculos.
  • O número de neurônios no cérebro.
  • Conexões axônicas entre neurônios (as conexões podem aparecer ou desaparecer, os pesos das ligações também podem mudar).

No momento, o cérebro das lulas não contém neurônios de entrada. O número de neurônios de saída é sempre igual ao número de tentáculos, e um neurônio de saída é atribuído a cada tentáculo. Se o tentáculo desaparecer durante a mutação, o neurônio de saída correspondente a ele também será removido. Quando um novo tentáculo aparece durante a mutação, ele recebe um novo neurônio de saída com conexões aleatórias.

O código-fonte da simulação é carregado no GitHub e a simulação é feita no navegador .

resultados



Figura 3: O sistema nervoso criando impulsos infinitos.

Ao realizar uma simulação, as lulas em movimento geralmente são obtidas em várias centenas de gerações. Quando uma estratégia de natação em funcionamento surge evolutivamente, geralmente evolui com o tempo para a versão mais ideal.

O sistema nervoso pode ser visualizado. A Figura 3 mostra um sistema nervoso simples da lula com dois braços. A rede contém cinco neurônios, indicados por círculos laranja, e dois neurônios de saída, indicados por círculos azuis. Quando o sinal de saída de um neurônio aumenta, os neurônios se tornam mais brilhantes. Quando o sinal de saída diminui, os círculos se tornam transparentes. Os axônios são visualizados por linhas tracejadas que conectam os neurônios correspondentes. Quando o axônio transmite um sinal (e afeta o neurônio alvo), a linha tracejada se torna mais visível e a linha tracejada se move na direção do sinal.


Figura 4: Lulas flutuantes evoluídas. Observe que nem todos os agentes são particularmente eficazes; alguns contêm mutações inúteis.

A Figura 4 mostra várias lulas flutuando em um ambiente de simulação. Essas lulas usam dois tentáculos simultaneamente balançando. Entre os agentes, a variabilidade é notável:

  • Existem vários comprimentos de tentáculos, mas seus padrões de movimento são aproximadamente os mesmos.
  • Os dois agentes na parte inferior da imagem receberam evolutivamente tentáculos adicionais, que ainda não são particularmente úteis. Eles aumentam a massa de lula, reduzindo assim sua pontuação.

Conclusão


A simulação em seu estado atual demonstra a eficácia da neuroevolução e forma a base para o desenvolvimento adicional do sistema:

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

Essas adições não exigirão nenhuma alteração no mecanismo básico da neuroevolução, apenas permitirão que estratégias mais diversas apareçam. A universalidade e adaptabilidade da estrutura de neuroevolução mostrada a tornam uma ferramenta interessante para muitas outras áreas, em particular os estudos da vida artificial .

All Articles