Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matheusfd3/ia-flappy-bird
Machine Learning é um projeto de estudo pessoal utilizando redes neurais e algoritmos genéticos.
https://github.com/matheusfd3/ia-flappy-bird
2022 ai genetic-algorithms machine-learning neural-network synapticjs
Last synced: about 2 months ago
JSON representation
Machine Learning é um projeto de estudo pessoal utilizando redes neurais e algoritmos genéticos.
- Host: GitHub
- URL: https://github.com/matheusfd3/ia-flappy-bird
- Owner: matheusfd3
- Created: 2020-02-24T18:02:41.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-06-28T16:46:19.000Z (over 2 years ago)
- Last Synced: 2024-04-28T05:50:02.189Z (9 months ago)
- Topics: 2022, ai, genetic-algorithms, machine-learning, neural-network, synapticjs
- Language: JavaScript
- Homepage:
- Size: 151 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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
### 2.0v