Découvrir l'intelligence artificielle à partir d'un jeu publié le 31/03/2022  - mis à jour le 16/06/2022

TraAM 2021 - 2022

Pages : 123456

Vers l’apprentissage machine : jouer contre le tableur

Dans l’article initial de Martin Gardner, la mise en évidence de l’apprentissage par renforcement demandait la construction de l’IA de papier avec les boites de perles. Après avoir construit personnellement cette IA en papier et l’avoir testée, je ne l’ai pas présentée aux élèves car je ne voyais pas comment faire utiliser une seule IA par 33 élèves.

J’ai donc cherché à représenter cette IA sous forme d’un fichier informatique, en listant les 134 parties différentes dans une feuille de calcul de tableur.
Les élèves ayant déjà travaillé (avec moi) l’utilisation des filtres du tableur en SNT, l’idée de filtrer progressivement les parties est apparue comme un moyen de reproduire le fonctionnement de l’IA papier dont le principe de base repose sur la mémorisation de chaque partie et l’élimination des parties perdantes pour l’IA.

La troisième séance s’est donc déroulée en salle informatique la semaine suivant celles sur l’arbre de jeu. Ma présentation de la séance s’est focalisée sur le jeu entre un être humain et une machine. Les élèves, en demi-classe, se sont constitués en groupes, avec attribution d’un rôle à chaque membre :

  • un joueur "humain" qui fera jouer les blancs : celui-ci joue normalement et cherche à battre les noirs ;
  • un joueur "machine" qui fera jouer les noirs : celui-ci ne réfléchit pas et réalise des coups en fonction de ce que lui propose la machine : lorsque plusieurs coups sont proposés, il prend un mouvement au hasard parmi les lignes disponibles.
  • un secrétaire qui consignera les coups joués, les victoires et les défaites, ainsi que les numéros des parties éliminées.

Le déroulement du jeu était le suivant :

  • Le joueur humain (les blancs) commence ;
  • Le joueur machine filtre la colonne B avec le mouvement effectué par les blancs puis choisit au hasard un des mouvements proposés par le filtre de la colonne C ;
  • Le joueur humain rejoue et le joueur machine filtre la colonne D avec le mouvement effectué par les blancs et choisit au hasard un des mouvements proposés par le filtre de la colonne E.
  • Le jeu se poursuit ainsi jusqu’à la victoire de l’une des deux couleurs :
    • Si le joueur machine gagne, le secrétaire note la victoire des noirs mais la machine n’enregistre rien de particulier ;
    • Si le joueur machine perd, il sélectionne les lignes filtrées jusqu’au dernier mouvement noir et il les colorie en gris.
    • Il grise aussi les lignes filtrées par la partie symétrique
  • Le joueur machine réinitialise le filtre avant de recommencer une nouvelle partie.

Les élèves ont donc "joué" en suivant ce protocole et, au bout d’une dizaine de parties, selon le nombre de défaites de la machine qu’ils avaient obtenues, ils avaient grisé entre 10 et 20 lignes. Ils ont bien pris conscience que c’était une situation de défaite qui renvoyait une information significative à la machine tandis qu’une victoire ne modifiait pas l’état de la feuille de calcul. Les équipes qui avaient atteint 5 ou 6 défaites de la machine ont bien mesuré la difficulté pour le joueur humain de gagner de nouveau.

Hexapawn : humain contre machine

Hexapawn : humain contre machine

Une mise en commun des parties perdantes a permis de mettre en évidence des parties plus "impactantes" que d’autres pour l’élagage de l’arbre de jeu.
Je leur ai aussi fait remarquer que l’élagage était parfois grossier car il grisait des pans complets de l’arbre de jeu dans lesquels figuraient des parties menant à la victoire de la machine et qu’il laissait des parties menant à la victoire des blancs.
À force de questionnement, j’ai réussi à leur faire dire que, par le biais du marquage des parties perdantes, la machine apprenait de ses erreurs et qu’elle mémorisait les coups menant à une défaite afin de ne pas les reproduire.
C’est à ce moment là que les élèves ont commencé à évoquer la notion d’intelligence artificielle.
Les parties perdantes les plus fréquentes ont été retenues afin de griser un arbre de jeu de synthèse qui serait testé par les élèves lors de la séance suivante.

Fichier tableur de l'arbre de jeu élagué (OpenDocument Spreadsheet de 25.6 ko)

Fichier tableur de l’arbre de jeu élagué

Lors du cours de mathématiques qui a suivi cette séance, j’ai repris le cheminement fait depuis le mois de décembre et nous avons fait la synthèse de ce qui avait été vu. Afin de les convaincre de l’efficacité du processus, j’ai proposé à des élèves d’aller faire quelques parties contre la machine pendant le cours, celle-ci ayant été munie de l’arbre de synthèse construit auparavant.
Celui-ci comportait encore des parties gagnantes pour les humains mais la probabilité d’y parvenir était assez faible et sur la quinzaine de parties réalisées, seulement 4 ont abouti à une victoire des blancs.
La démonstration a paru convaincre les élèves et j’ai conclu l’expérimentation en nommant ce type d’apprentissage (par renforcement) et en abordant les domaines qui avaient recours à cette branche de l’intelligence artificielle.

La dernière partie de l’expérimentation consistera en la programmation sous Python de l’intelligence artificielle du jeu d’Hexapawn : (voir Intelligence artificielle et programmation Python).

 Page suivante : "Réussites, obstacles et limites"

Document joint

Cette archive contient l’intégralité des fichiers sources des documents (.tex, .py, .ipynb, .ods) utilisés pour la mise en œuvre de l’expérimentation