Quand l'intelligence artificielle devient capable de battre Mario

Quand l’intelligence artificielle devient capable de battre Mario

L'occasion de voir quelques pépites...

Avatar de l'auteur
Vincent Hermann

Publié dans

Société numérique

15/04/2013 4 minutes
48

Quand l'intelligence artificielle devient capable de battre Mario

Si vous connaissez Mario, peut-être avez-vous entendu parler de certains concours visant à défier le jeu sous l’angle de l’intelligence artificielle. Alors que des concours entiers sont dévolus à cette activité, un chercheur américain explique sa méthode pour le tout premier Mario.

Tom Murphy est chercheur et a présenté récemment, lors de la conférence SigBovik 2013 ses résultats. Cet évènement annuel rassemble des travaux visant un grand nombre de domaines en rapport avec la science. Il est organisé par l’ACH, l’Association for Computational Heresy. Murphy y a fait la démonstration pour sa part d’une solution d’intelligence artificielle pour le premier Mario, le héros du jeu agissant alors seul et sans manette.

 

 

Comme le chercheur l’explique dans sa vidéo, il a fallu procéder en deux étapes. La première a consisté à accumuler des données. Pour cela, il a créé un programme, nommé LearnFun, capable d’enregistrer le flot de données en provenance de la console NES de Nintendo, soit 60 images par seconde, chacune contenant 2048 octets. Il a joué pendant un certain temps, LearnFun enregistrant la totalité des éléments présents à l’écran. Cela signifie aussi bien les mouvements réalisés à la manette, que les actions telles que récupérer les pièces dans les cases, tuer les ennemis, éviter les trous et ainsi de suite.

 

L’autre programme, PlayFun, s’occupe ensuite de « jouer » à Mario. Il utilise pour cela les informations enregistrées par LearnFun. Comme on peut le voir dans la vidéo, à partir de 7:50, les premiers essais ne sont guère concluants. Mais au fur et à mesure que PlayFun exploite un plus grand nombre de données et qu’il apprend à mieux le faire, les résultats s’améliorent. Il finira d’ailleurs par découvrir un bug qui provoquait un blocage de Mario dans certains coins, le programme ne sachant alors pas faire demi-tour pour essayer un autre chemin.

 

Il est intéressant de noter qu’à partir de 10:45, on peut voir PlayFun tirer parti d’un bug connu dans Mario : si le héros moustachu est dans un mouvement de chute, il peut tuer automatiquement un ennemi qu’il touche. Il aura en revanche plus de mal à utiliser la mort d’un ennemi pour atterrir plus loin, un mouvement obligatoire dans bien des niveaux du jeu.

Une méthode applicable à d'autres titres

Tom Murphy explique également dans sa vidéo que la même technique a été utilisée dans d’autres jeux de la vieille NES. Karate Kid, Hudson’s Adventure Island, Bubble Bobble, Pacman ou encore Tetris. La méthode donne de très bons résultats sur Bubble Bobble et Pacman, PlayFun pouvant exploiter des mouvements au pixel près, ce qu’un joueur humain pourrait difficilement faire. C’est précisément le cas dans Pacman quand ce dernier parvient à se glisser entre deux fantômes très serrés.

 

Le cas de Tetris illustre cependant la limite de la méthode : il ne s’agit plus d’un circuit linéaire et de monstres à tuer, mais de fonctions cognitives pour prévoir et organiser à l’avance. PlayFun ira jusqu’à mettre le jeu en pause juste avant de perdre, empêchant alors la fin de la partie. Tom Murphy dira alors avec humour que la meilleure méthode pour gagner est de ne pas jouer.

Mario a ses propres concours 

Comme le fait remarquer Wired, il ne s’agit en aucun cas du premier essai d’intelligence artificielle autour de Mario ou, plus globalement, du jeu vidéo. Il existe d’ailleurs un Mario AI Championship consistant à faire réaliser au jeu le plus gros score possible via l’intelligence artificielle. Un concept qui ne ressemble pas à celui de Tom Murphy, dont la méthode se veut plus généraliste.

 

