Blizzcon 2016 : Google développe DeepMind : une IA qui joue à StarCraft

fluocrazykenny | 05/11/2016 à 21h57 - 8

Lors de la cérémonie d’ouverture, nous avons appris qu’un partenariat avait été signé entre Google et Blizzard pour développer une intelligence artificielle capable de jouer à StarCraft mais également de battre les meilleurs joueurs professionnels. Aussi ce panel était très attendu pour en apprendre plus sur ce projet un peu fou.

Cette conférence fut animée par les personnes suivantes :

  • Dan "Artosis" Stemoski - ancien Progamer et commentateur professionnel de StarCraft2
  • Oriol Vinyals - Chercher pour le compte de Google
  • Kevin Calderone - Ingénieur software expert
  • Paul Keet - Ingénieur software expert
  • Timo Ewalds - - Ingénieur software DeepMind

Genèse d’un projet fou

Au tout début, le projet avait mûri dans la tête de quelques ingénieurs à savoir créer une IA pour Brood War. Pendant près de 10 ans, l'objectif était de se faire rencontrer des IA entre-elles afin de vérifier l’avancée des IA dans ce domaine. En parallèle, Google avait déjà développé des IA capables de réaliser des prouesses. C’est ainsi que Blizzard a proposé sa collaboration pour tester les IA sur StarCraft II après que Google ait réussi son défi avec AlfaGo : l'IA qui a battu le joueur professionnel coréen de Go il y a quelques mois.

IA ? Mais quelle IA ?

Contrairement à l'intelligence "informatique" où il est facile de programmer une solution à un problème mais qu'il faut recommencer à tout programmer à nouveau pour un nouveau problème, l'idée a émergé qu'il serait plus simple de faire apprendre à une intelligence artificielle comment résoudre des problèmes et qu'elle soit capable d'apprendre par elle-même à en résoudre de nouveaux.

Aussi la clef de la recherche sur l'intelligence artificielle de nos jours est très fortement axée sur cette capacité à apprendre par elle-même et c'est sur cette voie que DeepMind est actuellement développé.

La vraie première avancée dans le domaine fut DeepBlue, un ordinateur développé par IBM qui a réussi l’exploit de battre le champion du monde d'échec Garry Kasparov. Cependant, il ne s'agissait pas vraiment d'une IA mais plutôt d'un programme développé spécifiquement pour les échecs mais il était impossible d'adapter ce programme pour pouvoir jouer à d’autres jeux.

Une IA capable d’apprendre

Aussi le paradigme développé pour DeepMind est que l'agent (ici l'IA) a un objectif défini dans un environnement défini. L'agent observe l'environnement et en retour effectue des actions qui influent sur l'environnement. Pour les développeurs de DeepMind, le plus pratique pour eux fut de faire évoluer leur agent à travers des jeux-vidéo puisque l'environnement est maîtrisé, les actions sont relativement simples et la boucle observation/action est facilement répétable.

Dans le cas des jeux vidéo, l'environnement est très simple puisqu'il s'agit des pixels que vous voyez à l'écran. Aussi la partie observation pour l'agent est assez pratique et facile à réaliser. L'information est traitée par des "mini-cerveaux" qui interprètent ce que l'agent voit puis décident quelles actions entreprendre, en l'occurrence activer une commande comme déplacer un joystick vers la droite ou appuyer sur un bouton.

C'est donc avec cette idée en tête que les ingénieurs de DeepMind ont choisi de tester leur agent avec plus d'une cinquantaine de jeux 8-bit Atari des années 80. L'objectif de l'agent était de maximiser le score à la fin de la partie. L'agent a donc joué un nombre quasiment infini de partie en tentant de maximiser le score à chaque fois et pour chaque jeu.

