# Apprentissage par renforcement profond

L'apprentissage par renforcement profond (en anglais : deep reinforcement learning ou deep RL) est un sous-domaine de l'apprentissage automatique (en anglais : machine learning) qui combine l'apprentissage par renforcement et l'apprentissage profond (en anglais : deep learning). L'apprentissage par renforcement considère le problème d'un agent informatique (par exemple, un robot, un agent conversationnel, un personnage dans un jeu vidéo, etc.) qui apprend à prendre des décisions par essais et erreurs. L'apprentissage par renforcement profond intègre l'apprentissage profond dans la résolution, permettant aux agents de prendre des décisions à partir de données d'entrée non structurées sans intervention manuelle sur l'espace des états. Les algorithmes d'apprentissage par renforcement profond sont capables de prendre en compte de très grandes quantités de données (par exemple, chaque pixel affiché à l'écran dans un jeu vidéo) et de décider des actions à effectuer pour optimiser un objectif (par exemple, maximiser le score du jeu). L'apprentissage par renforcement profond a été utilisé pour diverses d'applications, y compris, de manière non exhaustive, la robotique, les jeux vidéo, le traitement du langage naturel, la vision par ordinateur, l'éducation, les transports, la finance et la santé.

## Aperçu
### L'apprentissage profond

L'apprentissage profond est une forme d'apprentissage automatique utilisant réseaux de neurones artificiels transformant les données via des réseaux neuronaux convolutifs. Il a été démontré que les méthodes d'apprentissage profond, utilisant souvent l'apprentissage supervisé avec des ensembles de données étiquetés, se sont avérées capable de résoudre des tâches impliquant le traitement de données d'entrée brutes complexes et de grande dimension, telles que des images, avec moins de prétraitement manuel que les méthodes précédemment utilisées, ce qui a permis des progrès significatifs dans plusieurs domaines, notamment vision par ordinateur et traitement automatique du langage naturel (TALN).

### L'apprentissage par renforcement

L'apprentissage par renforcement est un processus dans lequel un agent apprend à prendre des décisions à partir d'expérimentations et d'erreurs. Ce problème est souvent modélisé mathématiquement comme un processus de décision Markovien (MDP), où, à chaque unité de temps, un agent se trouvant dans un état $s$ réalise une action $a$, reçoit une récompense scalaire $r$, et passe à l'état suivant $s'$ selon la dynamique de l'environnement $p(s'|s,a)$. L'agent tente d'apprendre une politique $\pi (a|s)$, ou correspondance des observations aux actions, afin de maximiser ses retours (somme des récompenses attendues). Dans l'apprentissage par renforcement (par opposition au contrôle optimal), l'algorithme n'a accès qu'à la dynamique $p(s'|s,a)$ par le biais de l'échantillonnage.

### Apprentissage profond par renforcement

Dans de nombreux problèmes pratiques de prise de décision, l'ensemble des états $s$ des processus de décision Markovien est de grande dimension (par exemple, les images d'une caméra ou le flux des capteurs d'un robot) ne peuvent pas être résolus par les algorithmes d'apprentissage par renforcement traditionnels. Les algorithmes d'apprentissage par renforcement profond intègrent un apprentissage profond pour résoudre de tels processus de décision Markovien, représentant souvent la politique $\pi (a|s)$ ou d'autres fonctions apprises via des réseaux de neurones, et développer des algorithmes spécialisés qui fonctionnent bien dans ce contexte.

## Historique