On regardera cependant la vidéo ci-dessous, amusante bien que stressante, réalisée par une IA dans un tableau inventé et générant douze monstres par seconde :

 

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Une méthode applicable à d'autres titres

Fermer

Commentaires (48)


<img data-src=" /> c’est fort


Sympa, mais toujours moins fort que moi.


Ca peut transporter les Tool Assisted Speedrun à un autre niveau <img data-src=" />


Une IA qui apprend de ses erreurs en gros =) balaise.



Y’en a déjà une faite par IBM, invité à un jeu américain “connu” (on donne la réponse faut trouver la question) et elle s’était très bien débrouiller.



IBM veux la vendre comme conseillé juridique (genre en -874 au japon il a e uun précédent …) ou médicinale (il y a 71.2547% de chance que ce soit tel maladie…)



edit: Watson (c’est le nom du projet IBM ^^)


pas mal du tout ! <img data-src=" />








nucl3arsnake a écrit :



Une IA qui apprend de ses erreurs en gros =) balaise.



Y’en a déjà une faite par IBM, invité à un jeu américain “connu” (on donne la réponse faut trouver la question) et elle s’était très bien débrouiller.



IBM veux la vendre comme conseillé juridique (genre en -874 au japon il a e uun précédent …) ou médicinale (il y a 71.2547% de chance que ce soit tel maladie…)



edit: Watson (c’est le nom du projet IBM ^^)







Et le jeu c’est Jeopardy <img data-src=" />



Flippant quand on imagine tous les usages de drones qui pourraient apprendre <img data-src=" />



<img data-src=" /> néanmoins pour la technique.








Perfidy_demon a écrit :



Ca peut transporter les Tool Assisted Speedrun à un autre niveau <img data-src=" />





J’ai beau être un gros geek, j’avoue n’avoir jamais compris l’intérêt de ça…









yvan a écrit :



Flippant quand on imagine tous les usages de drones qui pourraient apprendre <img data-src=" />



<img data-src=" /> néanmoins pour la technique.







Des drones voleurs de champignons et de truffes dans les bois,là c’est sûr,je flippe ma race.



Manque plus qu’à l’adapter aux hack and slash / MMO et ça va intéresser les entreprises de vente d’objets… même plus besoin de payer des petits chinois pour farmer ^^








Nathan1138 a écrit :



J’ai beau être un gros geek, j’avoue n’avoir jamais compris l’intérêt de ça…







Pouvoir ce la raconté à kikalaplugrosse ? <img data-src=" />



Euh j’ai un doute, mais SigBovik c’est pas l’event 1er avril du département d’informatique de CMU ? :o








Constance a écrit :



Manque plus qu’à l’adapter aux hack and slash / MMO et ça va intéresser les entreprises de vente d’objets… même plus besoin de payer des petits chinois pour farmer ^^







Oh tu sais les farmers n’ont pas vraiment attendu pour le faire.



Toc toc toc

-Sarah Connor ?

