NVIDIA GameGAN : une IA apprend les règles de Pac-Man et le reconstitue

NVIDIA GameGAN : une IA apprend les règles de Pac-Man et le reconstitue

NVIDIA GameGAN : une IA apprend les règles de Pac-Man et le reconstitue

C'est à l'occasion des 40 ans du jeu que l'entreprise américaine a dévoilé ce projet de recherche, en partenariat avec l'université de Toronto, le Vector Institute, le MIT et Bandai Namco. Il a même droit à son site dédié et une vidéo de présentation. La publication doit être diffusée dans la journée.

Pour faire simple, un réseau antagoniste génératif (GAN) a été entraîné dans le but de lui faire comprendre les règles de Pac-Man, afin qu'il puisse ensuite reconstituer le jeu. C'était chose faite en quelques jours avec quatre GV100 (Volta). Pour cela, GameGAN a dû s'enquiller pas moins de 50 000 sessions de jeu.

NVIDIA ayant entraîné une IA pour le faire, jouant de manière presque parfaite, ce qui n'est pas sans impact sur le résultat et les règles déduites. Le travail continue donc, le jeu tel que généré pourrait être disponible cet été. Mais attention, il y a une subtilité. Car même si beaucoup pensent qu'une IA est un principe presque magique, ce n'est pas le cas.

Ainsi, GameGAN n'a pas recréé Pac-Man à proprement parler, ou son code. Il a simplement appris à afficher des images correspondant à celles du jeu à l'écran. Il les fait évoluer en fonction des commandes enregistrées depuis un clavier ou une manette. Un outil qui saura montrer son utilité au-delà des jeux vidéo.

NVIDIA évoque ainsi la possibilité pour une IA de déduire certaines règles suite à l'observation d'une série de vidéos, pour la conduite autonome par exemple. Attention tout de même aux ratés, car il faudra lui apprendre à faire la différence entre les règles et les bonnes ou mauvaises habitudes de conduite...

Commentaires (16)


et si on tente des actions qu’il n’a pas rencontré lors de son entraînement, ça doit donner des trucs bizarres! ^^