Parallèlement à l'intérêt croissant pour les réseaux de neurones à partir du milieu des années 1980, l'intérêt s'est accru pour l'apprentissage par renforcement en profondeur, où un réseau de neurones est utilisé dans l'apprentissage par renforcement pour représenter des politiques ou des fonctions de valeur. Parce que dans un tel système, l'ensemble du processus de prise de décision, des capteurs aux moteurs dans un robot ou un agent, implique un seul réseau de neurones, il est aussi parfois appelé apprentissage par renforcement de bout en bout. L'une des premières applications réussies de l'apprentissage par renforcement avec les réseaux de neurones était TD-Gammon, un programme informatique développé en 1992 pour jouer au backgammon. Quatre entrées ont été utilisées pour le nombre de pièces d'une couleur donnée à un endroit donné sur la carte, totalisant 198 signaux d'entrée. Sans aucune connaissance intégrée, le réseau a appris à jouer au jeu à un niveau intermédiaire par auto-apprentissage et apprentissage par différence temporelle( $\lambda$ ).
Les manuels séminaux de Sutton et Barto sur l'apprentissage par renforcement, Bertsekas et Tsitiklis sur la programmation neuro-dynamique, et d'autres progresser les connaissances et l'intérêt dans le domaine.
Le groupe de Katsunari Shibata a montré que diverses fonctions émergent dans ce cadre$^,$, notamment la reconnaissance d'images, la constance des couleurs, le mouvement des capteurs (reconnaissance active), la coordination œil-main et le mouvement de la main, l'explication des activités du cerveau, le transfert de connaissances, la mémoire, l'attention sélective, la prédiction et l'exploration$^,$.
À partir d'environ 2012, la révolution dite de l'apprentissage en profondeur a suscité un intérêt accru pour l'utilisation des réseaux de neurones profonds comme approximateurs de fonctions dans une variété de domaines. Ce qui a conduit à un regain d'intérêt pour la recherche dans le domaine de l'utilisation des réseaux de neurones profonds pour apprendre la politique, la valeur et/ou les fonctions Q présentes dans les algorithmes d'apprentissage par renforcement existants.
À partir de 2013, DeepMind a montré des résultats d'apprentissage impressionnants en utilisant l'apprentissage par renforcement profond pour jouer aux jeux vidéo Atari$^,$. L'ordinateur joueur un réseau de neurones formé à l'aide d'un algorithme d'apprentissage de renforcement en profondeur, une version profonde de Q-learning qu'ils ont appelée Deep Q-networks (DQN), avec le score du jeu comme récompense. Ils ont utilisé un réseau de neurones convolutifs profonds pour traiter 4 pixels RVB (84x84) en tant qu'entrées. Les 49 jeux ont été appris en utilisant la même architecture de réseau et avec des connaissances préalables minimales, surpassant les méthodes concurrentes sur presque tous les jeux et performant à un niveau comparable ou supérieur à celui d'un testeur de jeu humain professionnel.
L' apprentissage de renforcement en profondeur a franchi une autre étape en 2015 lorsque AlphaGo, un programme informatique entrainé avec l'apprentissage par renforcement profond pour jouer au jeu de Go, est devenu le premier programme informatique du jeu de Go d'ordinateur pour battre un joueur professionnel humain sans handicap sur un plateau de taille réél 19 × 19. Dans un projet ultérieur en 2017, AlphaZero a amélioré les performances sur le jeu de Go tout en démontrant qu'ils pouvaient utiliser le même algorithme pour apprendre à jouer aux échecs et au shogi à un niveau compétitif ou supérieur aux programmes informatiques existants pour ces jeux, et s'est encore amélioré en 2019 avec MuZero. Séparément, une autre étape a été franchie par des chercheurs de l'Université Carnegie Mellon en 2019 en développant Pluribus, un programme informatique pour jouer au poker qui a été le premier à battre les professionnels lors de parties multijoueurs de Texas Hold'em sans limite. OpenAI Five, un programme permettant de jouer à cinq contre cinq au Dota 2 a battu les précédents champions du monde lors d'un match de démonstration en 2019.
L'apprentissage par renforcement profond a également été appliqué à de nombreux domaines autre que les jeux. En robotique, il a été utilisé pour permettre aux robots d'effectuer des tâches ménagères simples et de résoudre un Rubik's cube avec une main robotisé$^,$. L'apprentissage par renforcement profond a également trouvé des applications en matière de durabilité, utilisées pour la réduction de la consommation d'énergie dans les centres de données. L'utilisation de l'apprentissage par renforcement profond pour la conduite autonome est un domaine de recherche actif dans les milieux universitaires et l'industriels. Loon a exploré ll'apprentissage par renforcement profond pour naviguer pour la navigation autonome de ses ballons à haute altitude.

## Algorithmes

Il existe différentes techniques pour entraîner des politiques afin de résoudre des tâches avec des algorithmes d'apprentissage par renforcement en profondeur, chacune ayant leurs propres avantages. Au niveau plus élevé, il existe une distinction entre l'apprentissage par renforcement basé sur un modèle et l'apprentissage par renforcement sans modèle, qui fait référence au fait que l'algorithme tente ou non d'apprendre un modèle prévisionnel de la dynamique de l'environnement.
Dans les modèles de base algorithmes d'apprentissage par renforcement profond, un modèle avancé de la dynamique de l'environnement est estimé, généralement par apprentissage supervisé à l'aide d'un réseau de neurones. Ensuite, les actions sont obtenues en utilisant le commande prédictive du modèle utilisant le modèle appris. Comme la dynamique réelle de l'environnement diverge généralement de la dynamique apprise, l'agent replanifie souvent lorsqu'il effectue des actions dans l'environnement. Les actions sélectionnées peuvent être optimisées à l'aide de méthodes de Monte Carlo telles que la méthode d'entropie croisée, ou une combinaison de l'apprentissage par modèle avec des méthodes sans modèle.
Dans les algorithmes d'apprentissage par renforcement profond sans modèle, une politique $\pi (a|s)$ est apprise sans modéliser explicitement la dynamique avant. Une politique peut être optimisée pour maximiser les rendements en estimant directement le gradient de politique, mais elle souffre d'une variance élevée, ce qui la rend peu pratique pour une utilisation de l'approximation de fonction en Deep RL. Des algorithmes ultérieurs ont été développés pour un apprentissage plus stable et largement appliqués$^,$. Une autre classe d'algorithmes d'apprentissage par renforcement profond sans modèle s'appuie sur la programmation dynamique, inspirée de l'apprentissage par différence temporelle et du Q-learning. Dans les espaces d'action discrets, ces algorithmes apprennent généralement une fonction Q de réseau de neurones $Q(s,a)$ qui estime les rentabilités futurs en prenant des actions $a$ de l'état $s$. Dans les espaces continus, ces algorithmes apprennent souvent à la fois une estimation de valeur et une politique$^,$$^,$.