(demandez à Watson si vous comprenez pas mon cheminement <img data-src=" />)








DarKCallistO a écrit :



Des drones voleurs de champignons et de truffes dans les bois,là c’est sûr,je flippe ma race.





Des drones tueurs de koopas et de lakitu sachant lancer des boules de feu <img data-src=" /><img data-src=" /><img data-src=" /><img data-src=" />



ça veut dire que l’ia peut faire les mêmes choses qu’un enfant de 6-7 ans, sarah connor peut encore dormir tranquille








Nathan1138 a écrit :



J’ai beau être un gros geek, j’avoue n’avoir jamais compris l’intérêt de ça…









nucl3arsnake a écrit :



Pouvoir ce la raconté à kikalaplugrosse ? <img data-src=" />





Ben même pas, justement, puisque le TAS ne repose que partiellement sur le skill…









nucl3arsnake a écrit :



Pouvoir ce la raconté à kikalaplugrosse ? <img data-src=" />







Généralement, les TAS c’est plus pour savoir qui a la plus petite… durée de run. <img data-src=" />









Constance a écrit :



Manque plus qu’à l’adapter aux hack and slash / MMO et ça va intéresser les entreprises de vente d’objets… même plus besoin de payer des petits chinois pour farmer ^^







Pas besoin d’IA quand un script peu faire la même chose.





Tom Murphy dira alors avec humour que la meilleure méthode pour gagner est de ne pas jouer.



Le “the only way to win is not to play” je pense que c’est surtout une référence à war games : “the only way to win in Nuclear War is not to play” <img data-src=" />



/<img data-src=" />








darkbeast a écrit :



ça veut dire que l’ia peut faire les mêmes choses qu’un enfant de 6-7 ans, sarah connor peut encore dormir tranquille





“Mon UPC est un neuro-processeur, un ordinateur à apprendre, plus j’ai de contacts avec les humains et plus j’apprends.”









darkbeast a écrit :



ça veut dire que l’ia peut faire les mêmes choses qu’un enfant de 6-7 ans, sarah connor peut encore dormir tranquille







Lol je sais pas si t’as matté la vidéo pour dire ça, parce qu’avec la masse d’ennemis qu’il y’a <img data-src=" />



[HS]

Sinon, en parlant d’IA, j’ai battu pour la première fois l’IA experte dans COH hier <img data-src=" /> et deux fois <img data-src=" />

[/HS]









Tolor a écrit :



Le “the only way to win is not to play” je pense que c’est surtout une référence à war games : “the only way to win in Nuclear War is not to play” <img data-src=" />



/<img data-src=" />





<img data-src=" /> A strange game. The only winning move is not to play.









psn00ps a écrit :



<img data-src=" /> A strange game. The only winning move is not to play.







C’est pas ce qu’a fait la France face aux Allemands pendant la 2nde guerre mondiale ?? En effet, efficace <img data-src=" />









Tolor a écrit :



Le “the only way to win is not to play” je pense que c’est surtout une référence à war games : “the only way to win in Nuclear War is not to play” <img data-src=" />



/<img data-src=" />







Han une référence à un des plus gros navet de la création… Jetez lui des cailloux !









Yangzebul a écrit :



Han une référence à un des plus gros navet de la création… Jetez lui des cailloux !





<img data-src=" />

Il a “un peu” vieilli, mais il était très bien ce film









razcrambl3r a écrit :



Lol je sais pas si t’as matté la vidéo pour dire ça, parce qu’avec la masse d’ennemis qu’il y’a <img data-src=" />



[HS]

Sinon, en parlant d’IA, j’ai battu pour la première fois l’IA experte dans COH hier <img data-src=" /> et deux fois <img data-src=" />

[/HS]







t’as déjà vu un gamin de 7 ans jouer à un jeu vidéo <img data-src=" />





Une erreur s’est produite, veuillez réessayer ultérieurement.



<img data-src=" />


C’est bien joli mais cela repose sur un pré-calcul basé sur un environnement sans grande variation. D’ou la collecte de données. Si les “streums” étaient généré aléatoirement (mais vraiment) et pas en fonction d’une position dans le jeu cela fonctionnerait moins bien.



D’autres façons de faire reposent sur l’analyse du niveau pour faire un “chemin” et puis on déroule. Après vient l’obstacle aléatoire qui provoque la pause du script, on règle le saut (ou le tir), on tue le monstre. Et puis on re-déroule.



On est loin du cognitif. finalement dans ce genre de défis. Élaboré oui, mais pas plus.



Je verrai plus un concours ou:

-Un chemin unique au départ avec quelques obstacles ou cul de sac.

-Tu as 5 “chemins solution” à partir d’un carrefour.

-Un environnement dynamique et aléatoire sur certains segment (monstre etc).

-Un nombre de “brique logique” a associer qui créent des fonctions (passer le mur, tuer le monstre).

-Un nombre de “slot” limités pour les fonctions a utiliser.



Le programme est lâché dans cet environnement (peu agressif au départ), sans aucun pré-calcul mais avec un savoir de base (objectif : atteindre le carrefour, la fin, mouvement de base, cartographie, résolution de chemin etc…) et il doit faire des associations pour arriver a passer les obstacles.



Le mur comme les monstres sont des obstacles mais qu’on ne peut pas “traiter” de la même manière. Chaque obstacle apporte spontanément une information à l’IA qui exprime la contrainte. “Le mur me dit que j’ai besoin du saut”, “Le monstre me dit qu’il est faible devant le pistolet”, “le monstre 2 ne craint pas le pistolet mais le fusil a pompe”, etc.



Au carrefour le programme reçoit une information sur chaque chemin (qui n’est pas complète). ex: Un chemin qui annonce un besoin de saut très haut sans annoncer une présence de monstre simple.



Ce serait assez drôle car on verrai émerger des comportements en fonction de ce qui est arrivé à l’IA. Soit un speedy-jumping-jack-son qui n’a jamais vu de monstre soit un Rambo qui a du en affronter une myriade. Ou entre les deux ou encore un chasseur de bonus. Et le choix du chemin change la donne. C’est la ou je pense que l’on découvrirai des choses intéressantes et super fun.



Avec un petit client serveur on pourrait même représenter la chose en 3D. Tiens bin du coup je lance le défi. Qui m’aime (ou pas, t’façon zetes tous des quiches) me suive.





le jour ou son truc gagnera dans ninja gaiden on en reparlera

en attendant, ça vaut rien <img data-src=" />








yvan a écrit :



Flippant quand on imagine tous les usages de drones qui pourraient apprendre <img data-src=" />



<img data-src=" /> néanmoins pour la technique.







La phase d’apprentissage risque d’être un peu difficile:



Se déplacer au hasard.

Bombarder.

rechercher “x terroristes tués” sur Google news. Ajouter +1 pour chaque x.

rechercher “y civils innocents tués”. Retirer -1 pour chaque y.

si total &gt; 0. Bombarder aux alentours.

sinon envoyer message d’excuse et inscrire les coordonnées comme ne devant pas être bombardées

Recommencer.









nucl3arsnake a écrit :



Y’en a déjà une faite par IBM, invité à un jeu américain “connu” (on donne la réponse faut trouver la question) et elle s’était très bien débrouiller.







Oui, au Jeopardy :http://www.20minutes.fr/high-tech/671569-high-tech-watson-superordinateur-ibm-ec…



Mais là c’était un travail sur la reconnaissance linguistique et non l’IA :)