Les développeurs ont été surpris de voir les stratégies développées par l'agent qui a rapidement trouvé des techniques qui n'auraient jamais pu être réalisé par des humains (temps de réaction minimal, grande quantité d'APM utilisée, etc.)

Les vieux jeux Atari ne furent que la première étape. DeepMind s'est attaqué par la suite à d'autres jeux un peu plus récents comme des courses automobiles en 3D. Ce genre de jeux implique qu'il faut prendre en compte des choses supplémentaires que ce que l'on peut voir à l'écran comme par exemple la possibilité qu'un véhicule que l'on vient de dépasser se trouve derrière nous et tente de nous doubler (alors qu'il n'est pas visible à l'écran). Ainsi, les jeux plus récents proposaient de nouvelles contraintes à l'agent qui a dû s'adapter au fur à mesure.

La dernière étape fut de travailler sur des résolutions de labyrinthe en 3D très complexe. Il fallut donc à l'agent de comprendre les mécanismes du labyrinthe et de mémoriser le plan ainsi que les issues possibles.


C'est ainsi qu'ils sont venus naturellement au jeu de GO puisque l'échiquier de 19x19 peut être comparé comme un écran de 19 pixels sur 19 pixels avec 3 valeurs possibles : blanc, noir ou vide. Dans ce cas, l'agent doit traiter les différentes positions et l'objectif est de gagner la partie. Aussi dans cette optique, les développeurs de Google ont créé AlphaGo et lui ont appris les règles en jouant un nombre incalculable de parties.

Ce fut un succès puisqu'en mars 2016, à l'issue d'une rencontre entre AlphaGo et le champion incontesté depuis 10 ans Lee Sedol (une légende du jeu de Go) AlphaGo s'est imposé 4 à 1 ! Ce fut extrêmement médiatisé surtout en Corée puisque tout le monde s'attendait à ce que Lee Sedol s'impose facilement.

Et c'est à ce moment précis que Michael Morhaime a proposé à l'équipe de DeepMind de s'attaquer à StarCraft II. Le défi est beaucoup plus grand puisqu'il y a une complexité beaucoup plus grande qu'un jeu de GO : Par exemple vous ne savez pas ce que fait votre adversaire, vous devez gérer l'économie ainsi que l'armée en même temps, mais surtout ce n'est pas un jeu au tour par tour aussi il est impossible de prendre le temps de réfléchir comme au GO. Et certaines actions simples pour un humain comme fabriquer un mutalisk peut paraître être très complexe pour une intelligence artificielle compte tenu du nombre d'étapes et de clic pour arriver à construire un mutalisk : construire des récolteurs, construire un bassin génétique, récolté du gaz, faire évoluer la couveuse, construire une aiguille puis enfin cliquer sur le bouton construire un mutalisk. Cela représente un vrai challenge pour l’IA.

Pourquoi développer un IA capable de jouer à des jeux ?

Certes DeepMind est capable de faire le meilleur score à de vieux jeux mais comme il est capable d'apprendre, il est aussi capable de résoudre des cas pratiques en les traitants comme un jeu. Par exemple, Google s’est servi de DeepMind pour les aider à optimiser leur système de refroidissement de leurs data-center de serveurs en faisant croire à l'IA que c'était comme un jeu auquel il fallait optimiser le refroidissement avec le moins d'énergie possible.

Les cas pratiques dans le monde réel sont possibles et une bonne IA capable de réfléchir et apprendre est en théorie capable de résoudre n’importe quel problème complexe… tout étant de définir quel est l’objectif et quels en sont les contraintes.

Et Blizzard dans tout ça ? 

Aujourd'hui, toutes les IA des jeux Blizzard sont en réalité des scripts et des algorithmes, en d'autres termes, ils sont incapables d'apprendre quoi que ce soit et appliquent uniquement des stratégies préprogrammés par les développeurs. Même s'il est possible de choisir la difficulté de l'IA, elle ne fera jamais plus de choses que ce dont le développeur l'a programmé à faire.

