Neuroevolução com o algoritmo NEAT e suas Extensões

22
Aprendizagem de Máquina Rafael C.P.

description

 

Transcript of Neuroevolução com o algoritmo NEAT e suas Extensões

Page 1: Neuroevolução com o algoritmo NEAT e suas Extensões

Aprendizagem de Máquina

Rafael C.P.

Page 2: Neuroevolução com o algoritmo NEAT e suas Extensões

Roteiro

1.Classificador Naïve Bayes2.Q(λ)-Learning3.Gustafson-Kessel4.Neuroevolução

Page 3: Neuroevolução com o algoritmo NEAT e suas Extensões

Classificador Naïve Bayes

• Implementação: o Algoritmo sugerido na última página do

documento referente às aulas de modelagem estatística. 

o Linguagem Python.• Base de Dados:

o Base de dados de spam do sistema de comentários de um blog em espanhol e inglês.

o Pré-processamento para a retirada de espaços, quebras de linha e caracteres especiais, gerando um  no qual cada linha corresponde a um comentário deixado no blog.

Page 4: Neuroevolução com o algoritmo NEAT e suas Extensões

Classificador Naïve Bayes - Resultado• 653 comentários • Resultados com Cross-Validation Leave-One-

Out:o Acurácia: 91.71% (~598.83 acertos)o Precisão: 99.03%o Recall: 91.27%o Fall-Out: 94.43%o Medida-F: 94.99%

 

Page 5: Neuroevolução com o algoritmo NEAT e suas Extensões

Classificador Naïve Bayes - Erros

• Falsos Negativos o "Sorry I ment can you add custom text on images using this class also Like in

the above example" - O dono do blog marcou como spam apenas por ser duplicada (flood). A original não foi marcada como spam, confundindo o algoritmo.

o "good article thanks for the link and your blog is nice" - Parece uma mensagem inocente, mas provavelmente o autor usou outro campo de formulário (não disponível na base) para divulgar seu próprio site. Inclusive pode ter sido escrita dessa maneira exatamente pensando em burlar filtros automáticos.

• Falsos Positivos o "Buy hydrocodone no prescription Buy hydrocodone without a prescription Buy

hydrocodone Drugs online cheap hydrocodone buy" - Obviamente spam, mas o dono do blog esqueceu de marcar.

o "" - Mensagem vazia. Portanto, o algoritmo a rotulou como spam utilizando a probabilidade a priori (86%). O dono do blog não a marcou como spam, embora pudesse ser enquadrada como "mensagem não solicitada", ou seja, spam.

Page 6: Neuroevolução com o algoritmo NEAT e suas Extensões

Q(λ)-Learning

• Arquitetura genérica e básica para testes de I.A.o Environment (Ambiente)

Map2D (Mapa 2D) Cliff (Penhasco)

o Agent (Agente) ReinforcementLearner (Aprendiz por Reforço)

QLearner• Linguagem Python• Bibliotecas NumPy, PyGame e PyLab / MatPlotLib• Sub-classes especializadas em aprendizado por

reforço e seus algoritmos.

Page 7: Neuroevolução com o algoritmo NEAT e suas Extensões

Q(λ)-Learning - Interface Gráfica

Page 8: Neuroevolução com o algoritmo NEAT e suas Extensões

Q(λ)-Learning - Resultados

Page 9: Neuroevolução com o algoritmo NEAT e suas Extensões

Q(λ)-Learning - Resultados (Softmax)

Page 10: Neuroevolução com o algoritmo NEAT e suas Extensões

Q(λ)-Learning - Resultados (Agenda)

Page 11: Neuroevolução com o algoritmo NEAT e suas Extensões

Gustafson-Kessel

• Linguagem Python• Bibliotecas Numpy e PyLab / MatPlotLib

Page 12: Neuroevolução com o algoritmo NEAT e suas Extensões

Neuroevolução com NEAT & cia

• Backprop: Mínimos locais; Sem aprendizagem de topologia.

• Solução: Aprendizagem de redes neurais via algoritmos genéticos.

• NEAT e HyperNEAT.

Page 13: Neuroevolução com o algoritmo NEAT e suas Extensões

NEAT

• 3 Premissas:o Problema das competições de convençõeso Especiação: Tempo para otimizar novas topologiaso Complexificação

Page 14: Neuroevolução com o algoritmo NEAT e suas Extensões

NEAT - Representação

Page 15: Neuroevolução com o algoritmo NEAT e suas Extensões

NEAT - Inicialização

Page 16: Neuroevolução com o algoritmo NEAT e suas Extensões

NEAT - Seleção• Especiação via compartilhamento de fitness• Métrica de similaridade via marcadores de

histórico• Fitness dos indivíduos é dividido pelo total de

indivíduos da mesma espécie• Melhores de cada espécie são selecionados• Piores em geral são eliminados

Page 17: Neuroevolução com o algoritmo NEAT e suas Extensões

NEAT - Mutação• Perturbação de pesos• Adição de conexões• Adição de neurônios

Page 18: Neuroevolução com o algoritmo NEAT e suas Extensões

NEAT - Crossover

Page 19: Neuroevolução com o algoritmo NEAT e suas Extensões

NEAT - Experimentos

Page 20: Neuroevolução com o algoritmo NEAT e suas Extensões

CPPN• Compositional Pattern Producing Networks• Redes neurais com diversas funções de ativação • Modelo de desenvolvimento de organismos• Arte evolucionária• Evolução através do algoritmo NEAT

Page 21: Neuroevolução com o algoritmo NEAT e suas Extensões

HyperNEAT

• Evolui CPPNs para codificação indireta de indivíduos• Entrada da  CPPN: Coordenadas de 2 neurônios• Saída da CPPN: Peso entre os 2 neurônios

Page 22: Neuroevolução com o algoritmo NEAT e suas Extensões

Referências• Bryson, A. (1969). Ho-Yu-Chi. Applied Optimal Control, Optimization, Estimation and

control, Braisdell Publising Company, Waltham, Massachusetts.• D’Ambrosio, D. and Stanley, K. (2007). A novel generative encoding for exploiting

neural network sensor and output geometry. In Proceedings of the 9th annual conference on Genetic and evolutionary computation, page 981. ACM.

• Gomez, F. and Miikkulainen, R. (1999). Solving non-Markovian control tasks with neuroevolution. In International Joint Conference on Artificial Intelligence, volume 16, pages 1356–1361. Citeseer.

• Gruau, F., Whitley, D., and Pyeatt, L. (1996). A comparison between cellular encoding and direct encoding for genetic neural networks. In Proceedings of the First Annual Conference on Genetic Programming, pages 81–89. MIT Press.

• Hastings, E., Guha, R., and Stanley, K. (2009). Evolving Content in the Galactic Arms Race Video Game.

• Radding, C. (1982). Homologous pairing and strand exchange in genetic recombination. Annual Review of Genetics, 16(1):405–437.

• Rumelhart, D., McClelland, J., et al. (1986). Parallel distributed processing: Explorations in the microstructure of cognition (Vols. 1 and 2). Cambridge Ma.

• Secretan, J., Beato, N., Ambrosio, D., Rodriguez, A., Campbell, A., and Stanley, K. (2008). Picbreeder: evolving pictures collaboratively online.

• Stanley, K. (2006). Exploiting regularity without development. In Proceedings of the AAAI Fall Symposium on Developmental Systems.

• Stanley, K. and Miikkulainen, R. (2002). Evolving neural networks through augmenting topologies. Evolutionary Computation, 10(2):99–127.