megadub a écrit :



Oui, au Jeopardy :http://www.20minutes.fr/high-tech/671569-high-tech-watson-superordinateur-ibm-ec…



Mais là c’était un travail sur la reconnaissance linguistique et non l’IA :)









Si, vu qu’il apprenais de ses erreurs et enregistrais que si la réponse était pas A mais B, la rajoutais et “ l’apprenais ” , ne buzzais pas si pas sur a plus de x% etc…









v1nce a écrit :



La phase d’apprentissage risque d’être un peu difficile:



Se déplacer au hasard.

Bombarder.

rechercher “x terroristes tués” sur Google news. Ajouter +1 pour chaque x.

rechercher “y civils innocents tués”. Retirer -1 pour chaque y.

si total &gt; 0. Bombarder aux alentours.

sinon envoyer message d’excuse et inscrire les coordonnées comme ne devant pas être bombardées

Recommencer.





Pour des drones d’attaques c’est pas forcément le plus évident mais il y a plein d’autres usages imaginables dans la surveillance par ex.



Perso je vois pas trop ou est l’intelligence artificielle là dedans, car que je sache, on n’a jamais eu besoin de nous montrer comment jouer à Mario… après dans mario ou est la réflexion?

ya un monstre –&gt; on saute dessus

ya une brique –&gt; on l’explose