La nouvelle approche de Blizzard est de permettre aux IA d'apprendre à jouer à StarCraft : les développeurs expliquent les règles du jeu à l'IA puis celle-ci se débrouille pour comprendre comment jouer en utilisant uniquement les informations qui lui sont disponibles à l'écran et en les interprétant de la bonne manière. Cela se fait par deux biais : jouer un nombre incalculable de partie mais également regarder des replays de partie d'autres joueurs pour comprendre quelles sont les bonnes techniques et pouvoir ainsi les reproduire.

C'est dans cette optique que Blizzard est en train de développer des outils (API) pour permettre à une machine (IA) de communiquer avec le jeu. Bien entendu tous ces outils sont librement utilisables par la communauté pour ceux qui voudront contribuer à améliorer l'IA. Si vous n'êtes pas l'âme de programmeur, vous pouvez toujours travailler sur la contribution de replays permettant à l'IA de s'améliorer.

Enfin Blizzard a annoncé que l'API tant attendue serait disponible pour le premier trimestre 2017. L'objectif étant d'une part de tester l'IA contre des humains mais également ouvrir de nombreuses possibilités d'entrainement ou d'expérience de jeu spécifique grâce à cette nouvelle technologie.


Question & Réponse : 

  • Il fallait définir un mètre étalon pour savoir si l'IA joue bien (pour les jeux Atari), aussi l'équipe de DeepMind a utilisé un employé qui était plutôt doué aux jeux-vidéo sans être un vrai pro-gamer. Au final, dans la plupart des cas, l'IA était plus fort que l'humain.
  • Pourquoi passer du Go à StarCraft ? La complexité du jeu est un énorme challenge pour DeepMind. L'autre raison est que c'est sûrement le seul jeu de stratégie qui est stable et joué par de nombreuses personnes ainsi il sera aussi plus facile de le faire évoluer mais aussi de tester son niveau.
  • La plus grosse difficulté jusqu'à présent est de faire comprendre l'interface de jeu à DeepMind : savoir où cliquer, les différents types de commandes, etc. Cela peut paraître relativement simple à un être humain mais c’est en réalité beaucoup plus complexe à comprendre pour une machine.
  • Un humain qui souhaite apprendre à jouer à StarCraft va très certainement regarder des vidéos de tutoriels ou des replays pour essayer d'apprendre. Le problème avec les IA, c'est que pour découvrir un jeu, elles commencent par cliquer de manière aléatoire sur l'écran et essaye de comprendre ce qui est bien ou pas en fonction des récompenses qu'elles en tirent. Pour contourner ce problème l'IA étudie plutôt des "morceaux de partie" déjà avancée dans des situations précises et compare son résultat avec ce qu'aurait fait un humain.
  • Une question importante s'est posée rapidement : sachant qu'une grande partie du jeu se base sur le multi-tasking, comment rendre le jeu équitable face à un humain puisque virtuellement, l'IA peut effectuer beaucoup plus d'APM qu'un vrai joueurs ? Pour le moment la technique consiste à limiter les APM de l'IA mais il faut garder à l'esprit que l'IA doit utiliser l'interface du jeu en lui-même pour effectuer les actions, cela limitant grandement la rapidité des actions. Cependant, les limitations sont en général levées pendant l'apprentissage du jeu mais seront forcément respectées pour garder la partie équitable contre d’autre IA ou contre des humains.
  • L'objectif des développeurs de DeepMind est surtout de pouvoir comparer les progrès de l'IA par rapport à d'autres IA ou bien comment l'IA se sort de situation difficile par rapport à comment un vrai joueur s'en serait sorti. L’objectif final est aussi d’avoir une IA intelligente qui se sert de son expérience dans StarCraft pour résoudre des problèmes du monde réel… Qui a dit comme un vrai humain ?
8 commentaires - [Poster un commentaire]


Chargement des commentaires...

Poster un commentaire

Vous devez vous identifier pour poster un commentaire.
Nombre de visites sur l'accueil depuis la création du site StarCraft II : 20.936.524 visites.
© Copyright 1998-2024 JudgeHype SRL. Reproduction totale ou partielle interdite sans l'autorisation de l'auteur. Politique de confidentialité.