A ideia principal do projeto é modelar e implementar uma rede neural artificial simples capaz de jogar o famoso Flappy Bird!! Em outras palavras, encontrar uma função capaz de determinar se o pássaro deve bater as asas ou não.
A fim de tornar o processo de modelagem do problema um pouco mais simples, o jogo utilizado para obtenção dos dados e testes não se trata de uma versão perfeita do jogo original, mas sim uma versão simplificada que mantém a velocidade do pássaro e dos obstáculos sempre constante.
Os dados gerados para o treinamento foram obtidos a partir da observação de uma partida real realizada por uma pessoa e foram armazenados nos arquivos data/data.txt e data/data1.txt.
A arquitetura da rede implementada contou com duas camadas escondidas, e para o treinamento foi utilizada como função de perda o Erro Quadrático Médio e como otimizador o Gradiente Descendente Estocástico.
Por fim, a hipótese assumida é que, dado uma partida de Flappy Bird sob as condições impostas pela nossa implementação, deve haver uma função
Após alguns testes e ajustes na implementação da rede, foi possível verificar a convergência do modelo para a função esperada. Na avaliação final, o modelo foi colocado para jogar sozinho em uma cópia da versão utilizada para gerar os dados, disponível em flappy_learned.py.