## Recherche

L'apprentissage par renforcement profond est un domaine de recherche actif, avec plusieurs axes d'investigation.

### Exploration

Un agent RL doit équilibrer le compromis exploration/exploitation : le problème de décider s'il faut poursuivre des actions qui sont déjà connues pour rapporter des récompenses élevées ou explorer d'autres actions afin de découvrir des récompenses plus élevées. Les agents RL collectent généralement des données avec un certain type de politique stochastique, comme une distribution de Boltzmann dans des espaces d'action discrets ou une distribution gaussienne dans des espaces d'action continus, induisant un comportement d'exploration de base. L'idée derrière l'exploration basée sur la nouveauté ou axée sur la curiosité donne à l'agent une motivation pour explorer des résultats inconnus afin de trouver les meilleures solutions. Cela se fait en "modifiant la fonction de perte (ou même l'architecture du réseau) en ajoutant des termes pour inciter à l'exploration". Un agent peut également être aidé dans l'exploration en utilisant des démonstrations de trajectoires réussies, ou en façonnant des récompenses, en donnant à un agent des récompenses intermédiaires qui sont personnalisées pour s'adapter à la tâche qu'il tente d'accomplir.

### Apprentissage par renforcement Off-policy

Une distinction importante dans RL est la différence entre les algorithmes sur stratégie qui nécessitent d'évaluer ou d'améliorer la stratégie qui collecte les données, et les algorithmes hors stratégie qui peuvent apprendre une stratégie à partir de données générées par une stratégie arbitraire. En règle générale, les méthodes basées sur des fonctions de valeur telles que Q-learning sont mieux adaptées à l'apprentissage hors politique et ont une meilleure efficacité d'échantillonnage - la quantité de données requise pour apprendre une tâche est réduite car les données sont réutilisées pour l'apprentissage. À l'extrême, l'apprentissage par renforcement hors ligne (ou "par lots") envisage d'apprendre une politique à partir d'un ensemble de données fixe sans interaction supplémentaire avec l'environnement.

### Apprentissage par renforcement inverse

Le RL inverse fait référence à la déduction de la fonction de récompense d'un agent compte tenu du comportement de l'agent. L'apprentissage par renforcement inverse peut être utilisé pour apprendre à partir de démonstrations (ou apprentissage par apprentissage) en déduisant la récompense du démonstrateur, puis en optimisant une politique pour maximiser les retours avec l'apprentissage par renforcement. Des approches d'apprentissage en profondeur ont été utilisées pour diverses formes d'apprentissage par imitation et de l'apprentissage par renforcement inverse.

### Apprentissage par renforcement conditionné par les objectifs

Un autre domaine de recherche actif est l'apprentissage des politiques conditionnées par des objectifs, également appelées politiques contextuelles ou universelles. $\pi (a|s,g)$ qui prennent dans un objectif supplémentaire $g$ comme entrée pour communiquer un objectif souhaité à l'agent. La relecture d'expérience rétrospective est une méthode d'apprentissage par renforcement conditionnée par un objectif qui implique le stockage et l'apprentissage des précédentes tentatives infructueuses d'accomplir une tâche. Bien qu'une tentative infructueuse n'ait peut-être pas atteint l'objectif visé, elle peut servir de leçon sur la façon d'atteindre le résultat inattendu grâce à un réétiquetage rétrospectif.

### Apprentissage par renforcement multi-agents

De nombreuses applications de l'apprentissage par renforcement n'impliquent pas un seul agent, mais plutôt un ensemble d'agents qui apprennent ensemble et s'adaptent ensemble. Ces agents peuvent être compétitifs, comme dans de nombreux jeux, ou coopératifs comme dans de nombreux systèmes multi-agents du monde réel. L'apprentissage multi-agent étudie les problèmes introduits dans ce cadre.

### Généralisation

La promesse d'utiliser des outils d'apprentissage profond dans l'apprentissage par renforcement est la généralisation : la capacité d'opérer correctement sur des entrées inédites. Par exemple, les réseaux de neurones entraînés pour la reconnaissance d'images peuvent reconnaître qu'une image contient un oiseau même s'il n'a jamais vu cette image particulière ou même cet oiseau particulier. Étant donné que le l'apprentissage par renforcement profond autorise les données brutes (par exemple les pixels) en entrée, il est moins nécessaire de prédéfinir l'environnement, ce qui permet de généraliser le modèle à plusieurs applications. Avec cette couche d'abstraction, les algorithmes d'apprentissage par renforcement profond peuvent être conçus d'une manière qui leur permet d'être généraux et le même modèle peut être utilisé pour différentes tâches. Une méthode pour augmenter la capacité des politiques formées avec des politiques RL profondes à généraliser est d'incorporer l' apprentissage de la représentation.