Apprentissage pour les jeux d’arcade Par Raphael Arrouas Apprentissage pour les jeux d’arcade
Arcade Learning Environment Atari 2600 : Jeux simples, appropriés à l’apprentissage Emulateur Stella (C++) Possibilité d’interagir avec l’émulateur par des FIFOs : Agents en Java, C++… Interface graphique optionnelle (simulations…)
Présentation du jeu Freeway (1981) Objectif : Traverser la route (+1 point) Pas de Game Over Voitures aux couleurs/vitesse différentes On peut créer un agent avec des règles simples Trois actions : stay, up, down
Création d’un agent autonome (1/2) Structure de la partie Agent : Classes Java compilées dans un fichier JAR Choix de la main class en argument Création d’un agent qui hérite de « AbstractAgent » Observation/action des agents par des pipes
Création d’un agent autonome (2/2) Problème : Sans accès aux variables du jeu, comment récupérer les informations ? Réponse : On obtient les pixels stockés dans les pipes, et on les traite !
Reconnaissance d’objets Comparaison tableau de pixel - background fixe Création des objets, typés suivant leur couleur (Poulet, voitures, score) Traitement de l’information : Position, vitesse… Puis prise de décision
Politique de décision Si 𝑥𝐶𝑎𝑟+𝑣𝐶𝑎𝑟 −𝑥𝑃𝑜𝑢𝑙𝑒𝑡 <13 et 𝑦𝑃𝑜𝑢𝑙𝑒𝑡−𝑦𝐶𝑎𝑟 −4 <19 et (𝑦𝑃𝑜𝑢𝑙𝑒𝑡>𝑦𝐶𝑎𝑟) : Interdiction de monter Equation semblable pour l’interdiction de rester sur place Les tests sont hiérarchisés pour prioriser l’action « monter » Paramètres empiriques obtenus par tests en mode verbose
Politique de décision
Résultat Score de 24 points sur le niveau 1, aucune collision !
Apprentissage automatique : Le Q-Learning Multitude de situations: Etats (adaptés au jeu si possible) Nombre d’états limités, actions soit aléatoires soit provenant de l’agent précédent (Politique ε-greedy) But : Maximiser une récompense (ici, le score) Pour cela, création d’une « Q-fonction »
La Q-fonction 𝑄 :𝑆 𝑋𝐴 →ℝ A chaque état, associe à une action sa « qualité ». Fixée au départ, évolue grâce à l’observation des résultats Mise à jour : α 𝑡 :𝐿𝑒𝑎𝑟𝑛𝑖𝑛𝑔 𝑟𝑎𝑡𝑒 𝑟 𝑡 :𝑅é𝑐𝑜𝑚𝑝𝑒𝑛𝑠𝑒 γ :𝐷𝑖𝑠𝑐𝑜𝑢𝑛𝑡 𝑓𝑎𝑐𝑡𝑜𝑟 (Détermine l’aspect court/long terme pour la prise en compte des récompenses