Actions discrètes et continues pour l’apprentissage par renforcement en pratique dans les jeux vidéo

Olivier Delalleau, Maxim Peter, Eloi Alonso, Adrien Logut 

Alors que la majorité de la recherche actuelle sur l’apprentissage par renforcement (AR) se concentre exclusivement sur l’amélioration de la performance des algorithmes, l’utilisation de l’AR sous des contraintes différentes comme celles rencontrées en pratique dans l’industrie du jeu vidéo est rarement étudiée. Opérant sous de telles contraintes, nous proposons Hybrid Soft Actor-Critic (Hybrid SAC), une extension de l’algorithme « Soft Actor-Critic» (SAC) capable de traiter des actions discrètes, continues ainsi que discrètes à paramètres continus. Nous montrons que Hybrid SAC peut résoudre avec succès une tâche de conduite à grande vitesse dans l’un de nos jeux, et qu’il est compétitif par rapport à l’état de l’art pour les tâches de référence d’actions paramétrées. Nous étudions également l’impact de l’utilisation de « Normalizing Flows » pour enrichir l’expressivité de la politique à faible coût, et identifions de potentiels effets indésirables de SAC lorsqu’utilisé avec des Normalizing Flows, qui pourraient être corrigés en optimisant un objectif différent. 

 

Introduction 

Les applications de l’apprentissage par renforcement (AR) dans les jeux vidéo ont récemment connues des avancées massives de la part de la communauté des chercheurs, qui a produit des agents capables de jouer aux jeux Atari à partir des pixels (Mnih et al. 2015) ou d’affronter les meilleurs joueurs du monde dans des jeux complexes à informations imparfaites comme DOTA 2 (OpenAI 2018) ou StarCraft II (Vinyals et al. 2019a; 2019b). Ces systèmes ont été en comparaison peu utilisés dans l’industrie du jeux vidéo, et nous pensons que le manque d’accessibilité est l’une des principales raisons derrière cette situation. En effet, d’impressionnants résultats comme ceux cités ci-dessus sont produits par de grands groupes de recherche disposant de ressources informatiques bien au-delà de celles qui sont généralement accessibles au sein des studios de jeux vidéo. 

Nos contributions s’adressent aux professionnels de l’industrie, afin de partager des expériences et des conseils pratiques pour l’utilisation de l’AR avec un ensemble de contraintes différentes de celles rencontrées dans le milieu de la recherche. Par exemple, dans l’industrie du jeu vidéo, la collecte d’expérience est généralement beaucoup plus lente, et des contraintes budgétaires et temporelles s’imposent en ce qui concerne le temps d’exécution des agents. Nous privilégions donc par exemple les algorithmes hors politique (« off-policy ») pour améliorer l’efficacité de l’utilisation des données en réutilisant l’expérience passée, et limitons la complexité de nos architectures. 

         

 

L’approche que nous proposons dans cet article est basée sur l’algorithme « Soft Actor-Critic » (Haarnoja et al. 2018b), qui a été conçu à l’origine pour résoudre des problèmes avec des actions continues. Nous explorons son extension à un cadre hybride avec des actions à la fois continues et discrètes, une situation couramment rencontrée dans les jeux vidéo. Nous essayons également d’utiliser les «Normalizing Flows » (Rezende et Mohamed 2015) pour améliorer la qualité de la politique qui en résulte en conservant un nombre de paramètres comparable, et analysons pourquoi cette approche pourrait ne pas fonctionner aussi bien que nous l’avions initialement prévu. 

Résultats dans un jeu vidéo commercial 

Nous avons entraîné un véhicule dans un jeu d’Ubisoft, en utilisant l’algorithme Hybrid SAC proposé avec deux actions continues (l’accélération et la direction) et une action binaire discrète (le frein à main). L’objectif de la voiture est de suivre un chemin donné le plus rapidement possible. Il est à noter que l’agent opère dans un environnement de test qu’il n’a pas vu pendant son entrainement, et que l’action discrète du frein à main joue un rôle clé dans la tenue de route à vitesse élevée. 

Pour télécharger le document complet, cliquez ici.

Menu