Como devo codificar a estrutura de uma rede neural em um genoma?

14

Para um espaço de problema determinístico, preciso encontrar uma rede neural com a estrutura ideal de nós e links. Eu quero usar um algoritmo genético para simular muitas redes neurais para encontrar a melhor estrutura de rede para o domínio do problema.

Eu nunca usei algoritmos genéticos para uma tarefa como essa antes. Quais são as considerações práticas? Especificamente, como devo codificar a estrutura de uma rede neural em um genoma?

Mithical
fonte

Respostas:

12

A Seção 4.2 de "Fundamentos da Metaheurística" contém diversas informações sobre formas alternativas de codificar estruturas de gráficos por meio de Algoritmos Genéticos.

Com particular atenção à evolução das RNAs, eu pessoalmente não estaria inclinado a implementar esse tipo de coisa 'do zero':

O campo da neuroevolução já existe há algum tempo, e a implementação de alguns dos métodos, como a Neuroevolução de Topologias Aumentadas ( NEAT ), agora incorporam os resultados de muita experiência prática.

De acordo com o link acima:

Também desenvolvemos uma extensão do NEAT, chamada HyperNEAT, que pode evoluir redes neurais com milhões de conexões e explorar regularidades geométricas no domínio da tarefa. A página do HyperNEAT inclui links para publicações e uma explicação geral da abordagem.

NietzscheanAI
fonte
Que "Essentials of Metaheuristics" parece muito interessante! Isso é algo que está realmente no roteiro para o autômato M, já que o MCTS puro nunca é ideal em jogos M. No wiki metaheurístico : "Na ciência da computação e na otimização matemática, uma metaheurística é um procedimento ou heurística de nível superior desenvolvido para encontrar, gerar ou selecionar uma heurística (algoritmo de pesquisa parcial) que pode fornecer uma solução suficientemente boa para um problema de otimização, especialmente com informações incompletas ou imperfeitas ou capacidade limitada de computação ".
DukeZhou
4

O uso de algoritmos evolutivos para desenvolver redes neurais é chamado de neuroevolução .

Alguns algoritmos de neuroevolução otimizam apenas os pesos de uma rede neural com topologia fixa. Isso não parece o que você quer. Outros algoritmos de neuroevolução otimizam os pesos e a topologia de uma rede neural. Esses tipos de algoritmos parecem mais apropriados para seus objetivos e às vezes são chamados de TWEANNs (redes neurais de topologia e evolução de peso).

Um algoritmo popular é chamado NEAT , e provavelmente é um bom lugar para começar, mesmo que haja uma infinidade de implementações, uma das quais espero que esteja escrita no seu idioma favorito. Isso daria pelo menos uma linha de base para trabalhar.

A NEAT codifica um genoma de rede neural diretamente como uma estrutura gráfica. As mutações podem operar na estrutura da rede adicionando novos links (conectando dois nós não conectados anteriormente) ou novos nós (dividindo uma conexão existente) ou podem operar apenas alterando os pesos associados às arestas nos gráficos (chamados mutating os pesos). Para se ter uma idéia da ordem de magnitude dos tamanhos das RNAs com as quais esse algoritmo específico trabalha, provavelmente haveria dificuldades com mais de 100 ou 200 nós.

Existem TWEANNs mais escaláveis, mas são mais complexos e fazem suposições sobre os tipos de estruturas que eles geram que nem sempre são produtivos na prática. Por exemplo, outra maneira de codificar a estrutura de uma rede neural é como o produto de um padrão de semente que é repetidamente expandido por uma gramática (por exemplo, um sistema L). É possível explorar muito mais facilmente estruturas maiores, mas, como são geradas por uma gramática, elas têm uma sensação característica de repetição automática. O HyperNEAT é uma extensão popular do NEAT que faz um tipo diferente de suposição (que padrões de pesos podem ser facilmente expressos como uma função da geometria) e pode ser dimensionado para RNAs com milhões de conexões quando essa suposição se encaixa em um domínio específico.

Existem alguns documentos de pesquisa vinculados no link superior, se você quiser observar uma variedade maior de técnicas.

Joel Lehman
fonte