Neuroevolução com o algoritmo NEAT e suas Extensões
-
Upload
rafael-pinto -
Category
Documents
-
view
888 -
download
4
description
Transcript of Neuroevolução com o algoritmo NEAT e suas Extensões
Aprendizagem de Máquina
Rafael C.P.
Roteiro
1.Classificador Naïve Bayes2.Q(λ)-Learning3.Gustafson-Kessel4.Neuroevolução
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.
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%
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.
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.
Q(λ)-Learning - Interface Gráfica
Q(λ)-Learning - Resultados
Q(λ)-Learning - Resultados (Softmax)
Q(λ)-Learning - Resultados (Agenda)
Gustafson-Kessel
• Linguagem Python• Bibliotecas Numpy e PyLab / MatPlotLib
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.
NEAT
• 3 Premissas:o Problema das competições de convençõeso Especiação: Tempo para otimizar novas topologiaso Complexificação
NEAT - Representação
NEAT - Inicialização
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
NEAT - Mutação• Perturbação de pesos• Adição de conexões• Adição de neurônios
NEAT - Crossover
NEAT - Experimentos
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
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
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.