2.2.1 Primeiros métodos de codificação direta– década de 80
Os primeiros trabalhos sobre Projeto Automático de Redes Neurais Artificiais (PARNAs) utilizavam codificação direta, dentre eles citam-se: Whitley (1989), Miller, Todd e Hedge (1989), Harp; Samad e Guha (1990). Essas metodologias evoluíam arquiteturas de RNAs diretas. Montana e Davis (1989) propuseram o primeiro enfoque para evoluir pesos de RNAs. Whitley e Schaffer (1992) descreveram uma coleção de vários artigos que utilizam a combinação de AGs e RNAs para evolução de pesos ou topologias de RNAs, o período coberto foi até o ano de 1992. O esquema de codificação direto (ECD) também é ilustrado na pesquisa realizada por Miller, Todd e Hedge (1989), que restringiram seus projetos a redes diretamente alimentadas com um número fixo de unidades para o qual o AG evolui as conexões da topologia.
Na pesquisa de Miller, Todd e Hedge (1989), uma Matriz C=(cij) NxN representa uma rede neural com N nós, onde cij=1 indica a presença ou cij=0 ausência de conexão do nó i para o nó j. A Figura 2 mostra um exemplo de esquema de codificação direta de uma RNA. A matriz de conexão é ilustrada na Figura 2(b). A conversão da matriz de conectividade para o cromossomo é mostrada na Figura 2(c). Miller, Todd e Hedge (1989) usaram um operador de crossover que randomicamente seleciona o índice de uma linha e troca as linhas correspondentes entre dois genitores para criar dois descendentes. O valor de aptidão utilizado foi a soma dos quadrados dos erros durante o treinamento fixados na última época. Os autores testaram o Algoritmo Genético em três tarefas XOR, Four Quadrant e um Codificador/Decodificador simples.
Uma vantagem do método é a simplicidade de implementação. Gruau, Whitley e Pyeatt (1996) considera que uma das grandes desvantagens métodos diretos é que o comprimento do cromossomo, que representa a topologia da rede neural, aumenta exponencialmente à medida que o número de neurônios cresce.
Figura 2 – Um exemplo de codificação direta de uma rede neural artificial direta.
(a), (b) e (c), mostram a sua arquitetura, sua matriz de conectividade e a representação de sua string binária, respectivamente.
Fonte: adaptado de Miller, Todd e Hedge (1989).
2.2.2 NeuroEvolution of Augmenting Topologies (NEAT)
Em 2002, Stanley e Miikkulainen (2002) desenvolveram uma nova metodologia, codificada diretamente, denominada NEAT, a seguir descrevem-se os princípios do NEAT.
2.2.2.1 Codificação Cromossômica do NEAT
O esquema de codificação genético do NEAT é mantido por meio de uma lista onde cada gene especifica o nó de entrada o de saída, o peso da conexão, um gene de conexão que é expresso por um bit habilitado ou não e um número de inovação, conforme ilustrado na Figura 3. As mutações no NEAT podem alterar ambos os pesos e conexões da estrutura da rede. Na mutação adição de conexão (Figura 4), uma única conexão de um gene novo com um peso aleatório é adicionada ligando dois nós previamente desconectados. Na mutação de adição de nó, uma conexão existente é dividida e o novo nó colocado onde a conexão antiga costumava ser colocada. A conexão antiga é desabilitada e duas novas conexões são adicionadas ao genoma.
Figura 3 – Mapeamento genótipo fenótipo no NEAT
Um GENÓTIPO é descrito para produzir o fenótipo. Há três nós de entrada, um escondido e um nó de saída, e sete definições de conexão, uma das quais é recorrente. O segundo gene é desativado, de modo que a ligação
especifica (entre os nodos 2 e 4) não seja expressa no fenótipo, de acordo com o que é mostrado na segunda coluna da segunda lista mostrada acima.
Fonte: adaptado de Stanley e Miikkulainen (2002).
2.2.2.2 Princípios do NEAT
No NEAT sempre que um novo gene aparece (por meio de mutação estrutural), estabelece-se uma cronologia de aparecimento do mesmo no sistema. Desse modo, a origem do histórico de cada gene no sistema é conhecida em toda a evolução (STANLEY; MIIKKULAINEN, 2002). O NEAT protege a inovação através da especiação, a ideia é dividir a população em espécies tal que topologias semelhantes pertençam à mesma espécie, o que se torna um problema de agrupamento de topologias correspondentes. Outra estratégia adotada
pelo NEAT foi minimizar a dimensionalidade através do crescimento incremental de estruturas minimas.
Figura 4 – Os dois tipos de mutação estrutural no NEAT
Ambos os tipos, a adição de uma conexão e adição de um nó, são ilustradas com os genes de conexão de uma rede representada acima por seus fenótipos. O número em cima de cada genoma é o número de inovação desse gene. Os números de inovação são marcos históricos que identificam o histórico original dos antepassados de cada gene. Os novos
genes são atribuídos novos números cada vez maiores. Em adição a uma conexão, um gene de conexão único novo é adicionado ao fim do genoma dado o número inovação seguinte disponível.
Fonte: adaptado de Stanley e Miikkulainen (2002).
O NEAT foi testado na simulação de dois problemas o XOR e o balanceamento de pólos. Em parte, os bons resultados alcançados pelo NEAT são devidos às partes do mesmo, que trabalham juntas. Uma das vantagens do método é encorajar a evolução de soluções mínimas. O método usa codificação direta que não permite representações genotípicas compactas o que é uma desvantagem. A estrutura de dados do NEAT, que armazenam os genótipos (arquiteturas de RNAs), cresce linearmente com o número de sinapses entre dois neurônios, ou seja, o método apresenta problemas de escalabilidade.
2.2.3 Optimization of modular granular neural networks using hierarchical genetic
algorithms (MOHGA)
Sánchez, Melin e Castillo (2015) propuseram um novo modelo de otimização multi- objetivo para um AG hierárquico denominado MOHGA com base na abordagem de micro-GA para otimização de redes neurais modulares. A abordagem é utilizada no reconhecimento da íris. O MOHGA divide os dados automaticamente em grânulos ou submódulos e escolhe quais dados são utilizados para o treinamento e quais são para testes. O método proposto é responsável por determinar o número de grânulos ou submódulos e a porcentagem de dados
para o treinamento das redes e que podem permitir melhores resultados. Entretanto, o método não foi testado em outras aplicações tais como predicação de séries temporais, além disso, o mesmo não possibilita gerar redes neurais recorrentes.
2.2.4 Evolving Artificial Neural Networks
Donate, Sanchez e De Miguel (2012) propuseram um novo método para projeto automático de RNAs, aplicado a PST usando AG. O método altera ambos: os pesos das conexões sinápticas e a topologia das RNAs. O objetivo foi melhorar a precisão da PST. Entretanto, esse projeto foi restrito as redes neurais diretas multicamadas, que não são tão apropriadas para simular esse tipo de tarefa de PST.