15/3/25 Marc Blasband: Enseigner le poker à une machine.
Il y a un bon bout de temps, quand j'étais jeune, beau et riche et con (ne me dis pas ce que je suis toujours), j'avais construit un programme d'ordinateur sur le modèle du neurone, pour comprendre le concept. Je lui ai appris à évaluer la valeur d’une main de poker. Pour celà, je lui ai donné 10000 paires de mains différentes, la première main étant la plus forte. En fait, je lui ai dit, fait la même chose.
Chaque neurone reçoit en entrée un signal booléen (0 ou 1) et émet un signal en réponse aussi booléen. Chaque neurone continent un nombre entre 0 et 1. Son potentiel. Si la moyenne des entrées est plus grande que ce potentiel, le neurone émet un 1, sinon un zéro.
Ces neurones sont organisés en bancs. Chaque neurone du premier banc est relié à une donnée du problème à résoudre; par exemple la couleur de la carte (cœur, pique, carreau, trèfle). Donc si j’ai une dame de cœur, un neurone associé au cœur va émettre un 1 et celui à la dame aussi, tous les autres un zéro.
Les sorties du premier banc sont reliées aux entrées des neurones du deuxième et celles du deuxième au troisième. Les sorties du troisième banc entrent dans le seul neurone du quatrième qui donnera la réponse du système: en principe quand la première main est calculée comme plus forte que la seconde.
Je présente une paire de mains en entrée et je regarde le résultat. S’il est bon, je vais augmenter le potentiel de tous les neurones des 2è et 3è banc qui ont émis un 1, s’il est mauvais, je réduis leur potentiel. Pour une main, tous les neurones d’un banc travaillent ensemble, d’abord le premier, puis le deuxième, le troisième, pour finir au quatrième.
Pratiquement, j’ai créé aléatoirement (au hasard) 10,000 mains de poker et j’ai laissé la machine travailler. Deux, trois minutes.
Ça marche. La machine a appris à évaluer une main de poker. C’est profondément inutile. Mais j’ai appris une chose surprenante. Les bancs et leur connections étaient fixes, mais les potentiels ont évolué. Je me souviens, j’ai décortiqué tout ce bazar à la fin, mais je n’ai pas trouvé les nombres 4 (quatre couleurs), 13 (1 à 10, Valet, Dame, Roi) ou 2 (2 mains). En fait, la machine n’a rien compris. Elle sait jouer, mais sans compréhension. C’était de l’IA sans I. C’était automatique, mais pas intelligent.
J’ai joué à batailles avec mes petits enfants, quand ils avaient 4, 5 ans pour leur apprendre les chiffres. Ils ont appris que de deux chiffres différents, un est plus grand que l’autre et aussi qu’il y a un nombre minimum. J’ai mis le jeu de bataille dans mon système, il a appris bataille, mais pas les chiffres. En fait, mes petits-enfants avaient déjà à cet âge, 4 ou 5 ans d’apprentissages divers avec des ajustements nombreux de leurs neurones. Croire que nous pouvons accélérer ce processus, me semble stupide.
J’espère que mes potentiels t’ont éclairé sur le message peu clair des techniciens. Les potentiels de leurs neurones s’adaptent au fur et à mesure de leur apprentissage. Je doute qu’ils arrivent au bon sens de la vie journalière.
Un détail. On pourrait relier les neurones du 2è et du 3è banc de façon totalement aléatoire, sans banc. Tous les trajets à travers ce réseau doivent se terminer par le neurone résultat (1 si la première main est meilleure que la deuxième). Le trajet de l’information des données pourrait varier de 2 neurones jusqu’à 5 ou 10, ou même plus suivant les paramètres de construction. La progression des calculs et de l’information deviendra plus difficile à calculer. On obtiendra alors un réseau encore plus compliqué à comprendre.