# MuZero

MuZero est un programme informatique développé par Google DeepMind (une entreprise britannique spécialisée dans l'intelligence artificielle) dont l'objectif est de maîtriser des jeux variés (jeux de société, jeux vidéos, etc.) sans en connaître les règles$^,$$^,$. Il a été rendu public en 2019, avec des données précises sur ses résultats aux échecs, au shōgi, au go, ainsi que sur un ensemble standardisé de jeux sur Atari ; ses performances dans chacun de ces jeux étaient égales ou supérieures à celles des meilleurs programmes spécialisés existant. L'algorithme utilise une approche analogue à celle de AlphaZero, mais il démarre sans aucune connaissance des règles, en ayant simplement l'information selon laquelle un mouvement qu'il tente est ou non permis, et quelles en sont les conséquences.

## Historique

   « MuZero est vraiment en train de découvrir par lui-même comment construire un modèle et le comprendre en partant seulement de principes généraux. »
— David Silver, DeepMind, Wired
Le 19 novembre 2019, l'équipe de DeepMind introduisit MuZero dans une prépublication décrivant ses méthodes et ses résultats.

### Comparaison avec AlphaZero

MuZero (MZ) combine les performances de l'algorithme de planification de AlphaZero (AZ) avec des techniques d'apprentissage par renforcement indépendantes du modèle. Cela permet un apprentissage plus efficace dans des jeux demandant une planification profonde, comme le go, tout en permettant de traiter des situations où les données d'entrée sont beaucoup plus complexes à chaque étape, comme dans le cas des jeux vidéos.
MuZero utilise les mêmes règles qu'AlphaZero pour initialiser ses hyperparamètres. Parmi les différences entre les deux approches, il y a :
* L'ignorance des règles par MZ : AZ utilise pour sa planification un simulateur, qui connaît les règles du jeu, et qui doit être programmé explicitement ; MZ utilise un réseau neuronal pour découvrir les règles, qu'il transmet ensuite au simulateur, lequel évolue donc avec la compréhension que MZ a du jeu, et peut rester imparfait si certaines règles (comme la sous-promotion aux échecs) n'interviennent que dans des situations rarement rencontrées.
* AZ a un modèle unique pour le jeu (de l'état du plateau aux prédictions) ; MZ a des modèles séparés pour la représentation de l'état actuel (de l'état du plateau à son modèle interne), pour la dynamique des états (comment les actions changent les représentations des états du plateau), et pour la prédiction de la stratégie à suivre et de la valeur d'une position future (étant donné la représentation d'un état).
* AZ est prévu pour des jeux à deux personnes avec comme seuls résultats possible le gain, la perte ou la partie nulle. MZ est prévu également pour deux adversaires, mais envisage des récompenses intermédiaires de tailles variées, ainsi que la gestion du temps (par exemple une action rapportera plus ou moins de bénéfices selon le moment où elle commence et la durée de son exécution).

### Comparaison avec R2D2

Le meilleur programme spécialisé pour l'ensemble des 57 jeux vidéos d'Atari servant de référence (Arcade Learning environment, souvent référencé comme Atari57) était R2D2 (Recurrent Replay Distributed DQN, soit Jeu répété par Deep Q-learning distribué), un autre programme développé par DeepMind.
MuZero améliore les performances moyennes et médianes de R2D2 sur l'ensemble des 57 jeux, mais n'est pas meilleur que lui dans tous, et reste bien en dessous des performances des meilleurs experts humains dans 6 de ces jeux.

## Entrainement et résultats

MuZero a utilisé 16 TPU de troisième génération pour l'entraînement et 1000 TPU pour jouer contre lui-même pour les jeux de société, avec 800 simulations par étape. ainsi que 8 TPU pour l'entraînement et 32 TPU pour l'auto-exécution pour les jeux d'Atari, avec 50 simulations par étape.
AlphaZero a utilisé 64 TPU de première génération pour l'entraînement et 5 000 TPU de deuxième génération pour le selfplay. La conception des TPU s'étant améliorée (les puces de troisième génération sont deux fois plus puissantes individuellement que celles de deuxième génération, avec des progrès supplémentaires en matière de bande passante et de mise en réseau entre les puces d'un même module), ces configurations d'entraînement sont comparables.
R2D2 a été entraîné pendant 5 jours à travers 2 millions d'étapes d'entraînement.

### Performances initiales

MuZero a atteint des performances comparables à AlphaZero aux échecs et au shōgi après environ un million d'étapes d'entraînement, et au go après cinq cent mille étapes. De même, il a dépassé les performances moyennes et médianes de R2D2 après environ un million d'étapes, bien qu'il ait gardé des performances médiocres sur 6 jeux de la suite.

## Réactions et travaux dérivés

MuZero est jugé comme une avancée significative sur AlphaZero, et comme une approche nouvelle et généralisable des techniques d'apprentissage$^,$ ; ce travail a été également vu comme une amélioration des méthodes de construction de systèmes complexes à partir de composants simples, et donc lié à la conception de logiciels en général, et non simplement à l'apprentissage automatique.
DeepMind n'a fourni qu'une description de MuZero en pseudo-code, mais Werner Duvaud l'a utilisée pour en créer une implémentation open source.
MuZero a également été utilisé comme référence pour d'autres travaux, par exemple pour créer des comportements basés sur des modèles.