(genre appuyer sur une touche qui faisait pas partie du panel de touches disponibles ou bien entrer le konami code <img data-src=" /> )


Techniquement, le réseau (ici on n’a besoin que du générateur) affiche ce qui est le plus probable à afficher sachant :




  • l’input

  • l’image précédente

  • une mémoire interne (si besoin)

  • une valeur aléatoire (potentiellement ça peut servir de RNG)



    A voir si les comportement des fantômes sont respecté. Je sais qu’ils sont assez complexe (le rouge te chasse, le rose et le bleu vont essayé de se placer devant , le orange bouge aléatoirement.) Faire de pathfinding 100% avec des réseau de neurone, je suis moyen chaud (je ne dis pas que c’est impossible, mais ce n’est ni le plus efficace, ni le plus sûr).


Quand on se rappelle que Pac Man tourne sur un pauvre Z80, on réalise a quel point l’IA est un enooooooome gâchis de ressources.


Oui et non. Ici une IA a appris à partir d’actions, à recréer le jeu/règles.

Super utile si tu transfères cette technique sur d’autres domaines.

Une IA regarde ce que tu fait au travail et en déduit des règles -&gt; knowledge management. On pourra ainsi transférer les connaissances acquises à quelqu’un d’autre.








tazvld a écrit :



Techniquement, le réseau (ici on n’a besoin que du générateur) affiche ce qui est le plus probable à afficher sachant :




  • l’input

  • l’image précédente

  • une mémoire interne (si besoin)

  • une valeur aléatoire (potentiellement ça peut servir de RNG)



    A voir si les comportement des fantômes sont respecté. Je sais qu’ils sont assez complexe (le rouge te chasse, le rose et le bleu vont essayé de se placer devant , le orange bouge aléatoirement.) Faire de pathfinding 100% avec des réseau de neurone, je suis moyen chaud (je ne dis pas que c’est impossible, mais ce n’est ni le plus efficace, ni le plus sûr).



    A ce que j’ai pu lire ailleurs, pas totalement, l’IA a du mal à assimiler les caractères de chacun.



Est-ce que la ré-implémentation des connaissances acquise tourne sur un Z80 avec 64K de RAM, j’en doute <img data-src=" />

On apprends les règles, mais apprend t’on a les implémenter de façon optimale ?

Je serait curieux de connaitre l’ordre de grandeur de complexité entre la version originale et la version apprise.



Pour le transfert de connaissances, si le résultat coute plus cher en énergie/HW qu’un salaire de misère, le beancounter en restera a la méthode actuelle : l’employé surpayé expliquera a N employés sous-payés son boulot, avant de se faire virer, mème si ça ne fait gagner que 10%.



A moins que tu ne penses a une ré-implémentation d’outils métier tournant sur windows 95 dont on a perdu le source et qu’on cherche a maintenir pour éviter la faillite de l’entreprise <img data-src=" />


Si tu veux recréer un programme ex nihilo, ça sera toujours plus simple, fiable, moins coûteux et efficace de le réécrire. (ça me rappelle d’une interview de mecs qui devait porter des jeux vidéos sur d’autre console : il n’avaient pour seul matériel que la cartouche du jeu sur la console originale, il devait alors tout déduire de là, tout recréer.)





Non, ici, derrière cette démo, ça montre que l’on peut reproduire un modèle d’un phénomène avec une certaine fiabilité sans avoir à comprendre les règles qui le régisse. Le Pacman ou le Doom, c’est juste un exemple débile sans intérêt final autre que démontrer la faisabilité et explorer les limites du bousin. ce sont des phénomène que l’on comprend très bien (on a le code) qui font de bon “jouets” pour tester.


Je comprends bien que c’est un exemple débile. Mais l’original restent ridiculement simple pour une complexité énorme de la copie.



Je doute d’ailleurs que doom soit a la porté de cette AI dans une configuration similaire.

Et tout le problème est bien la : on cherche a modéliser un problème qu’on ne comprends pas et on utilise une méthode brute-force pour le reproduire.



Ici on apprends surtout, car on comprend le problème, que la solution AI est un énorme gâchis de ressource par rapport a ce qui est réellement nécessaire tout en n’étant mème pas sur d’avoir couvert tout les aspect du problème.



Bref, du marketing pour vendre, pas une solution.


Quand un projet de recherche utilise “pacman” ou “doom” comme preuve, vous êtes pratiquement certain que l’objectif était de faire le buzz pour obtenir des financements et pas de faire avancer la recherche. <img data-src=" />


“This enables many interesting applications such as swapping different

components of the game to build new games that do not exist”

<img data-src=" />

Ça existe depuis longtemps.

Il suffit de voir la multitude de “fps” qui sont des clones.








tazvld a écrit :



Non, ici, derrière cette démo, ça montre que l’on peut reproduire un modèle d’un phénomène avec une certaine fiabilité sans avoir à comprendre les règles qui le régisse. Le Pacman ou le Doom, c’est juste un exemple débile sans intérêt final autre que démontrer la faisabilité et explorer les limites du bousin. ce sont des phénomène que l’on comprend très bien (on a le code) qui font de bon “jouets” pour tester.





Et ça ne permet pas forcément de retrouver les règles (juste de les imiter plus ou moins bien).



C’est juste de la rétro-ingénierie.



j’attends avec impatience l’article dont le titre sera : “une IA analyse tous les tirages du Loto et de l’Euromillion et pronostique à coup sûr tous les tirages à venir”


50000 sessions pour apprendre ? Vous montrez le jeu à un enfant pendant 2 minutes et il a tout compris. Les machines sont plus efficaces que nous pour les tâches répétitives, mais côté intelligence, on est très très très très très loin du compte. Pour moi le danger est là : attribuer de l’intelligence au machine alors qu’elles n’en ont pas.


Dans l’apprentissage automatique, on souhaite à faire le moins de manipulation à la main qui seront dès lors gravé dans le marbre, et laisser tout ça aux algo d’apprentissage qui pourront toujours s’améliorer avec l’expérience.



Typiquement, dans la reconnaissances d’images, il n’y a pas si longtemps on écrivait beaucoup de chose à la main, et les modèle d’apprentissage automatique était assez simple. Aujourd’hui, avec les réseaux de neurone convolutif (et parfois augmenté de réseaux de neurones récursifs) on lui donne à bouffer la base de donnée brute d’image et les résultats attendu, et il se démerde tout seul pour tout faire.



Dans le cas présent, un GAN est souvent utilisé pour augmenter une base de donnée d’apprentissage. Il y a des explication mathématique qui explique comment ça fonctionne, mais on s’en fout, l’idée est que l’on peut utiliser un GAN pour créer des nouvelles donnée d’apprentissage pour un nouveau réseau de neurone. C’est souvent utilisé pour l’analyse d’image quand on manque d’exemple. Mais dans ce cas là, c’est la sortie du GAN qui sert d’entrée.



Dans le cas présent, ça montre qu’un GAN permet de reproduire un système dynamique, avec entrée et sortie. On peut donc tout à fait imaginer utiliser un GAN pour apprendre à un modèle à piloter un système dynamique lorsque l’on a pas forcément un accès illimité et profond à ce système. D’un point de vu recherche, c’est important, je crois que c’est la première fois que l’on pousse aussi loin le GAN (on savait déjà l’utiliser avec une entrée pour “diriger” la sortie)



Pacman nous paraît simple, et heureusement, c’est un jeu vidéo créé par un humain pour les humains, heureusement que les règles nous soit facilement accessible. Mais derrière ce truc un peu fun, pour marquer l’anniversaire, il est démontrer qu’un ensemble de règles régissant un système dynamtique peuvent être apprises et reproduites avec une certaine fidélité par un modèle d’apprentissage automatique sans connaissance au préalable. Sous la surface rigolote du truc, il y a des choses qui intéressent les personnes travaillant dans le domaine.








tazvld a écrit :



il est démontrer qu’un ensemble de règles régissant un système dynamtique peuvent être apprises et reproduites avec une certaine fidélité par un modèle d’apprentissage automatique sans connaissance au préalable.





Reproduites, oui, apprises, pas vraiment.

Même s’il arrive à simuler leurs déplacements, le GAN ne peux pas te sortir les règles de déplacement des fantômes (pour reprendre l’exemple discuté plus haut).

Il ne “sait” même pas qu’il y a des fantômes et que ceux-ci se déplacent d’ailleurs…



Par contre, c’est sûr, arriver à reproduire le fonctionnement du jeu sans en avoir le principe ni les règles (même si ça ne nous parait pas compliqué quand on les a) c’est fort.



Après j’aimerais bien voir la différence entre le jeux réel et le jeux simulé si on a exactement les mêmes entrées. S’il n’y a pas d’aléatoire, ça devrait idéalement donner le même résultat.



Le but n’étant pas de reproduire un PacMan pour que l’on puisse y jouer réellement. C’est un résultat intermédiaire qui ouvre plein de possibilité. Comme je l’ai dit, un GAN par exemple sert souvent pour augmenter une base de données d’exemples qui servirons pour d’autre modèle d’apprentissage automatique.

Par exemple, ça suffirait peut-être à une autre réseau de neurone à apprendre à jouer à PacMan, il n’a pas a connaître les comportement exacts des fantômes, il lui suffit de comprendre qu’il faut les éviter (trouver des manœuvres basiques d’évitement) et qu’il faut bouffer les pac-gomme.


Fermer