ya un trou –&gt; on saute par dessus



en plus dans Mario il me semble que si on refait plusieurs fois le meme niveau, les monstres apparaissent toujours au même endroit?



Je suis plus impressioné par l’IA dans les jeux (ernfin certains) ou justement l’IA essaye de se battre contre le joueur qui est humain…








megadub a écrit :



Mais là c’était un travail sur la reconnaissance linguistique et non l’IA :)





La reconnaissance linguistique est basé sur des algos d’apprentissage (on analyse inpu et output, le programme en ressrot un modèle) tout comme les algos actuels d’IA qui fonctionnent pareil.









Nathan1138 a écrit :



J’ai beau être un gros geek, j’avoue n’avoir jamais compris l’intérêt de ça…







Dans un TAS, le but n’est pas de finir le jeu, mais d’utiliser et montrer certaines failles impossibles à mettre à jour en jouant à la manette, genre dans Zelda OOC : on va plus vite en sautant en arrière, on peut avec certaines manips obtenir des objets en début de partie etc…









Yangzebul a écrit :



Han une référence à un des plus gros navet de la création… Jetez lui des cailloux !







Ça reste un gros film de geeks avec introduction au phreaking et hacking, avec déjà une emphase mise en exergue du social engineering, des backdoors…



Le niveau de malade qu’il faudrait avoir dans la dernière vidéo !








nucl3arsnake a écrit :



Si, vu qu’il apprenais de ses erreurs et enregistrais que si la réponse était pas A mais B, la rajoutais et “ l’apprenais ” , ne buzzais pas si pas sur a plus de x% etc…











ZeHiro a écrit :



La reconnaissance linguistique est basé sur des algos d’apprentissage (on analyse inpu et output, le programme en ressrot un modèle) tout comme les algos actuels d’IA qui fonctionnent pareil.







D’après ce que j’ai compris c’est surtout les dévs qui ont appris pour lui ;)



http://www.20minutes.fr/high-tech/666004-high-tech-watson-machine-ibm-prepare-de…



Pendant quatre ans, plus de 15 chercheurs ont mis au point des milliers d’algorithme pour que Watson soit capable de décortiquer le langage, la fonction et la relation entre des mots. Parallèlement, ils l’ont nourri avec plusieurs millions de textes (encyclopédie, dictionnaires, pièces de théâtre, romans, bible).



Cela signifie qu’ils ont dû développer max de règles et d’exceptions qu’ils ont donné à manger à la machine qui n’avait plus qu’à comprendre la question pour retrouver la réponse parmi la tonne d’encyclopédies.



C’est donc un magnifique travail mais pas de l’IA il me semble. L’apprentissage des erreurs n’étant en rien intelligent, il s’agit juste de scorer les algos pour choisir le meilleur… un indice de fiabilité statistique en somme.









megadub a écrit :



D’après ce que j’ai compris c’est surtout les dévs qui ont appris pour lui ;)



http://www.20minutes.fr/high-tech/666004-high-tech-watson-machine-ibm-prepare-de…



Pendant quatre ans, plus de 15 chercheurs ont mis au point des milliers d’algorithme pour que Watson soit capable de décortiquer le langage, la fonction et la relation entre des mots. Parallèlement, ils l’ont nourri avec plusieurs millions de textes (encyclopédie, dictionnaires, pièces de théâtre, romans, bible).



Cela signifie qu’ils ont dû développer max de règles et d’exceptions qu’ils ont donné à manger à la machine qui n’avait plus qu’à comprendre la question pour retrouver la réponse parmi la tonne d’encyclopédies.



C’est donc un magnifique travail mais pas de l’IA il me semble. L’apprentissage des erreurs n’étant en rien intelligent, il s’agit juste de scorer les algos pour choisir le meilleur… un indice de fiabilité statistique en somme.







