Sempre quis colocar em prática os conceitos adquiridos durante meus estudos na área de aprendizado de máquina.
Decidi desenvolver uma Multilayer Perceptron para aprender a jogar o Flappy Bird.
Para isso foi necessário primeiro recriar o jogo do Flappy Bird e depois implementar uma perceptron.
Para jogar o jogo por conta própria, basta executar o arquivo:
$ python flappy_bird_jogo.py
ou
$ python3 flappy_bird_jogo.py
A inteligência artificial foi completamente implementada no arquivo:
IA_flappybird.py
Para observar a IA em treinamento, execute o arquivo:
$ python main.py
Alguns detalhes que utilizei para esta implementação:
- Utilização de 3 sensores para a camada de entrada.
- 5 neurônios para a camada oculta e 1 neurônio para a camada de saída.
- O Bias presente na camanda escondida e de saída.
- Função de ativação ReLu para todos os neurônios da camada oculta.
- Função de ativação tangente hiperbólica para a camada de saída.
Algumas tarefas que farei no futuro:
- Adicionar um requirements.txt
- Organizar o sensor de cada pássaro para a movimentação correta
- Investigar o motivo de alguns pesos gerarem passaros que vão para full para cima e outros para baixo.
- Implementar uma estrutura que cria e deixa visível a estrutura da IA (camada de entrada, camada escondida e a camada de saída).
- Tirar todos os hard coded que deixei.
- Criar uma lib para criar uma nova configuração de rede com o input (x, y, z), sendo x a camada de entrada e y a camada de saída.
- Determinar a pontuação máxima para parar o treinamento e salvar os pesos. Além disso, criar uma função para carregar os pesos da IA treinada deixando a opção para jogar contra a IA.
- Verificar e estudar, mostrando um relatório do impacto das diferentes funções de ativações, nas diferentes camadas.