Une implémentation commentée et documentée de Muzero sur la base du document Google Deepmind (Schrittwieser et al., Novembre 2019) et du pseudocode associé. Il est conçu pour être facilement adaptable pour chaque jeu ou environnements d'apprentissage de renforcement (comme le gymnase). Il vous suffit d'ajouter un fichier de jeu avec les hyperparamètres et la classe de jeu. Veuillez vous référer à la documentation et à l'exemple. Cette mise en œuvre est principalement à des fins éducatives.
Vidéo explicative de Muzero
Muzero est un algorithme de pointe pour les jeux de société (Chess, Go, ...) et les jeux Atari. C'est le successeur d'Alphazero mais sans aucune connaissance de l'environnement sous-jacent à la dynamique. Muzero apprend un modèle de l'environnement et utilise une représentation interne qui ne contient que les informations utiles pour prédire la récompense, la valeur, la politique et les transitions. Muzero est également proche des réseaux de prédiction de valeur. Voyez comment cela fonctionne.
Voici une liste de fonctionnalités qui pourraient être intéressantes à ajouter mais qui ne sont pas dans le papier de Muzero. Nous sommes ouverts aux contributions et à d'autres idées.
Toutes les performances sont suivies et affichées en temps réel dans Tensorboard:

Test Lunar Lander:

Les tests sont effectués sur Ubuntu avec 16 Go de RAM / Intel i7 / GTX 1050ti Max-Q. Nous nous assurons d'obtenir une progression et un niveau qui garantit qu'il a appris. Mais nous n'atteignons pas systématiquement un niveau humain. Pour certains environnements, nous remarquons une régression après un certain temps. Les configurations proposées ne sont certainement pas optimales et nous ne nous concentrons pas pour l'instant sur l'optimisation des hyperparamètres. Toute aide est la bienvenue.

Résumé du réseau:

git clone https://github.com/werner-duvaud/muzero-general.git
cd muzero-general
pip install -r requirements.lockpython muzero.pyPour visualiser les résultats de la formation, exécutez un nouveau terminal:
tensorboard --logdir ./results Vous pouvez adapter les configurations de chaque jeu en modifiant la classe MuZeroConfig du fichier respectif dans le dossier des jeux.
Veuillez utiliser ce bibtex si vous souhaitez citer ce référentiel (branche principale) dans vos publications:
@misc{muzero-general,
author = {Werner Duvaud, Aurèle Hainaut},
title = {MuZero General: Open Reimplementation of MuZero},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = { u rl{https://github.com/werner-duvaud/muzero-general}},
}