Un petit post de justesse pour faire un post/semaine, juste pour dire que le top5 BD que vous attendez tous avec impatience se fera quand je retournerai au boulot (demain quoi) parce que les images que je voulais mettre dessus sont là bas.
Étalons un peu de notre science de geek sur un fait presque d'actualité, ca risque d'être long et pas particulièrement drôle
Une IA a battu recemment un joueur professionnel (5ème Dan) de go. C'est peut être un détail pour vous, mais pour moi ça veut dire beaucoup.
En effet le go, comme les échecs, passe pour un jeu où il faut être "intelligent" pour remporter la partie. Je vous laisse définir intelligent en exercice, mais disons que jouer au hasard les coups n'apporte pas grand chose, que plus t'en fais plus t'es fort, que ça demande de l'abstraction , de l'imagination et surtout la capacité de mesurer la conséquence de ses actes (très important et on y pense pas toujours). C'est donc un défi pour l'IA ce jeu.
Du point de vue de l'IA, ça fait un certain temps qu'on est capables de faire des programmes qui déboitent n'importe quel humain aux echecs,ou aux dames. Le principe est simple, on envisage
tous les coups jouables, on regarde ceux qui sont les plus mieux pour nous et les plus trop pires pour l'adversaire et hop, kasparov ooned.
Seulement le go, c'est un peu plus délicat à cause du nombre
énorme de possibilités de coups. On appelle ça la combinatoire nous autres informaticiens. Et dans le go, la combinatoire est telle que représenter les coups possibles n'est pas réaliste sur un ordinateur personnel (ni même sur 2 ou 3).
Les concepteurs se sont dit, "qu'à cela ne tienne gaston, on va utiliser plein de pc dédiés au calcul parallèle, et un supergros PC de la mort en plus" ils ont fait tourner ça , ça a pas marché , l'IA a perdu.
Ils ont réessayé ca a marché, l'IA a gagné, une deuxième fois, l'IA a perdu. Bilan mitigé donc , mais ça voudrait dire que ce ne serait qu'une question de puissance de feu pour faire tomber les sensei de la discipline, ce qui est pas forcément logique vu les règles du jeu.
Bilan mitigé disais-je, car les parties se sont jouées sur un 1/4 de goban ( le plateau de jeu), ce qui réduit significativement la combinatoire , mais elle reste bien immense vous en faites pas.
Alors pourquoi ça m'excite autant puisque c'est mitigé ?
Ben déjà pour la performance purement calculatoire, c'est beau d'avoir pu faire calculer autant de trucs à plusieurs processeurs en réseau sans que ça fasse *pfft* en branchant sur la CB.
Ensuite parce que pour le peu que je connais de ce jeu, ça se joue à deux niveaux : de la baston pierre à pierre (locale à qq cases) et de la conquête de territoire (globale à tout le goban), et ça rend les choses bcp plus compliquées pour les pauvres petits concepteurs d'IA.
Allez rentrons un peu plus dans les détails pour voir pourquoi l'IA est un domaine passionnant.
On aime bcp les jeux de société dans l'IA parce que ça a plusieurs propriétés facilitantes: les règles et les éléments (cartes, pions, cases) sont fixes, ce qui fait un nombre
fini de coups et de possibilités. Imaginez la galère sinon, on ne serait virtuellement jamais sûrs de rien, faudrait faire des proba tout le temps , ça serait la loose.
Ensuite c'est souvent au tour-par-tour, donc on peut schématiser un coup par la succession
perception-décision-action, et tout l'enjeu de l'IA est -en général- de définir la fonction de décision.
Si c'était pas chacun son tour, ben ça rend les choses bcp plus difficiles, il faut s'assurer qu'on puisse calculer un choix dans un temps raisonnable si la rapidité compte, pouvoir agir et réfléchir en même temps, ce qui coule pas de source. Imaginez la galère de faire une -vraie- IA de foot, pour faire un vrai jeu collectif, une vraie stratégie etc... et pas simplement passer au joueur démarqué puis aller vers l'avant ^_^ roh je suis mauvaise langue.
Revenons en au go : lors de l'étape de perception qu'est ce qu'on fait si l'état du jeu est contradictoire ? Si l'état du jeu est bon pour la baston de pierres, on décide de faire du local , si au contraire les territoires s'annoncent plutôt en notre faveur, on fait du global , ou alors un peu des deux , mais dans quelles proportions etc ???
Plus vicieux : comment se décider si un coup bénéfique globalement met en péril la stratégie locale ? Et l'inverse ? Et puis comment savoir si l'état du jeu est vraiment bénéfique , puisque que tout peut changer en qq coups, comment planifier une stratégie ?
Vaste question donc, rien que pour la perception du jeu
Je parle même pas de la fonction de décision parce que c'est une vague technique assez connue ( Monte Carlo pour les curieux) qui consiste à envisager plein de coups et d'affiner les probabilités de succès de chacun des coups selon qu'ils aient mené à la victoire ou pas, en remontant la chaine des coups à l'envers, du dernier au premier, un truc de ce genre là.
Bon l'action , enfin c'est facile, il suffit qu'un blaireau fini lise le résultat et joue la pierre à l'endroit indiqué par la fonction de décision.
Ce qui est assez curieux c'est que la technique employée est assez classique et connue, donc l'enjeu véritable de cette équipe (mogo le nom du projet je crois), outre la faisabilité, devait se situer ailleurs (heuristiques pour limiter la combinatoire et problèmes avec les deux échelles de perception à mon humble avis)
D'ailleurs de vous à moi , pour une IA de Go, il y avait beaucoup mieux comme nom que mogo, il y avait Chantal. -je n'explique pas ce jeu de mots, ça serait trop facile-
Allez pour me faire pardonner de ce post prise de tête, voila qqch de plus terre à terre , où la fonction de perception joue un rôle crucial :D
Oui c'est très beauf , mais ça fait une moyenne et une récompense pour ceux qui ont tenu jusqu'ici