Mais l’IA c’est quand même beaucoup scorer des fiabilités statistiques, à partir de modèles (les algorithmes) qui ont été paramétrés grace à une masse de données (les millers de textes qu’on lui a donné à manger). Les réseaux de neurones utilisés pour les IA “logiques” fonctionnent comme ça.



j’avoue ne pas être un expert de l’IA mais il me pensait que c’était plus chiadé que ça…. mais je veux bien admettre mon ignorance et par la même que Watson est intelligent <img data-src=" />


J’avoue ne pas voir l’intérêt de la seconde vidéo (à moins que le but soit de permettre à une IA d’exploser les yeux d’un humain).



Tetris montre ici que pour avoir une seule et unique IA capable de vaincre des jeux où il n’est pas nécessaire de planifier ainsi que des jeux où c’est nécessaire, il y a encore du chemin.



Est-ce que ce genre de travaux pourrait à long terme permettre de faire des jeux moins scriptés (je pense aux CoD que je déteste) ?








megadub a écrit :



D’après ce que j’ai compris c’est surtout les dévs qui ont appris pour lui ;)



http://www.20minutes.fr/high-tech/666004-high-tech-watson-machine-ibm-prepare-de…



Pendant quatre ans, plus de 15 chercheurs ont mis au point des milliers d’algorithme pour que Watson soit capable de décortiquer le langage, la fonction et la relation entre des mots. Parallèlement, ils l’ont nourri avec plusieurs millions de textes (encyclopédie, dictionnaires, pièces de théâtre, romans, bible).



A l’époque j’avais lu pleins de sources où pour le jeu il été deconnecté du net, mais qu’il allais le relié ainsi si dans sa mémoire il a pas, il recherche sur le net et ajoute le truc à sa mémoire.



Après s’il est capable de comprendre qqch et de répondre, on s’approche de intelligence non?



Cela signifie qu’ils ont dû développer max de règles et d’exceptions qu’ils ont donné à manger à la machine qui n’avait plus qu’à comprendre la question pour retrouver la réponse parmi la tonne d’encyclopédies.



C’est donc un magnifique travail mais pas de l’IA il me semble. L’apprentissage des erreurs n’étant en rien intelligent, il s’agit juste de scorer les algos pour choisir le meilleur… un indice de fiabilité statistique en somme.






Le 15/04/2013 à 16h 04







megadub a écrit :



j’avoue ne pas être un expert de l’IA mais il me pensait que c’était plus chiadé que ça…. mais je veux bien admettre mon ignorance et par la même que Watson est intelligent <img data-src=" />







il est meme tres tres intelligent <img data-src=" />

et l’IA ou l’I tout court n’est vraiment rien de plus que ca …… de l’accumulation d’info, de l’ordonnancement et l’evaluation et la comparaison des lien reliant ces infos :)

une machine comme un cerveau fonctionnement pareil. <img data-src=" />









Mokona a écrit :



il est meme tres tres intelligent <img data-src=" />

et l’IA ou l’I tout court n’est vraiment rien de plus que ca …… de l’accumulation d’info, de l’ordonnancement et l’evaluation et la comparaison des lien reliant ces infos :)

une machine comme un cerveau fonctionnement pareil. <img data-src=" />





<img data-src=" /> On ne pêche pas à la bombe atomique.









Winderly a écrit :



Est-ce que ce genre de travaux pourrait à long terme permettre de faire des jeux moins scriptés (je pense aux CoD que je déteste) ?







Ben oui mais peut-être plus dans les jeux de simulations genre Fifa parce que c’est plus facile d’analyser les habitudes du joueurs. Mais pourquoi pas, on pourrait imaginer des bots de plus en plus intelligents au fut et à mesure du jeu dans les FPS <img data-src=" />



hahahahaha j’adore ce mec est très drôle en plus ;)