Agents de jeu par renforcement
Comprendre comment une IA apprend à jouer
Développer et comparer des agents en Rust, des premières grilles au Quarto. Expliquer leurs décisions par les expériences, puis les observer et les affronter.

- 01
Implémenter
Construire les agents et les règles des jeux.
- 02
Expérimenter
Comparer décisions, victoires et coût de calcul.
- 03
Comprendre en jouant
Confronter les explications au comportement des agents.
Construire des agents et comprendre leurs décisions
Comment apprendre à gagner sans écrire une règle pour chaque situation ? Ce projet développe en Rust plusieurs agents capables d’apprendre par essais et récompenses, ou d’anticiper par simulation. Le but est de comprendre ce que chaque méthode apprend, où elle échoue et pourquoi.
Des jeux simples à un véritable problème stratégique
LineWorld et GridWorld servent à vérifier les déplacements et les récompenses. Le morpion introduit un adversaire ; le Quarto rend les conséquences plus difficiles à anticiper. Nous allons suivre les modèles, lire leurs résultats, puis retrouver ces mécanismes dans un atelier où ils peuvent s’affronter.
- 01
Donner une pièce
Définir ce que l’adversaire pourra jouer.
- 02
Il la pose
Le placement peut terminer la partie.
- 03
Il choisit votre pièce
Après avoir posé, le même joueur donne.
Choisir aussi les possibilités de l’adversaire
Au Quarto, on gagne en alignant quatre pièces qui partagent au moins un attribut : couleur, taille, forme ou creux. Mais on ne choisit pas sa propre pièce : c’est l’adversaire qui nous la donne. Une bonne décision doit donc aussi éviter de lui offrir une victoire.
Deux actions dont les effets arrivent à des moments différents
Poser une pièce peut faire gagner immédiatement. Donner une pièce ne révèle sa qualité qu’après la réponse adverse, parfois plusieurs coups plus tard. Cette différence rend le Quarto utile pour étudier l’apprentissage : comment relier une victoire ou une défaite aux décisions qui l’ont préparée ?
- 01
Observer
La position ou le plateau décrit la situation.
- 02
Agir
Un coup modifie l’environnement.
- 03
Apprendre du retour
Relier le résultat aux décisions précédentes.
Apprendre des conséquences de ses actions
Dans LineWorld, l’agent se déplace sur une ligne : une sortie rapporte +10, l’autre −10. Au départ, il ne sait pas laquelle choisir. Il observe sa position, essaie un déplacement et reçoit une récompense. Une partie complète, jusqu’à la sortie ou la limite de coups, constitue un épisode.
Pourquoi la récompense doit remonter vers les premiers choix
Les déplacements intermédiaires rapportent zéro. L’agent doit donc relier une sortie favorable aux actions qui y conduisent. Le retour additionne les récompenses à venir, en donnant éventuellement moins de poids aux plus lointaines. DQN apprend à estimer ce retour ; REINFORCE s’en sert pour modifier ses probabilités de choix.
- 01
Observer le plateau
Transformer la situation en nombres.
- 02
Estimer les valeurs Q
Évaluer les conséquences de chaque action.
- 03
Corriger par expérience
Réviser les estimations grâce aux transitions mémorisées.
Estimer ce qu’un coup peut rapporter
DQN répond au problème en donnant une valeur à chaque action : la récompense attendue, maintenant et plus tard. Un réseau reçoit l’état du jeu et produit ces valeurs Q. Pour découvrir de nouvelles possibilités, l’agent explore parfois au hasard au lieu de suivre sa meilleure estimation.
Réutiliser les parties pour corriger ses estimations
Les transitions sont mémorisées : état, action, récompense et état suivant. DQN en tire des lots mélangés pour éviter de n’apprendre que sur les derniers coups. Il rapproche ses valeurs des récompenses observées et de ses estimations futures. Mais si ces dernières sont trop optimistes, l’erreur peut se propager.
- 01
Réseau courant
Choisir l’action future jugée la meilleure.
- 02
Réseau cible
Évaluer cette action avec des paramètres moins récents.
- 03
Correction
Utiliser cette estimation pour mettre à jour le réseau.
Éviter de renforcer une estimation trop optimiste
Imaginons qu’un coup paraisse excellent par erreur. Si le même réseau le choisit et l’évalue, il risque de confirmer sa propre surestimation. Double DQN sépare ces rôles : le réseau courant choisit le coup futur, une copie cible en estime la valeur.
Stabiliser la cible sans la figer pour toujours
La copie est actualisée périodiquement. Elle évolue donc moins vite que le réseau qui apprend. Dans ce dépôt, DQN utilise un seul réseau et Double DQN ajoute cette cible séparée. Le mécanisme vise une meilleure stabilité ; les courbes permettent de vérifier ce qu’il change réellement.
Courbes du dépôt · GridWorld. Réglages et durées différents ; le DQN bleu inclut une correction.
Un bon pic ne garantit pas une bonne fin
Sur GridWorld, les courbes suivent le taux de réussite au fil des épisodes. DQN monte rapidement puis régresse. Le Double DQN rouge chute lui aussi avant de remonter : la seconde copie ne supprime donc pas toutes les instabilités. À 5 000 épisodes, ces runs finissent autour de 66 % pour DQN et 79 % pour DDQN.
Relier la courbe au mécanisme, sans conclure trop vite
Ces fluctuations motivent l’étude des cibles de valeur et de l’exploration. Le DQN bleu, corrigé et entraîné avec un autre pas d’apprentissage, change aussi de trajectoire. Il faut donc comparer les réglages et répéter les runs avant d’attribuer un écart au seul algorithme.
Courbes du dépôt · Quarto V1. Modes d’entraînement, paramètres et budgets différents.
Changer les expériences dont l’agent apprend
Sur Quarto, le DDQN entraîné contre le hasard plafonne autour de 44 % dans le run orange. Le run vert en self-play progresse jusqu’à environ 78 %. En self-play, l’agent rencontre des versions sauvegardées de lui-même : les situations d’entraînement évoluent avec les stratégies apprises.
Pourquoi davantage d’épisodes ne suffit pas toujours
Répéter face au même adversaire faible peut entretenir les mêmes habitudes. Changer les adversaires enrichit les situations rencontrées, mais rend aussi l’apprentissage moins stable. Ces runs diffèrent également par leurs réglages : le graphique motive des tests contrôlés, il n’isole pas à lui seul l’effet du self-play.
- 01
Une politique
Des probabilités sur les coups autorisés.
- 02
Une partie
Une suite d’actions et un résultat final.
- 03
Une mise à jour
Renforcer ou décourager les choix effectués.
Apprendre directement quels coups choisir
DQN apprend des valeurs puis choisit un coup. REINFORCE apprend directement des probabilités de choix : sa politique. Il joue une partie, observe le résultat, puis rend les actions favorables plus probables. Le choix reste échantillonné : une même position peut conduire à plusieurs coups.
Pourquoi le Quarto complique l’attribution du résultat
REINFORCE attend la fin de l’épisode pour ajuster les décisions. Une bonne pièce donnée tôt peut être suivie d’une erreur de placement ; le résultat final mélange leurs effets. Les corrections deviennent variables. La prochaine expérience étudie comment rendre ce signal d’apprentissage plus utile.
- 01
Résultat obtenu
Ce que la suite de la partie a rapporté.
- 02
Résultat attendu
La référence estimée par le critic.
- 03
Avantage
Un écart qui guide la correction de la politique.
Comparer le résultat à ce qui était attendu
Gagner depuis une position facile n’apprend pas la même chose que gagner depuis une position difficile. Une baseline fournit une référence : le retour obtenu est-il meilleur ou pire que prévu ? Le critic apprend cette référence à partir de l’état du jeu.
Une correction plus informative pour REINFORCE
Sans baseline, la correction utilise directement le retour de la partie. MeanBaseline soustrait une moyenne ; CriticBaseline soustrait une valeur prédite pour la position. Cette différence, appelée avantage, réduit le bruit des mises à jour lorsqu’elle est bien estimée. Le critic ne choisit pas le coup à la place de la politique.
Rapport REINFORCE · campagne 2. WR : taux moyen ; FWR : dernière fenêtre. 50k = 50 000 épisodes.
Le critic aide davantage que le seul encodage
Le graphique compare le taux de victoire moyen, WR, et celui de fin d’entraînement, FWR. À 50 000 épisodes en V1, passer de la moyenne au critic fait progresser le FWR d’environ 64 % à 70 %. Dans cette campagne, la référence apprise fournit un signal plus utile.
Mieux apprendre sans résoudre toute la stratégie
Les variantes avec critic finissent aussi devant les variantes mean en V2. Cela soutient l’intérêt d’une référence adaptée à la position. Ce résultat reste local à ces expériences : à budget court, MeanBaseline peut faire mieux car elle n’a pas de réseau de valeur supplémentaire à apprendre. Mais ces scores contre le hasard résistent-ils à un autre agent ?
- 01
Premier lot · 40 parties
REINFORCE J1 / DQN J2 : DQN gagne 40 fois.
- 02
Rôles inversés · 40 parties
DQN J1 / REINFORCE J2 : REINFORCE gagne 40 fois.
- 03
Une anomalie à examiner
Des lots exploratoires, sans preuve d’un avantage universel de J2.
Rapport REINFORCE, sections 1.2 à 1.5. Ces lots ne mesurent pas le niveau absolu des modèles.
Inverser les joueurs renverse le résultat
Après les scores contre le hasard, nous avons joué contre REINFORCE : certains coups semblaient cohérents. Puis un duel contre DQN a surpris. Avec REINFORCE en J1, DQN gagne les 40 parties d’un lot. En inversant les positions, REINFORCE gagne à son tour les 40 parties. Le classement apparent s’inverse.
Pourquoi regarder le rôle avant de classer les modèles
Au Quarto, J1 donne la première pièce et J2 effectue le premier placement. Les réseaux pourraient avoir appris ces deux responsabilités de façon inégale. Les petits essais suivants ne montrent pourtant aucun avantage systématique de J2. Cette observation ouvre deux pistes : préciser le rôle dans l’entrée du réseau et examiner séparément les dons et les placements.
- 01
V1 · 87 valeurs
Plateau, pièces et phase donner/poser.
- 02
V2 · 88 valeurs
La même description, avec le joueur courant.
- 03
Une comparaison contrôlée
Séparer l’effet de l’information et du budget.
Savoir à qui appartient la décision
Le premier encodage du Quarto, V1, décrit le plateau, les attributs des pièces, la pièce en main et la phase de jeu avec 87 valeurs. V2 ajoute le joueur courant. L’hypothèse est simple : connaître son rôle peut aider le réseau à interpréter une situation favorable ou dangereuse.
Tester l’hypothèse au lieu de la supposer vraie
À budget égal dans la campagne 2, V2 ne produit pas de gain net. La campagne suivante, sur sept initialisations, obtient un petit avantage pour V2, mais avec deux fois plus d’épisodes. On ne peut donc pas attribuer ce gain à la seule information ajoutée. Les règles du jeu restent identiques.
Figure du rapport DRL · deux adversaires révèlent deux niveaux de difficulté. V1 et V2 ont des budgets différents.
Bien jouer contre le hasard ne suffit pas
Le même REINFORCE passe d’environ 68–71 % de victoires contre le hasard à seulement 5 % contre une heuristique. Cet adversaire suit deux règles : gagner immédiatement si possible, et éviter d’offrir une victoire immédiate. Le graphique révèle donc une faiblesse tactique cachée par le premier score.
Revenir à la différence entre donner et poser
Les résultats sont compatibles avec l’hypothèse d’un crédit difficile à attribuer aux pièces données. Ils ne la prouvent pas à eux seuls : il faudrait mesurer les erreurs dans chaque phase. Dans l’atelier, surveillez particulièrement les pièces offertes. Cela conduit à une autre approche : simuler les conséquences avant de choisir.
- 01
Lister les coups
Partir des actions autorisées.
- 02
Simuler leurs suites
Répéter des fins de partie aléatoires.
- 03
Comparer les moyennes
Retenir le coup le mieux évalué.
Essayer des suites possibles avant de jouer
Random Rollout évalue chaque action en simulant des fins de partie au hasard. Il choisit celle qui obtient le meilleur résultat moyen. Contrairement aux réseaux entraînés, il recommence ce calcul à chaque décision : il utilise les règles pour explorer les conséquences du plateau présent.
Une référence simple, mais coûteuse
Au morpion, une comparaison du rapport mesure environ 39 % de victoires pour Random Rollout contre 35 % pour UCT Arena, mais seulement 223 parties/s contre 692. Ce gain local coûte donc environ trois fois plus de temps par partie. Répartir les simulations entre tous les coups gaspille aussi du calcul sur des options peu prometteuses. MCTS cherche à mieux répartir ce budget.
- 01
Sélectionner une branche
Équilibrer intérêt estimé et manque d’information.
- 02
Simuler
Explorer les conséquences possibles.
- 03
Actualiser l’arbre
Utiliser le résultat pour la recherche suivante.
Concentrer la recherche sur les coups prometteurs
MCTS construit un arbre de futurs possibles. UCT guide son exploration : revenir vers les branches qui semblent bonnes, tout en essayant celles encore peu visitées. Après chaque simulation, le résultat remonte dans l’arbre pour orienter la recherche suivante.
Pourquoi le budget et la profondeur changent le choix
Trop peu d’exploration peut manquer un piège ; trop d’exploration disperse le calcul. Le rapport ne trouve pas de réglage universel. Sur Quarto, arrêter une simulation trop tôt peut masquer la conséquence d’une pièce donnée. Dans l’atelier, augmenter le budget permet d’observer comment la décision évolue.
Figure du rapport analytique · comparaison Legacy/Arena du dépôt, pas de ValueUCT ni du navigateur.
Accélérer la recherche sans changer sa règle
MCTS consacre aussi du temps à créer et parcourir des nœuds. La version Arena les stocke dans un tableau contigu et les relie par des indices. Elle évite une partie des allocations de la version Legacy et réutilise sa mémoire entre les recherches.
Distinguer vitesse logicielle et niveau de jeu
Le graphique compare le débit des deux implémentations, en parties par seconde. Les gains varient selon l’environnement : cloner le jeu et simuler les coups restent coûteux. Le principe UCT est identique. Une meilleure organisation mémoire accélère le calcul sans constituer, à elle seule, une nouvelle stratégie.
- 01
Explorer par UCT
Choisir une position à examiner.
- 02
Estimer sa valeur
Interroger le réseau plutôt que simuler toute une fin.
- 03
Poursuivre la recherche
Réutiliser cette estimation dans l’arbre.
Remplacer des simulations par une estimation
Les réseaux décident rapidement, tandis que MCTS explore explicitement les conséquences. ValueUCT associe les deux : un réseau de valeur estime la qualité d’une position et remplace une partie des simulations. Cela économise du calcul, à condition que l’estimation soit fiable.
Un compromis mesuré dans le rapport
Dans le benchmark contre un agent aléatoire, la variante ValueZero obtient environ 92,65 % de victoires au Quarto, contre 92,89 % pour UCT Arena, avec un débit presque six fois supérieur. Ces chiffres concernent le moteur Rust et ce protocole précis ; ils ne mesurent pas la démonstration navigateur.
- 01
Qualité du jeu
Victoires, défaites et matchs nuls.
- 02
Régularité
Plusieurs parties, rôles et initialisations.
- 03
Coût de décision
Temps d’apprentissage et simulations par coup.
Une estimation rapide doit rester fiable
Face à UCT Arena, les campagnes ValueUCT sont moins stables : des pics de réussite peuvent retomber fortement. Au morpion, beaucoup de parties finissent nulles. Une faible proportion de victoires n’a donc pas le même sens qu’une forte proportion de défaites.
Observer les choix pour comprendre les scores
Une erreur de valeur peut orienter l’arbre vers une mauvaise branche ; les causes exactes des chutes restent à isoler. L’ensemble du projet montre pourquoi il faut croiser adversaires, rôles, stabilité et coût. L’atelier permet maintenant de confronter ces explications aux réseaux DQN, DDQN, REINFORCE et aux agents de recherche.
Une expérience à explorer dans ce chapitre.
Observer, jouer et faire s’affronter les agents
Commencez avec REINFORCE face à MCTS et avancez avec « Un coup ». Le commentaire distingue le choix du modèle et sa conséquence visible. Au Quarto, repérez les pièces qui offrent une victoire immédiate. Inversez ensuite les agents et recommencez pour observer l’effet des rôles.
Paramètres de l’expérience
Au Quarto, examinez autant la pièce donnée que son placement. Comparez REINFORCE à MCTS, puis faites varier le budget de recherche. Une partie illustre un comportement ; plusieurs parties sont nécessaires pour discuter du niveau d’un modèle.