Skip to content

Machine Learning é um projeto de estudo pessoal utilizando redes neurais e algoritmos genéticos.

Notifications You must be signed in to change notification settings

matheusfd3/IA-flappy-bird

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Machine learning

https://matheusfd3.github.io/IA-flappy-bird/

Introdução

Uma inteligência artificial para ensinar o passarinho do Flappy Bird a passar entre os obstáculos, usando Redes Neurais e um Algoritmo Genético.

Rede neural

Bom, para começarmos a entender como funciona primeiro precisamos entender como nós humanos conseguimos jogar um jogo como o Flappy Bird. Concorda comigo que para um humano jogar nós precisamos processar duas informações essenciais: altura do pássaro e a altura do gap, e o que fazemos? Colocamos o pássaro na mesma altura do gap. E adivinha? É exatamente isso que a nossa rede neural vai precisar para conseguir jogar, e o mais legal disso é que ela vai aprender isso sozinha, só vamos dar as informações que ela precisa, mas ela não sabe como processar essas informações ainda.

Entradas

  • Altura do pássaro
  • Altura do Gap

Saídas

Com as nossas entradas, a rede faz o processamento dela e retorna um valor entre 0 e 1. Eu defini que o valor de saída faz o seguinte:

  • saída > 0.50 = voa.
  • saída < 0.50 = Não voa.

Algoritmo genético

Cada Geração consiste em 250 redes neurais (Genomas). Cada genoma é testado no jogo, mapeando constantemente as entradas de leitura do jogo para as entradas da rede neural e obtendo a saída/ativação da rede que define se o pássaro voa ou não. Ao testar cada genoma, acompanhamos sua "aptidão" contando obstáculos ultrapassados no jogo. Quando uma geração inteira morre, selecionamos os dois melhores e em seguida aplicamos mutações na Rede Neural, criando um novo genoma. Fazemos o cruzamento/mutação até obtermos 250 genomas novamente e repetimos constantemente até nascer uma rede neural capaz de jogar sem dificuldade.

Informações

Pode demorar um pouco ou até parecer que as redes não estão evoluindo, mas com paciência e no decorrer de gerações você verá a evolução diante dos seus olhos. Pelos meus testes você não vai precisar mais que 50 gerações.

Assista essa beleza em ação no seu navegador.

https://matheusfd3.github.io/IA-flappy-bird/

Versões

1.0v

machine learning

2.0v

machine learning

About

Machine Learning é um projeto de estudo pessoal utilizando redes neurais e algoritmos genéticos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published