Le bridge est un jeu de cartes dans lequel une équipe de 2 joueurs essaie d’atteindre un objectif commun appelé un « contrat » déterminé au cours de la phase des enchères. Réaliser un contrat consiste à faire au moins un certain nombre de plis face à une équipe adverse qui va collaborer selon des règles codifiées pour essayer de faire chuter le contrat.
Jeu de bridge avec la boîte d’enchères qui montrent les deux facettes de ce jeu. ©Marie-Lan Nguyen wikicommon
À la différence des jeux de plateaux comme les échecs ou le go, le bridge est un jeu à information incomplète. Au départ, chaque joueur ne connaît que les 13 cartes qu’il a en main. Au cours de la partie, en raisonnant sur les informations transmises pendant la phase des enchères et sur les cartes jouées à chaque pli, chaque joueur peut restreindre ses hypothèses sur les cartes restant en jeu mais il doit prendre ses décisions (choisir la carte à jouer à chaque pli) sans la connaissance complète des cartes restant en main de son partenaire ou de ses adversaires.
Bien jouer au bridge implique de maîtriser différents types de compétences :
- Faire des déductions (si tel joueur a joué telle séquence de coups, il a ou n’a pas telle carte) ;
- Émettre et réviser des hypothèses (tel adversaire a au moins 5 cartes à Pique ou n’a plus de cartes à Cœur) ;
- Anticiper un certain nombre de coups probables de l’équipe adverse ; et
- Évaluer les probabilités des différentes mains adverses possibles pour guider la prise de risque et calculer l’espérance de gain des coups à jouer.
L’intelligence artificielle de Nook, en tirant parti de la force combinée d’approches d’IA symbolique et de techniques d’IA numérique, a réussi à surpasser le niveau de 8 champions de bridge de niveau mondial sur plusieurs centaines de parties avec le même contrat à réaliser (3 Sans Atout). Pour une juste comparaison entre Nook et les joueurs humains, Nook et chaque champion ont joué les mêmes jeux, dans la même position de déclarant, contre deux robots Wbridge5 constituant l’équipe adverse. Wbridge5 (développé par Yves Costel) est multi champion du monde des robots de bridge dans le cadre de compétitions opposant uniquement des robots. Comme le montre la photo suivante, chaque champion humain (tout comme Nook) joue avec son jeu (caché) et le jeu de son partenaire (qui fait le “mort”) visible de tous, contre deux adversaires ici simulés par Wbridge5 paramétré en position de défenseur.
A la différence de jeux à information complète (comme les échecs ou le go), dans un arbre de jeu (voir Encart 1) pour le bridge les coups adverses possibles en riposte au choix d’un coup par le robot (à partir d’un nœud Max de l’arbre de jeu) dépendent des cartes des mains adverse, qui ne sont pas connues par le robot. Pour chaque nœud Min de l’arbre (c’est-à-dire un nœud qui modélise les ripostes des adversaires), Il faut donc générer des mondes possibles (les mains possibles des adversaires), et pour chacun explorer les ripostes les plus probables des adversaires à la carte jouée par le robot.
La force de Nook est d’explorer de façon intelligente un arbre de jeu avec des mondes possibles en s’appuyant sur quatre techniques complémentaires :
- Raisonnement automatique sur des règles ;
- Apprentissage automatique à partir d’un échantillon de parties déjà jouées afin d’apprendre la stratégie des adversaires ;
- Génération aléatoire de mondes possibles de type Monte Carlo (Encart1) contrainte par les règles du domaine et les modèles de l’adversaire ; et
- Recherche arborescente de type MinMax avec élagage Alpha-Beta (Encart 2) dans chaque monde possible en exploitant les modèles des différents joueurs.
Plus précisément, l’algorithme d’exploration de l’arbre de jeu des mondes possibles de Nook est une extension de l’algorithme AlphaMu [1] développé par Tristan Cazenave et Véronique Ventos (et optimisé dans [2]). A chaque étape du jeu, l’algorithme génère différents mondes possibles aléatoirement (voir Encart 1) tout en vérifiant leur compatibilité avec les contraintes inférées par règles et par les modèles de l’adversaire observés ou appris. Dans chacun des mondes possibles, les différents coups possibles sont évalués par un algorithme MinMax (voir Encart 2) rendu très sélectif par l’exploitation des modèles de l’adversaire.
Certains modèles de joueurs sont des réseaux de neurones qui ont été entrainés à leur tâche spécifique de façon automatique (Voir Encart 3). Les données d’entraînement sont obtenues à partir de centaines de milliers de parties jouées par WBridge5 contre lui-même. Le réseau de neurones utilisé, de type ResNet, n’est pas très gros, et la taille de l’ensemble des données d’entraînement est raisonnable. De ce fait, l’étape d’entraînement, réalisée sur l’ordinateur Jean Zay du CNRS, a demandé 200.000 fois moins de ressources de calcul que l’entraînement du réseau de neurones utilisé dans AlphaGo de DeepMind, qui a battu le maître de jeu de Go Lee Sedol en 2016.
Le raisonnement automatique sur des règles est la clef pour restreindre la combinatoire et expliquer les décisions. Les règles fournies à Nook modélisent les connaissances d’un joueur de bridge, pour inférer, à partir de la séquence des enchères, des contraintes positives ou négatives sur les mains des différents joueurs. Par exemple, une enchère “2 Sans Atout”du partenaire après une ouverture “1 Sans Atout” suivi de Passe de l’adversaire implique que le partenaire a une distribution régulière ou moins de 5 cartes à Coeur ou à Pique . D’autres règles décrivent comment l’adversaire choisit la première carte (Module d’entame).
Ces règles sont interprétables par les humains (car exprimées avec des concepts qui font sens pour des joueurs comme « distribution régulière ») et exploitables par la machine à qui on a fourni le lien entre ces concepts abstraits et des distributions concrètes de mains. A partir de la connaissance abstraite et inférée qu’une main a une distribution régulière, on peut générer automatiquement toutes les mains concrètes correspondantes (et leurs probabilités) en fonction des cartes que l’on a dans sa propre main et, au fur et à mesure de la partie, des cartes jouées par les différents joueurs.
On comprend donc bien l’intérêt des règles pour restreindre au fil du temps les mondes possibles et ainsi guider la génération aléatoire au cœur de l’exploration arborescente de type Monte Carlo (voir Encart 1).
L’autre intérêt de ces règles est qu’elles peuvent être utilisées pour expliquer, à tout moment de la partie, la vision à haut niveau et probabiliste des mains cachées des adversaires. En effet, au bridge, répondre à des questions du type « pourquoi avoir joué cette carte ? » fait partie des règles de bonne conduite pour vérifier en particulier qu’il n’y a pas de tricherie de la part d’un joueur ou qu’un coup n’est pas juste un coup de chance. Le bridge n’est pas le poker …
Conclusion
Même si Nook ne joue pour l’instant qu’une partie des « contrats » existants au bridge (le « trois sans-atout »), ses concepteurs ont d’ores et déjà prouvé le bénéfice d’une IA « hybride » qui lui donne notamment la possibilité d’expliquer ses choix. Cette nouvelle approche, que NukkAI envisage de déployer dans d’autres domaines comme la cybersécurité, l’éducation ou les transports, ouvre une voie pour avoir « quelque chose qui ressemble plus à de l’intelligence que ce que l’on a vu ces dernières années », souligne Cédric Villani, auteur d’un rapport parlementaire qui en 2018 avait inspiré la stratégie du gouvernement français sur l’intelligence artificielle, venu observer le défi en direct. « Nous ne visons pas une intelligence artificielle qui remplace l’humain, mais qui collabore et où l’humain garde toujours la maîtrise » revendiquent Jean-Baptiste Fantin et Véronique Ventos, les deux créateurs de NukkAI.
Marie-Christine Rousset, professeure d’informatique à l’université Grenoble Alpes
Encart 1 : Exploration arborescente Monte Carlo.L’exploration arborescente est à la base de la plupart des algorithmes utilisés pour les programmes de jeux à deux joueurs. Il s’agit de générer récursivement un arbre de jeu qui modélise, à partir de la situation de jeu initiale, les différents coups possibles et pour chacun d’eux les ripostes possibles, jusqu’à atteindre les fins de partie (qui peuvent être gagnantes ou perdantes). Un chemin dans cet arbre représente une partie complète dont on peut donc savoir si elle est gagnante pour l’un des 2 joueurs (et perdante pour l’autre joueur). L’arbre de jeu complet est trop gros pour être construit en entier sauf pour des jeux très simples comme le tic tac toe. Une exploration de type Monte Carlo consiste à casser la combinatoire en n’explorant qu’un certain nombre de chemins qui sont construits en générant aléatoirement un nombre restreint de coups possibles à chaque étape de la simulation. |
Encart 2 : Algorithme MinMax et élagage Alpha-BetaL’algorithme MinMax prend le point de vue d’un des joueurs qui, dans une situation de jeu donnée, doit choisir le coup qui maximise ses chances de gagner, sans connaître la stratégie de l’adversaire mais en supposant que cet adversaire, quand c’est à son tour de jouer, choisit systématiquement les ripostes qui maximisent ses propres chances et donc minimisent les chances de gagner du premier joueur. A partir de chaque situation de jeu, l’algorithme développe l’arbre de jeu jusqu’à une certaine profondeur, donnée en paramètre. Pour chaque situation de jeu du niveau le plus profond, à l’aide d’une fonction d’évaluation qui lui est fournie et qui dépend de chaque jeu, il calcule une valeur qui est une estimation des chances de gagner à partir de cette situation. Il calcule ensuite la valeur de la racine de façon récursive en faisant remonter le minimum des valeurs du niveau inférieur pour les nœuds Min où c’est à l’adversaire de jouer, et le maximum des valeurs du niveau inférieur pour les nœuds Max où c’est à l’algorithme de jouer. L’algorithme choisit alors le coup qui maximise la valeur de la racine. Plus la fonction d’évaluation est appliquée loin de la racine, c’est-à-dire plus on anticipe de coups successifs, plus fine est l’estimation du meilleur coup à jouer.
L’algorithme MinMax effectue une exploration complète de l’arbre de recherche jusqu’à un niveau donné. L’élagage Alpha-Beta permet d’optimiser l’algorithme Minmax en ne réalisant qu’une exploration partielle de l’arbre de jeu, tout en obtenant la même valeur comme résultat pour la racine. Au cours de l’exploration, deux types d’élagage peuvent être effectués : des coupes alpha qui évitent d’examiner des sous-arbres d’un nœud Min dont la valeur courante est inférieure à la valeur courante d’un nœud Max au dessus dans l’arbre ; et des coupes beta qui élaguent les sous-arbres d’un nœud Max dont la valeur courante est supérieure à la valeur courante d’un nœud Min au dessus dans l’arbre. On peut montrer que ces contraintes garantissent que les sous-arbres ainsi élagués conduiraient à des configurations dont la valeur ne contribuerait pas au calcul du gain à la racine de l’arbre. |
Encart 3 : Apprentissage automatique de réseaux de neurones L’apprentissage profond est un ensemble de techniques d’apprentissage automatique qui s’appuient sur des réseaux de neurones artificiels pour modéliser le calcul d’un résultat en fonction d’une entrée. Un réseau de neurones est une composition de couches composées de neurones formels qui constituent les entités élémentaires de calcul dans ce modèle. Chaque neurone prend en entrée des sorties des neurones des couches précédentes, calcule une somme pondérée (par des poids dits synaptiques) de ses entrées puis passe cette valeur à une fonction d’activation pour produire sa sortie.
Les différents types de réseaux de neurones varient selon la structure, le nombre de couches et les fonctions d’activation considérées. Les plus étudiés sont les perceptrons multi-couches, les réseaux de neurones convolutifs, et les réseaux résiduels (ResNet). Le point commun de tous les réseaux de neurones artificiels est que les poids synaptiques qui sont déterminants dans le calcul effectué par chaque neurones sont optimisés (on dit souvent qu’ils sont « appris ») à partir d’exemples étiquetés, c’est-à-dire d’entrées pour lesquelles on connaît le résultat. L’apprentissage des meilleurs poids se fait en itérant des étapes de rétropropagation du gradient de l’erreur, qui consiste à corriger les erreurs effectuées à une étape en modifiant les poids synaptiques des neurones en fonction de leur importance dans la réalisation de l’erreur. |
Références et footnote:
(*) NukkAI (https://nukk.ai/) est un laboratoire privé d’Intelligence Artificielle créé par Véronique Ventos, chercheuse en IA, Maitre de Conférences en disponibilité à l’Université Paris-Saclay, et Jean-Baptiste Fantun, ancien élève de l’Ecole Polytechnique, agrégé de Mathématiques et titulaire d’un master en IA.
[1] The AlphaMu Search Algorithm for the Game of Bridge. Tristan Cazenave et Véronique Ventos. in Monte Carlo Search at IJCAI, 2020.
[2] Optimizing AlphaMu. Tristan Cazenave, Swann Legras et Véronique Ventos. in IEEE Conference on Games (CoG), August 17-20, 2021
Pour aller plus loin :
– https://interstices.info/programmation-des-echecs-et-dautres-jeux qui explique comment fonctionne d’autres jeux avec des joueurs algorithmiques
– https://interstices.info/le-jeu-de-go-et-la-revolution-de-monte-carlo qui explique comment la méthode de Monte-Carlo s’applique au jeu de go
– https://interstices.info/lapprentissage-profond-une-idee-a-creuser qui présente le fonctionnement des réseaux de neurones