/DeepReinforcementLearning

A replica of the AlphaZero methodology for deep reinforcement learning in Python

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

introduction

AlphaGo is the first computer program to defeat a professional human Go player, the first to defeat a Go world champion, and is arguably the strongest Go player in history.

Deepmind

What is in this repo?

This is a refactor of AppliedDataSciencePartners/DeepReinforcementLearning part of the article How to build your own AlphaZero AI using Python and Keras

The purpose of the refactor

  1. Make experimentation easier
  2. Add more documentation
  3. Explain the algorithms
  4. Improve performance

How to run it?

  1. Install Python 3.6.*
    1. Do not install a newer version it will not compile
  2. Install libraries in requirements.txt
  3. Execute main.py

Road map

  1. Improve documentation
  2. Fix jupyter notebook
  3. Add unit test
  4. Add profiler instrumentation
    1. Learning vs MCTS
    2. Memory usage
  5. Add Dependency Injector
  6. Add simple games to make it easier to understand
  7. Change logger to Resource provider
    1. Make logger less intrusive
    2. Improve log data
    3. Consider the use of sampling to reduce the size
  8. Add stats to a DB (remove some logs)
  9. Update to tensorflow 2
  10. Add capacity to migrate models to TensorFlow.js
  11. Add online demos
    1. Use TensorFlow.js models in online games
    2. Player VS NPC
    3. NPC VS NPC
    4. Interactive learning process
  12. Config
    1. Make config adjustable by game
      1. Parameters can vary from game to game, having all in one config makes it difficult for experimentation
    2. Use defaults

Wondering

Resource Links

  1. Article How to build your own AlphaZero AI using Python and Keras
  2. Video AlphaGo Zero Tutorial Part 2 - Monte Carlo Tree Search
  3. Multiplayer AlphaZero
  4. AlphaZero implementation and tutorial
  5. DeepMind’s MuZero is One of the Most Important Deep Learning Systems Ever…