Neuroevolução - Neuroevolution

Neuroevolution , ou neuro-evolução , é uma forma de inteligência artificial que utiliza algoritmos evolucionários para gerar redes neurais artificiais (RNA), parâmetros, topologia e regras. É mais comumente aplicado na vida artificial , jogos em geral e robótica evolutiva . O principal benefício é que a neuroevolução pode ser aplicada de forma mais ampla do que algoritmos de aprendizagem supervisionada , que requerem um programa de pares de entrada-saída corretos. Em contraste, a neuroevolução requer apenas uma medida do desempenho de uma rede em uma tarefa. Por exemplo, o resultado de um jogo (ou seja, se um jogador ganhou ou perdeu) pode ser facilmente medido sem fornecer exemplos rotulados de estratégias desejadas. A neuroevolução é comumente usada como parte do paradigma de aprendizado por reforço e pode ser contrastada com técnicas convencionais de aprendizado profundo que usam gradiente descendente em uma rede neural com uma topologia fixa.

Características

Muitos algoritmos de neuroevolução foram definidos. Uma distinção comum é entre algoritmos que evoluem apenas a força dos pesos de conexão para uma topologia de rede fixa (às vezes chamada de neuroevolução convencional), em oposição àqueles que evoluem tanto a topologia da rede quanto seus pesos (chamados de TWEANNs, para Topologia e Peso Algoritmos de redes neurais artificiais em evolução).

Uma distinção separada pode ser feita entre os métodos que desenvolvem a estrutura das RNAs em paralelo aos seus parâmetros (aqueles que aplicam algoritmos evolutivos padrão) e aqueles que os desenvolvem separadamente (por meio de algoritmos meméticos ).

Comparação com gradiente descendente

A maioria das redes neurais usa gradiente descendente em vez de neuroevolução. No entanto, por volta de 2017, pesquisadores do Uber afirmaram que descobriram que algoritmos de neuroevolução estrutural simples eram competitivos com algoritmos de aprendizagem profunda de gradiente descendente modernos e sofisticados , em parte porque a neuroevolução era menos provável de ficar presa em mínimos locais. Na revista Science , o jornalista Matthew Hutson especulou que parte da razão pela qual a neuroevolução está tendo sucesso onde falhou antes é devido ao aumento do poder computacional disponível na década de 2010.

Codificação direta e indireta

Algoritmos evolutivos operam em uma população de genótipos (também conhecidos como genomas ). Na neuroevolução, um genótipo é mapeado para um fenótipo de rede neural que é avaliado em alguma tarefa para derivar sua aptidão .

Em esquemas de codificação direta, o genótipo mapeia diretamente para o fenótipo. Ou seja, cada neurônio e conexão na rede neural são especificados direta e explicitamente no genótipo. Em contraste, nos esquemas de codificação indireta, o genótipo especifica indiretamente como essa rede deve ser gerada.

Codificações indiretas são frequentemente usadas para atingir vários objetivos:

  • modularidade e outras regularidades;
  • compressão do fenótipo para um genótipo menor, fornecendo um espaço de busca menor;
  • mapear o espaço de busca (genoma) para o domínio do problema.

Taxonomia de sistemas embriogênicos para codificação indireta

Codificações tradicionalmente indiretas que empregam embriogênese artificial (também conhecido como desenvolvimento artificial ) foram categorizadas ao longo das linhas de uma abordagem gramatical versus uma abordagem de química celular . O primeiro envolve conjuntos de regras na forma de sistemas de reescrita gramatical. O último tenta imitar como as estruturas físicas emergem na biologia por meio da expressão gênica. Os sistemas de codificação indireta costumam usar aspectos de ambas as abordagens.

Stanley e Miikkulainen propõem uma taxonomia para sistemas embriogênicos que se destina a refletir suas propriedades subjacentes. A taxonomia identifica cinco dimensões contínuas, ao longo das quais qualquer sistema embriogênico pode ser colocado:

  • Destino da célula (neurônio) : as características finais e o papel da célula no fenótipo maduro. Esta dimensão conta o número de métodos usados ​​para determinar o destino de uma célula.
  • Direcionamento : o método pelo qual as conexões são direcionadas das células de origem para as células de destino. Isso varia de direcionamento específico (origem e destino são explicitamente identificados) até direcionamento relativo (por exemplo, com base na localização das células entre si).
  • Heterocronia : o tempo e a ordem dos eventos durante a embriogênese. Conta o número de mecanismos para alterar o tempo de eventos.
  • Canalização : quão tolerante o genoma é a mutações (fragilidade). Varia desde a exigência de instruções genotípicas precisas até uma alta tolerância a mutações imprecisas.
  • Complexificação : a capacidade do sistema (incluindo algoritmo evolutivo e mapeamento de genótipo para fenótipo) de permitir a complexificação do genoma (e, portanto, do fenótipo) ao longo do tempo. Vai desde permitir apenas genomas de tamanho fixo até permitir genomas de comprimento altamente variável.

