Introduction au Reinforcement learning

Introduction au Reinforcement learning

Vous êtes un joueur capable d’interagir avec un environnement. Vous voulez jouer les meilleurs coups à chaque fois que c’est à vous de prendre une décision. La seule chose qui vous intéresse, c’est qu’à la fin de la partie vous ayez le meilleur score possible.

Comment faire pour choisir les meilleurs coups ?

Ce cadre ne se limite pas qu’aux jeux. Dès lors que vous avez une série de décisions à prendre, il est envisageable de vouloir apprendre quels sont les choix optimaux à chaque étape du processus. Cependant, l’exemple du jeu d’échecs ou d’un jeu vidéo de manière générale est un exemple d’application très parlant.

Il peut être extrêmement difficile de trouver des règles permettant de trouver l’action optimale à chaque fois. Comment décider du meilleur coup aux échecs ? Une méthode serait de tester toutes les possibilités et de voir quelle est le coup qui a le plus de chance de mener à la victoire par la suite. Cependant ce genre de méthodes ne fonctionne pas bien en pratique car le nombre de coups possibles est bien trop élevé lorsque l’on considère tous les coups suivants.

Lorsqu’il est difficile de donner un algorithme précis pour résoudre une tâche, il peut être intéressant de se pencher vers les techniques de machine learning, et c’est ce que nous allons faire !

Un premier angle d’attaque intuitif pour apprendre à un agent les coups optimaux serait d’utiliser une méthode de supervised learning. Il nous faudrait alors un ensemble de couples de données (état du plateau d’échec, mouvement d’une pièce). Mais alors survient un deuxième problème : comment récolter un tel jeu de données ? On pourrait récolter des coups de joueurs professionnels. Cette façon de procéder se nomme imitation learning. Elle a cependant quelques défauts:

  • Les coups des professionnels ne sont pas forcément optimaux

  • Il existe des environnements pour lesquels aucun coup optimal (ou plus simplement bons) n’est connu

Pour illustrer le dernier point, imaginons que vous voulez que votre agent apprenne à marcher. Votre environnement ici est simplement une liste d’informations sur la disposition de ses membres, la position de son centre de gravité et peut être une information sur la force de gravité qui s’applique sur son corps. Comment trouver à un instant précis quel est le déplacement optimal de ses membres afin que l’agent ne tombe pas par terre et qu’il avance en avant ?

C’est alors qu’entre en scène le reinforcement learning. Cette méthode d’apprentissage se distingue des autres paradigmes car ici l’agent apprend activement. L’agent interagit avec l’environnement et apprend grâce à ses interactions et aux retours que lui fournissent celles-ci. A chaque décision, l’agent reçoit une récompense et apprend petit à petit comment maximiser la somme des récompenses finales obtenues. Ainsi, nous n’avons plus besoin de donner les coups optimaux, c’est l’agent qui apprend les coups optimaux tout seul.

Les enjeux principaux deviennent alors:

  • La création d’un environnement dans lequel un agent peut interagir

  • Le choix des récompenses à donner en fonction du coup de l’agent et de l’état de l’environnement

Le problème peut alors être bien plus simple à modéliser. Simuler une partie d’échec n’est pas trop compliqué. Donner une récompense de +1 lorsque l’agent gagne la partie, et -1 lorsque l’agent perd la partie est simple. D’autres challenges apparaissent, mais ce paradigme a eu le temps de maturer et il existe maintenant des algorithmes d’entraînement solides permettant de faire face à ces challenges.

Comment entraîner un agent à partir de ses interactions ? Quelles sont les limites de ce mode d’entraînement ? Comment choisir les récompenses ? Quels sont les challenges auxquels il faut faire face ? L’étude de ces questions est exactement le sujet du reinforcement learning !

Prérequis

Statistiques, optimisation, algèbre (pour les NNs).

Présentation

Définitions plus rigoureuses des termes principaux. Environnement, agent, récompense, policy, value functions. Comment intéragissent ces différents concepts, schéma général. Markov Decision Processus.

Présentation des challenges principaux (choix des récompenses, exploration vs exploitation, dynamique de l’environnement, off/on policy, function approximator).

Les grandes méthodes d’apprentissage RL :

  • Value based : la policy est choisie à partir de value functions

    • Immediate RL : k-armed bandit problem, pas de planification

    • Dynamic programming : dynamiques de l’environnement connues

    • Monte Carlo : épisodes d’entraînement finis

    • Temporal difference : bootstrapping, n’attends pas la fin d’un épisode pour apprendre

  • Policy based : la policy est directement apprise

    • Policy gradient

    • Model free/model based

Ressources principales

Ce cours est inspiré par le cours de Polytechnique Montréal. La référence principale est le livre de Sutton & Barto, disponible gratuitement en ligne.