Skip to content

nelsonwenner/pingpong-AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pingpong Artificial Intelligence

GitHub language count Made by @nelsondiaas License Stargazers

Prerequisites

  • Python (>= 3.6)

Getting Started

  1. Fork este repositório e clone em sua máquina
  2. Mude o diretório para pingpong-IA onde você o clonou;
  3. No terminal, execute:
/* Install dependencies */

$ pip install -r requeriments.txt

/* Coletar dados */

$ python PingPongCollect.py

/* Treinar dados */

$ python NeuralNetwork.py

/* Executar IA */

$ python PingPongIA.py

Neural Network

A rede neural possui: uma camada de entrada de 2 neurônios, uma camada oculta de 30 neurônios e uma camada de saída de 1 neurônio. É possível personalizar a quantidade de neurônios de cada uma das camadas.

File Structure

pingpong-IA
├── src/
│   ├── database/
│   │   ├── controller/
│   │   │   └── db.py
│   │   ├── data/
│   │   │   └── data-50.txt
│   │   └── weights/
│   │       ├── weight-w1.txt
│   │       └── weight-w2.txt
│   ├── network/
│   │   └── NeuralNetwork.py
│   ├── PingPongCollect.py
│   └── PingPongIA.py
├── .gitignore
├── LICENSE.md
├── README.md
└── requeriments.txt

Vision

O objetivo desse jogo é fazer com que a palheta impeça a bolinha de tocar no chão. A implementação consiste no aprendizado de máquina supervisionado, portanto, teremos que passar ao jogo dados iniciais para que ele processe o aprendizado. A partir do arquivo src/PingPongCollect.py, será executado o jogo para que você jogue, e sejam coletadas informações que serão usadas no aprendizado de sua máquina, então, os dados serão salvos em src/database/data. Logo em seguida, você poderá treinar seus dados de duas formas. Na primeira forma, você poderá executar os dados coletados diretamente na rede neural sem precisar jogar, nesse caso, no terminal, será impressa uma informação, que é a taxa de error do treinamento de sua rede neural, quanto menor a taxa, melhor, após isso, no final deste treinamento, serão salvos os pesos em src/database/weights (esses pesos são as informações dos neurônios treinados na sua rede neural, ou seja, eles funcionam como um cérebro com o conhecimento em si). Na segunda forma, você irá treinar a sua rede diretamente jogando, no caso, enquanto se joga, a rede treina. Para fazer a sua máquina jogar, você terá que executar o arquivo src/PingPongIA.py. Nele, ou você seta os pesos emitidos pelo treinamento de sua rede ou não passar nenhum peso e deixar o aprendizado começar do zero.

License

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.