Exemplos

Exemplos de métodos de neuroevolução (aqueles com codificações diretas são necessariamente não embriogênicos):

Método Codificação Algoritmo evolutivo Aspectos evoluídos
Evolução neuro-genética por E. Ronald, 1994 Direto Algoritmo genético Pesos de rede
Codificação Celular (CE) por F. Gruau, 1994 Indireto, embriogênico (árvore gramatical usando expressões S ) Programação genética Estrutura e parâmetros (simultâneos, complexificação)
GNARL de Angeline et al., 1994 Direto Programação evolucionária Estrutura e parâmetros (simultâneos, complexificação)
EPNet de Yao e Liu, 1997 Direto Programação evolutiva (combinada com retropropagação e recozimento simulado ) Estrutura e parâmetros (mistos, complexificação e simplificação)
NeuroEvolution of Augmenting Topologies (NEAT) de Stanley e Miikkulainen, 2002 Direto Algoritmo genético . Rastreia genes com marcações históricas para permitir o cruzamento entre diferentes topologias e protege a inovação por meio da especiação. Estrutura e parâmetros
NeuroEvolution of Augmenting Topologies baseada em hipercubo (HyperNEAT) por Stanley, D'Ambrosio, Gauci, 2008 Indireto, não embriogênico (padrões espaciais gerados por uma rede de produção de padrão de composição (CPPN) dentro de um hipercubo são interpretados como padrões de conectividade em um espaço de dimensão inferior) Algoritmo genético . O algoritmo NEAT (acima) é usado para evoluir o CPPN. Parâmetros, estrutura fixa (funcionalmente totalmente conectada)
Evolvable Substrate Hypercube-based NeuroEvolution of Augmenting Topologies (ES-HyperNEAT) por Risi, Stanley 2012 Indireto, não embriogênico (padrões espaciais gerados por uma rede de produção de padrão de composição (CPPN) dentro de um hipercubo são interpretados como padrões de conectividade em um espaço de dimensão inferior) Algoritmo genético . O algoritmo NEAT (acima) é usado para evoluir o CPPN. Parâmetros e estrutura de rede
Evolutionary Acquisition of Neural Topologies (EANT / EANT2) por Kassahun e Sommer, 2005 / Siebel e Sommer, 2007 Diretos e indiretos, potencialmente embriogênicos (Codificação Genética Comum) Programação evolutiva / estratégias de evolução Estrutura e parâmetros (separadamente, complexificação)
Neuro-Evolution Interactively Constrained (ICONE) por Rempis, 2012 Direto, inclui máscaras de restrição para restringir a pesquisa a coletores de topologia / parâmetro específicos. Algoritmo evolutivo . Usa máscaras de restrição para reduzir drasticamente o espaço de pesquisa por meio da exploração do conhecimento do domínio . Estrutura e parâmetros (separadamente, complexificação, interativo)
Deus Ex Neural Network (DXNN) de Gene Sher, 2012 Direto / Indireto, inclui restrições, ajuste local e permite a evolução para integrar novos sensores e atuadores. Algoritmo memético . Evolui a estrutura e os parâmetros da rede em diferentes escalas de tempo. Estrutura e parâmetros (separadamente, complexificação, interativo)
Arquitetura de Neuroevolução Unificada com espectro diversificado (SUNA) por Danilo Vasconcellos Vargas, Junichi Murata ( código para download ) Direto, apresenta a Representação Neural Unificada (representação que integra a maioria dos recursos de rede neural da literatura). Algoritmo genético com um mecanismo de preservação de diversidade denominado Spectrum-diversidade que escala bem com o tamanho do cromossomo, é independente do problema e se concentra mais na obtenção de diversidade de comportamentos / abordagens de alto nível. Para atingir essa diversidade, o conceito de espectro de cromossomos é introduzido e usado em conjunto com uma população de mapas de novidades . Estrutura e parâmetros (mistos, complexificação e simplificação)
Modular Agent-Based Evolver (MABE) de Clifford Bohm, Arend Hintze e outros. ( Download do código ) Codificação direta ou indireta de redes de Markov , redes neurais, programação genética e outros controladores personalizáveis ​​arbitrariamente. Fornece algoritmos evolutivos, algoritmos de programação genética e permite algoritmos customizados, juntamente com a especificação de restrições arbitrárias. Aspectos evolutíveis incluem o modelo neural e permitem a evolução da morfologia e seleção sexual, entre outros.
Adaptação de matriz de covariância com algoritmo de grade adaptativa classificada por hipervolume (CMA-HAGA) por Shahin Rostami e outros., Direto, inclui um recurso de atavismo que permite que os traços desapareçam e reapareçam em diferentes gerações. Estratégia de evolução multi-objetivo com articulação de preferência ( direção computacional ) Estrutura, pesos e vieses.

Veja também

Referências

links externos