Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nelsonwenner/pingpong-ai
:robot: Pingpong artificial intelligence.
https://github.com/nelsonwenner/pingpong-ai
ai aprendizado artificial-intelligence inteligencia-artificial inteligencia-computacional machine machine-intelligence machine-learning machine-learning-algorithms machinelearning machinelearning-python neural-network ping-pong-game pingpong python
Last synced: 3 days ago
JSON representation
:robot: Pingpong artificial intelligence.
- Host: GitHub
- URL: https://github.com/nelsonwenner/pingpong-ai
- Owner: nelsonwenner
- License: mit
- Created: 2018-12-25T18:07:57.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-06-22T00:51:50.000Z (over 2 years ago)
- Last Synced: 2023-04-22T17:10:28.185Z (over 1 year ago)
- Topics: ai, aprendizado, artificial-intelligence, inteligencia-artificial, inteligencia-computacional, machine, machine-intelligence, machine-learning, machine-learning-algorithms, machinelearning, machinelearning-python, neural-network, ping-pong-game, pingpong, python
- Language: Python
- Homepage:
- Size: 38.1 KB
- Stars: 7
- Watchers: 0
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
Pingpong
Artificial Intelligence
### 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:```bash
/* 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
```bash
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](LICENSE.md) para mais detalhes.
---