Reinforcement Learning

Reinforcement Learning

3 choses à savoir

Le Reinforcement Learning est une technique de Machine Learning dans laquelle un agent informatique apprend à exécuter une tâche via des interactions répétées, par essais et erreurs, dans un environnement. Cette approche d'apprentissage permet à l'agent de prendre une série de décisions pour maximiser une fonction de récompense relative à la tâche, sans intervention humaine et sans programmation explicite visant à accomplir la tâche.

Fonctionnement du Reinforcement Learning

Le mécanisme d'apprentissage typique sur lequel repose le Reinforcement Learning se retrouve dans de nombreux scénarios réels. Prenons l'exemple du dressage des animaux domestiques par renforcement positif.

Illustration d'un chien interagissant avec un dresseur. Selon la terminologie du Reinforcement Learning, le chien est l'agent et le dresseur fait partie de l'environnement.

Reinforcement Learning dans le cas du dressage d'un chien.

Illustration d'un véhicule apprenant à se garer de manière autonome, l'ordinateur du véhicule étant l'agent de Reinforcement Learning.

Reinforcement Learning dans le cas du stationnement autonome.

Appliquons la terminologie du Reinforcement Learning au dressage d'un chien : dans ce cas, le but de l'apprentissage est d'entraîner le chien (l'agent) à accomplir une tâche dans un environnement qui englobe à la fois l'animal et le dresseur. Pour commencer, le dresseur donne un ordre ou un signal que le chien observe (observation). Le chien réagit alors par une action. Si cette action correspond au comportement souhaité, le dresseur est susceptible de donner une récompense (telle qu'une friandise ou un jouet) à l'animal ; dans le cas contraire, l'animal ne reçoit aucune récompense. Il est probable qu'en début d'apprentissage le chien réagisse de manière plus ou moins aléatoire, par exemple en se mettant à rouler sur le dos lorsqu'on lui dit « assis », parce qu'il essaie d'associer des observations spécifiques à des actions et à des récompenses. Cette mise en correspondance, ou mapping, entre observations et actions est appelée politique. Du point de vue du chien, l'idéal serait de réagir correctement à chaque demande, afin de recevoir un maximum de friandises. Le but de la phase d'apprentissage du Reinforcement Learning consiste donc à « ajuster » la politique du chien pour qu'il apprenne les comportements qui maximiseront la récompense. À la fin de l'apprentissage, le chien doit être capable d'observer son maître et de faire ce qui est demandé (par exemple, s'asseoir lorsqu'on lui dit « assis »), en s'appuyant sur la politique interne qu'il a développée. À ce stade, les friandises sont les bienvenues mais devraient théoriquement ne plus être nécessaires.

Gardons cet exemple de dressage canin en tête et passons à une autre tâche : garer un véhicule en utilisant un système de conduite autonome. L'objectif est d'apprendre à l'ordinateur de bord (l'agent) à se garer sur la bonne place de parking grâce au Reinforcement Learning. Comme dans le cas du dressage du chien, l'environnement englobe tout ce qui est extérieur à l'agent et peut inclure la dynamique du véhicule, d'autres véhicules situés à proximité, les conditions météorologiques, etc. Durant la phase d'apprentissage, l'agent exploite les données de différents capteurs, par exemple les caméras, le GPS et le LiDAR (les observations), pour générer des commandes de changement de direction, de freinage et d'accélération (les actions). Pour apprendre à générer les actions adéquates à partir des observations (réglage de la politique), l'agent multiplie les tentatives pour garer le véhicule en procédant par essais et erreurs. Un signal positif peut venir récompenser la qualité d'un essai et guider ainsi le processus d'apprentissage.

Dans l'exemple du dressage, l'apprentissage se fait dans le cerveau du chien. Dans celui du stationnement autonome, l'apprentissage est géré par un algorithme d'apprentissage, chargé d'ajuster la politique de l'agent en fonction des données issues des capteurs, des actions et des récompenses associées. Une fois l'apprentissage terminé, l'ordinateur de bord doit être capable de se garer en s'appuyant uniquement sur la politique ainsi définie et sur les informations issues des capteurs. Il convient de noter que ces deux exemples relèvent du Reinforcement Learning sans modèle, car ils font tous deux appel à des interactions par essais et erreurs avec l’environnement, pour générer des données.

Les principaux éléments du Reinforcement Learning (politique, environnement, agent, actions, récompenses et observations) sont formalisés dans un cadre appelé « processus de décision markovien », qui offre un modèle mathématique pour la prise de décision dans les environnements soumis à l'incertitude.

Exploration vs exploitation

Le compromis entre exploration et exploitation est un aspect essentiel du Reinforcement Learning qui peut grandement influencer la qualité de l'apprentissage. L'idée est la suivante : l'agent doit-il exploiter l'environnement en choisissant les actions qui lui rapportent le plus de récompenses parmi celles qu'il connaît déjà, ou doit-il choisir des actions qui lui permettent d'explorer des parties de l'environnement qui lui sont encore inconnues ? Les choix effectués par l'agent déterminent les informations qu'il reçoit et, par conséquent, les informations à partir desquelles il est en mesure d'apprendre. Un excès d'exploration empêchera l'agent de converger vers une bonne politique. Un excès d'exploitation risque de bloquer l'agent dans des solutions locales et sous-optimales. En général, il est logique qu'un agent explore davantage en début d'apprentissage, lorsqu'il ne dispose pas de suffisamment d'informations à exploiter, puis qu’il passe progressivement à un rôle davantage axé sur l'exploitation en fin d'apprentissage.

Deep Reinforcement Learning

Le Deep Reinforcement Learning combine le Reinforcement Learning et le Deep Learning. Si une politique sous forme de lookup tables peut suffire pour les problèmes simples, cette approche ne sera pas adaptée aux problèmes plus complexes et de nature continue. Les réseaux de neurones profonds entraînés via le Deep Reinforcement Learning peuvent encoder des comportements complexes, offrant ainsi une approche alternative pour des applications qui seraient sans cela impossibles à traiter ou plus difficiles à aborder avec des méthodes plus traditionnelles. Par exemple, dans le domaine de la conduite autonome, un réseau de neurones peut remplacer le conducteur et décider de la manière de tourner le volant en examinant simultanément plusieurs capteurs, tels que les images de la caméra et les mesures LiDAR. Sans réseaux de neurones, le problème serait normalement décomposé en plusieurs parties, telles que l'extraction des caractéristiques des images de la caméra, le filtrage des mesures LiDAR, la fusion des sorties de capteurs et les prises de décision de « conduite » basées sur les entrées des capteurs, ce qui serait plus facile à résoudre avec des représentations de politiques plus traditionnelles, telles que des lookup tables ou des fonctions polynomiales.

Workflow du Reinforcement Learning

De manière générale, le workflow d’apprentissage d'un agent par Reinforcement Learning comprend les étapes suivantes :

  1. Créer l'environnement : Vous devez d'abord définir l'environnement dans lequel l'agent de Reinforcement Learning va agir. L'environnement peut être un modèle de simulation ou un système physique réel, mais les environnements simulés sont généralement recommandés dans un premier temps, car ils sont plus sûrs et laissent le champ libre aux expérimentations.
  2. Définir la récompense : Vous précisez ensuite le signal de récompense utilisé par l'agent pour mesurer sa performance par rapport à l'objectif à atteindre, et la méthode permettant de calculer ce signal à partir de l'environnement. L'élaboration de la récompense peut être une étape délicate, nécessitant plusieurs itérations pour aboutir à un résultat satisfaisant.
  3. Créer l'agent : Vous créez alors l'agent, ce qui consiste à choisir une représentation de la politique (par exemple, des réseaux de neurones ou des lookup tables), ainsi qu'à sélectionner et à ajuster l'algorithme de Reinforcement Learning.
  4. Entraîner et valider l'agent : Vous définissez des options d'apprentissage (par exemple des critères d'arrêt) et entraînez l'agent pour ajuster la politique. Il convient de veiller à valider la politique entrainée à la fin de l'apprentissage.
  5. Déployer la politique : Vous déployez la représentation de la politique entraînée en utilisant, par exemple, le code C/C++ ou CUDA généré. À ce stade, la politique est un système décisionnel autonome.
Éléments du workflow de Reinforcement Learning : environnement, récompense, agent, apprentissage de l'agent et déploiement.

Workflow du Reinforcement Learning.

L'apprentissage d'un agent par Reinforcement Learning est un processus itératif. Les décisions et les résultats obtenus en fin de processus peuvent vous obliger à revenir à une phase antérieure du workflow d'apprentissage. Si le processus d'apprentissage ne converge pas vers une politique optimale dans un délai raisonnable, vous devrez peut-être revenir en arrière et réexaminer la définition du problème (dynamique, observations, actions), le signal de récompense, l'architecture de la politique et les hyperparamètres de l'algorithme avant de relancer l'apprentissage.

Pour continuer à explorer ce sujet

Types d'algorithmes de Reinforcement Learning

Comparaison entre le Reinforcement Learning, le Machine Learning et le Deep Learning

Contrairement au Machine Learning supervisé ou non supervisé, le Reinforcement Learning ne repose pas sur un jeu de données statiques : il peut fonctionner dans un environnement dynamique et apprendre à partir des expériences accumulées. Les points de données, ou expériences, peuvent être recueillis lors d'interactions entre un agent logiciel et son environnement, en s'appuyant sur un apprentissage par essai et erreurs. Cet aspect du Reinforcement Learning est important, car il permet de se dispenser de certaines étapes, telles que la collecte, le prétraitement et la labellisation des données, incontournables dans l'apprentissage supervisé ou non supervisé.

Le Deep Learning englobe les trois types de Machine Learning ; le Reinforcement Learning et le Deep Learning ne sont pas mutuellement exclusifs. La résolution de problèmes complexes de Reinforcement Learning s'appuie souvent sur des réseaux de neurones profonds et du Deep Reinforcement Learning.

Illustrations de l'apprentissage non supervisé, de l'apprentissage supervisé et du Reinforcement Learning, montrant respectivement un clustering, une classification et un système de chemin d'apprentissage basé sur les récompenses.

Les trois grandes catégories de Machine Learning : apprentissage non supervisé, apprentissage supervisé et Reinforcement Learning.

Un diagramme de Venn illustrant les trois grandes classes d'algorithmes de Reinforcement Learning : les approches fondées sur la valeur et celles fondées sur les politiques se recoupent pour former la classe des algorithmes acteur-critique.

Les trois grandes catégories d'algorithmes de Reinforcement Learning.

Algorithmes de Reinforcement Learning

Les algorithmes de Reinforcement Learning peuvent être classés en plusieurs catégories en fonction de leurs approches en matière d'apprentissage et de prise de décision.

Algorithmes de Reinforcement Learning basés sur la valeur, ou basés sur les politiques ou acteur-critique

Il existe trois grandes catégories d'algorithmes de Reinforcement Learning :

  • Les méthodes basées sur la valeur sont axées autour de l'apprentissage d'une fonction de valeur, par exemple une fonction Q, qui estime la récompense cumulative attendue pour une action particulière dans un état donné, et sur le suivi ultérieur d'une certaine politique. L'exemple le plus connu est le Q-Learning. La politique est dérivée indirectement de la fonction de valeur en sélectionnant l'action ayant la valeur la plus élevée dans chaque état (c'est-à-dire en adoptant une stratégie dite « gloutonne », visant à maximiser la fonction de valeur). Les méthodes basées sur la valeur sont généralement simples et efficaces en termes d'échantillons, mais elles sont limitées à des ensembles d'actions discrètes de taille raisonnable (imaginez le temps qu'il faudrait pour extraire la politique de la fonction de valeur si l'espace d'action était hautement multidimensionnel).
  • Les méthodes basées sur les politiques apprennent directement une politique paramétrée qui associe des états à des actions, en optimisant les paramètres de la politique afin de maximiser les récompenses attendues. Elles fonctionnent de manière très similaire à la descente de gradient traditionnelle. À titre d'exemple, on peut citer REINFORCE et d'autres méthodes de gradient de politique. Ces méthodes sont naturellement adaptées aux espaces d'action continus ou vastes et peuvent également apprendre des politiques stochastiques, ce qui peut s'avérer utile pour l'exploration et la randomisation de domaine. Parmi les inconvénients des méthodes basées sur les politiques, on peut citer la lenteur et l'instabilité de l'apprentissage, l'inefficacité des échantillons et la sensibilité aux minima locaux.
  • Les méthodes acteur-critique combinent les points forts des approches basées sur la valeur et de celles basées sur les politiques. L'acteur met à jour la politique directement, tandis que le critique évalue les actions en estimant les fonctions de valeur. Le retour du critique permet une mise à jour plus stable et plus efficace, en réduisant la variance des estimations du gradient de politique. Par ailleurs, la représentation directe de la politique (acteur) facilite la résolution des problèmes liés à des espaces d'actions continus et hautement multidimensionnels. Le principal inconvénient de ces méthodes réside dans la complexité accrue de leur implémentation et de leur ajustement (qu'il s'agisse des aspects acteur ou critique). Les approches DDPG (Deep Deterministic Policy Gradient), PPO (Proximal Policy Optimization) et SAC (Soft Actor-Critic) sont des exemples d'algorithmes acteur-critique.
Les quatre étapes principales d'un algorithme de Reinforcement Learning acteur-critique : 1) L'acteur choisit une action. 2) Le critique fait une prédiction de la valeur de cette action. 3) Le critique se met à jour en utilisant la récompense obtenue grâce à l'application de cette action. 4) L'acteur se met à jour grâce à la réponse du critique.

Le Reinforcement Learning acteur-critique en action.

Algorithmes de Reinforcement Learning avec ou sans modèle

Le Reinforcement Learning basé sur des modèles consiste à construire ou à exploiter un modèle de la dynamique de l'environnement (probabilités de transition et fonctions de récompense) pour planifier et prendre des décisions. Le terme « planifier » est ici essentiel : ces algorithmes nécessitent généralement peu, voire aucune, interaction avec l'environnement, car ils s'appuient sur leur modèle interne pour simuler des états futurs. Ce modèle interne peut être fourni a priori (auquel cas l'agent n'a pas besoin d'interagir avec l'environnement) ou appris à partir de données issues d'interactions avec l'environnement réel. Le Reinforcement Learning basé sur des modèles est en général plus efficace en termes d'échantillons que l'approche sans modèle, car le modèle permet de générer rapidement de vastes jeux de données d'apprentissage. Toutefois, selon que le modèle interne est disponible dès le départ ou appris à partir des données, les méthodes basées sur des modèles peuvent nécessiter davantage de ressources de calcul que les méthodes sans modèle, car, en plus d’entraîner l'agent principal, elles doivent également entraîner le modèle de l'environnement et générer les données d'apprentissage.

Contrairement aux algorithmes basés sur des modèles, les méthodes sans modèle ne construisent pas de représentation explicite de l'environnement. Elles apprennent à déterminer les actions optimales via des interactions directes, en s'appuyant sur un processus par essais et erreurs (voir les exemples du dressage canin et du stationnement automatique présentés dans la section précédente). Cette approche est plus simple et mieux adaptée aux environnements caractérisés par un grand nombre de dimensions ou non structurés, mais elle est généralement moins efficace en termes d'utilisation des données. La majorité des algorithmes de Reinforcement Learning de pointe reposent aujourd'hui sur des approches sans modèle.

Algorithmes de Reinforcement Learning en ligne ou hors ligne

Le Reinforcement Learning en ligne fait intervenir un agent qui interagit activement avec l'environnement pendant l'apprentissage : il recueille des expériences, met à jour sa politique et s'adapte de manière continue au fur à mesure que de nouvelles données arrivent. Les scénarios de dressage canin et de stationnement automatique décrits plus haut constituent des exemples typiques de Reinforcement Learning en ligne.

À l'inverse, le Reinforcement Learning hors ligne (ou batch) repose exclusivement sur un jeu de données statique constitué d'expériences enregistrées (issues par exemple de démonstrations humaines ou de politiques antérieures), sans interaction supplémentaire avec l'environnement. Les méthodes hors ligne sont particulièrement intéressantes lorsque les interactions réelles sont coûteuses ou risquées. Elles peuvent également extraire des informations utiles à partir de données aléatoires ou non expertes (bien que la qualité de l'apprentissage reste inférieure à celle obtenue à partir de données expertes ou plus structurées). En pratique, le Reinforcement Learning hors ligne constitue souvent une approche adaptée pour pré-entraîner une politique avant de passer à un apprentissage en ligne qui, bien que moins efficace en termes d'échantillons, permet généralement d'atteindre de meilleures performances, grâce à son adaptation continue fondée sur de nouvelles données.

Algorithmes de Reinforcement Learning on-policy ou off-policy

Les algorithmes de Reinforcement Learning on-policy évaluent et mettent à jour la même politique que celle utilisée pour générer les données d'apprentissage : l'agent apprend ainsi la valeur de la politique courante à partir de ses propres actions (par exemple SARSA, PPO ou TRPO). Ce type d'approche conduit généralement à des mises à jour plus stables et plus fiables, car il n'est pas nécessaire de concilier les différences entre la politique de comportement et la politique cible, comme c'est le cas avec les méthodes off-policy. Par ailleurs, étant donné qu'une seule politique est maintenue et mise à jour, ces méthodes présentent en général une complexité de calcul plus faible.

En revanche, les méthodes off-policy (par exemple Q-Learning ou DQN) exploitent des données collectées par une politique donnée (appelée politique de comportement) pour apprendre ou améliorer une politique cible différente (telle qu'une stratégie gloutonne ou optimale). Elles peuvent ainsi stocker les expériences (données) passées dans une mémoire tampon de rejeu (replay buffer) et les réutiliser plusieurs fois. Cela permet d'améliorer considérablement l'efficacité en termes d'échantillons par rapport aux méthodes on-policy, qui écartent les données après chaque mise à jour de la politique. Un autre avantage des méthodes off-policy réside dans leur capacité à apprendre à partir de n'importe quelle politique, y compris des politiques aléatoires, obsolètes ou même issues de démonstrations humaines. Cette souplesse permet d'effectuer un apprentissage à partir de jeux de données hors ligne ou de démonstrations.

Algorithmes de Reinforcement Learning basés sur le gradient ou évolutionnaires

Les algorithmes basés sur le gradient constituent la pierre angulaire de nombreux algorithmes modernes de Deep Reinforcement Learning : ils exploitent des estimations bruitées du gradient de la politique (par rétropropagation), ce qui permet un apprentissage rapide et efficace en termes d'échantillons. Ils sont en revanche sensibles au réglage des hyperparamètres, sujets aux optima locaux et nécessitent que les fonctions mises en jeu soient différentiables.

À l'opposé, le Reinforcement Learning évolutionnaire considère la politique comme une boîte noire et constitue une approche puissante lorsque les gradients ne sont pas disponibles ou peu fiables, lorsque d'importantes ressources de calcul en parallèle sont disponibles ou lorsqu'une exploration étendue est nécessaire dans des espaces de recherche complexes. Les stratégies évolutionnaires effectuent une recherche globale via des mutations et des sélections fondées sur une population, offrant une bonne robustesse face à des signaux de récompense rares ou non différentiables, mais au prix d'une efficacité nettement inférieure en termes d'échantillons et d'une convergence plus lente.

De plus en plus, les techniques hybrides permettent d’exploiter au mieux les deux approches : elles utilisent les méthodes évolutionnaires pour l'exploration et la recherche globale, puis affinent les politiques prometteuses grâce à des mises à jour basées sur le gradient, ce qui conduit souvent à de meilleures performances globales.

Algorithmes de Reinforcement Learning tabulaires ou basés sur des réseaux de neurones

C'est la nature du problème à résoudre qui détermine le plus souvent le ou les algorithmes les plus appropriés. Lorsque les espaces d'état et d'action de l'environnement sont discrets et de petite taille, il est possible d'utiliser un simple tableau pour représenter les politiques. Les algorithmes Q-Learning et SARSA sont des exemples classiques de méthodes tabulaires. Il devient impossible de représenter les paramètres politiques dans un tableau lorsque le nombre de paires état/action devient très important, voire infini. Ce phénomène est connu sous le nom de malédiction de la dimensionnalité : c'est précisément dans ce type de situation que les réseaux de neurones entrent en jeu. En général, la plupart des algorithmes modernes de Reinforcement Learning s'appuient sur des réseaux de neurones, car ils sont bien adaptés aux espaces d'état/action de grande taille ainsi qu'aux problèmes complexes.

Algorithmes de Reinforcement Learning à agent unique ou multi-agents

Dans le Reinforcement Learning mono-agent, un agent unique interagit avec l'environnement, ce qui rend l'apprentissage plus simple, plus stable et plus facile à analyser. À l'inverse, le Reinforcement Learning multi-agents (MARL pour « Multi-Agent Reinforcement Learning ») fait intervenir plusieurs agents interagissant au sein d'un même environnement. Du fait de l'influence réciproque entre les agents, l'environnement devient non stationnaire, ce qui viole les hypothèses markoviennes et tend à déstabiliser les processus d'apprentissage. Si le MARL permet de résoudre des tâches plus complexes et de faire émerger des comportements tels que la coordination ou la négociation, il introduit également des défis supplémentaires, notamment des problèmes de convergence, des exigences élevées en calcul, ainsi qu'une instabilité accrue lorsque chaque agent est mis à jour indépendamment.

Avantages et défis du Reinforcement Learning

Avantages du Reinforcement Learning

Bien que le Reinforcement Learning ne soit en aucun cas un concept nouveau, les progrès récemment accomplis en matière de Deep Learning et de puissance de calcul ont permis d'obtenir des résultats remarquables dans le domaine de l'intelligence artificielle.

Voici certains avantages du Reinforcement Learning :

  • Capacité à résoudre des tâches complexes et séquentielles : Le Reinforcement Learning permet d'optimiser des objectifs à long terme en plusieurs étapes, ce qui offre une alternative pour explorer des problèmes difficiles à résoudre avec des méthodes plus traditionnelles. Le Deep Reinforcement Learning peut également générer des solutions de bout en bout utilisant des capteurs avancés ou complexes, en exploitant les capacités de représentation des réseaux de neurones.
  • Dépendance réduite à l'égard des données labellisées : Contrairement à l'apprentissage supervisé, le Reinforcement Learning permet d'apprendre directement à partir des retours d'information de l'environnement grâce à des récompenses et des pénalités, réduisant ainsi la nécessité de recourir à des jeux de données labellisées coûteux.
  • Moins d'exigences concernant les jeux de données existants : Le Reinforcement Learning apprend généralement à partir de données générées à la volée, mais cela ne veut pas dire qu'il est incapable d'utiliser les jeux de données existants. En fait, contrairement à l'apprentissage supervisé, le Reinforcement Learning hors ligne est capable d'extraire des informations utiles même à partir de données non expertes ou de données ne codant pas le comportement souhaité qui doit être appris.
  • Adaptabilité, autocorrection et robustesse : Le Reinforcement Learning affine continuellement le comportement en procédant par essais et erreurs, ce qui permet aux agents de réviser leurs stratégies en fonction des performances, même après leur déploiement. Il est par ailleurs conçu pour gérer des conditions non déterministes où les résultats sont imprévisibles, ce qui est particulièrement adapté à la complexité du monde réel.

Défis du Reinforcement Learning

Le Reinforcement Learning une technique puissante, mais il présente également un certain nombre de défis, notamment les suivants :

  • Barrière à l'entrée élevée : Le Reinforcement Learning présente souvent une barrière à l'entrée élevée en raison de la complexité des algorithmes et des concepts.
  • Besoins élevés en matière de données et de calcul (inefficacité des échantillons) : L’apprentissage nécessite souvent beaucoup de données, ce qui se traduit par un grand nombre d'interactions ou de simulations. Par conséquent, il n'est pas rare que des problèmes complexes nécessitent plusieurs jours d'apprentissage pour converger.
  • Nombre élevé de paramètres de design : Le Reinforcement Learning comporte un grand nombre d'hyperparamètres qui doivent être ajustés, notamment le signal de récompense, l'architecture du réseau de neurones et les hyperparamètres spécifiques à l'agent. Même de petits changements apportés à ces paramètres peuvent avoir un impact considérable sur les performances d'apprentissage, et il faut souvent plusieurs tentatives pour entraîner une politique acceptable.
  • Défis liés à la généralisation et au transfert : Les agents ont souvent du mal à fonctionner en dehors de leurs scénarios d'apprentissage ou à transférer efficacement ce qu'ils ont appris en simulation vers les situations réelles (c'est ce qu'on appelle le fossé « sim2real »).
  • Problèmes de vérification, d'interprétabilité et de débuggage : Malgré toute la puissance du Deep Reinforcement Learning, les réseaux de neurones présentent eux aussi leurs propres inconvénients. Les politiques complexes des réseaux de neurones sont difficiles à expliquer et à corriger, ce qui réduit la transparence de l'approche. Par ailleurs, la vérification formelle des réseaux de neurones reste un domaine inexploré, ce qui complique l'application du Deep Reinforcement Learning aux systèmes critiques.

Applications du Reinforcement Learning dans les systèmes techniques

Au cours des dernières années, le Reinforcement Learning a été utilisé dans de nombreux domaines, notamment les chatbots IA et les grands modèles de langage (LLM), les systèmes de recommandation, le marketing et la publicité, ainsi que les jeux vidéo. Toutefois, il est encore (dans la plupart des cas) en phase d'évaluation pour les applications de production, en particulier pour les systèmes techniques. Cela dit, les avantages mentionnés précédemment ouvrent lentement mais sûrement la voie à l'adoption de cette technologie dans de nombreux secteurs. Les applications concrètes du Reinforcement Learning dans les systèmes techniques concernent généralement les domaines suivants :

  • Contrôles avancés : Le contrôle de systèmes non linéaires ou complexes, ou de systèmes dotés d'un retour d'information issu de capteurs sophistiqués, est une tâche difficile qui nécessite souvent un travail préparatoire supplémentaire (par exemple, la linéarisation du système à différents points de fonctionnement ou l'extraction de caractéristiques à partir des données des capteurs, par exemple des images). Dans ce type de cas, le Reinforcement Learning peut être appliqué directement sans travail préparatoire supplémentaire. Parmi les domaines d'application, on peut citer la conduite autonome (par exemple, prendre des décisions de conduite basées sur les données issues d'une caméra) et la robotique (par exemple, apprendre à un bras robotisé à manipuler divers objets pour des applications de type « pick-and-place » ou apprendre à un robot à marcher).
  • Ordonnancement : Les problèmes d'ordonnancement se posent dans le cadre du contrôle des feux de circulation, de la coordination des ressources dans les usines et dans de nombreux autres scénarios. Le Reinforcement Learning est une bonne alternative aux méthodes évolutionnaires pour résoudre ces problèmes d'optimisation combinatoire (hautement multidimensionnels).
  • Calibrage : Les applications qui impliquent un calibrage manuel des paramètres, par exemple pour une unité de contrôle électronique (ECU) ou le calibrage du moteur, ou celles qui sont sujettes aux erreurs humaines, telles que l'optimisation des chaînes de production, peuvent constituer de bons candidats pour le Reinforcement Learning.
  • Exemples contradictoires : En Machine Learning, une application est dite antagoniste lorsqu'elle fait intervenir des entrées (appelées exemples contradictoires) délibérément conçues pour exploiter les faiblesses d'autres modèles, systèmes ou environnements. Un exemple de Reinforcement Learning antagoniste pourrait consister à concevoir un agent de vérification des politiques qui tente de « briser » une autre politique (ou tout autre algorithme, en l'occurrence) afin d'identifier des contre-exemples et d'évaluer les vulnérabilités du système. Le Reinforcement Learning antagoniste s'avère également particulièrement utile dans les applications de cybersécurité, où il peut servir à simuler des attaques pour tester les défenses, et vice versa.
  • Optimisation du design : Un domaine susceptible de bénéficier grandement du Reinforcement Learning est l'optimisation du design basée sur les simulations, en particulier si les simulations sont coûteuses. Les agents de Reinforcement Learning peuvent explorer l'espace de design de manière intelligente, réduisant ainsi la quantité de données d’apprentissage et de simulations requises. À tire d'exemples d'applications, on peut citer le design de radars et l'optimisation du placement des puces.

MATLAB®, Simulink® et Reinforcement Learning Toolbox™ simplifient les tâches de Reinforcement Learning. Vous pouvez implémenter des contrôleurs et des algorithmes décisionnels en suivant chaque étape du workflow de Reinforcement Learning dans le même écosystème. Voici les tâches concrètes qui s'offrent à vous :

  1. Vous créez des environnements d'apprentissage et des signaux de récompense dans MATLAB et Simulink. Vous interagissez facilement avec les environnements créés grâce aux fonctions MATLAB et aux blocs Simulink.
  2. Vous créez des politiques basées sur des réseaux de neurones de manière programmatique ou interactive avec Deep Network Designer ou, alternativement, vous utilisez des lookup tables et des fonctions polynômiales.
  3. Vous changez, évaluez et comparez les algorithmes populaires basés sur la valeur, basés sur des politiques et acteur-critique (DQN, DDPG, PPO, SAC, etc.) en apportant seulement des modifications mineures au code, ou vous créez votre propre algorithme personnalisé. Vous essayez différentes approches d'apprentissage prêtes à l'emploi, notamment le Reinforcement Learning mono-agent / multi-agents, basé sur le gradient / évolutionnaire, en ligne / hors ligne ou basé sur les modèles / sans modèle.
  4. Vous concevez, entraînez et simulez des agents de manière interactive avec l'application Reinforcement Learning Designer.
  5. Vous déployez des politiques de Reinforcement Learning sur des systèmes de production et des dispositifs embarqués (avec des outils de génération automatique de code). Si nécessaire, vous réduisez l'empreinte mémoire des politiques du réseau de neurones en appliquant des techniques de compression avant le déploiement.
Capture d'écran de l'application Reinforcement Learning Designer montrant des boîtes de dialogue interactives pour la configuration des hyperparamètres de l'agent.

Création interactive d'un agent de Reinforcement Learning avec l'application Reinforcement Learning Designer. (Consultez la documentation.)

Relever les défis courants du Reinforcement Learning avec MATLAB et Simulink

Vous pouvez utiliser MATLAB et Simulink pour relever la plupart des défis généralement associés au Reinforcement Learning.

Barrière à l'entrée élevée

Familiarisez-vous rapidement avec le Reinforcement Learning : essayez des algorithmes prêts à l'emploi (pas besoin de les développer manuellement vous-même), consultez des exemples de référence pour trouver des idées sur la manière de configurer votre problème, et progressez grâce aux ressources de formation et aux formations gratuites.

Besoins élevés en matière de données et de calcul (inefficacité des échantillons)

Avec Parallel Computing Toolbox™ et MATLAB Parallel Server™, vous pouvez entraîner plus rapidement les politiques de Reinforcement Learning en exploitant plusieurs GPU, plusieurs CPU, des clusters d'ordinateurs et des ressources cloud. Vous pouvez par exemple générer plus rapidement des données d'apprentissage en lançant plusieurs simulations en parallèle, et également accélérer l'apprentissage en accélérant les calculs de gradient.

Reinforcement Learning Toolbox propose aussi des fonctionnalités pour le Reinforcement Learning basé sur les modèles, qui peuvent améliorer l'efficacité des échantillons.

Les agents d'optimisation de politique basée sur des modèles (MBPO pour « Model-Based Policy Optimization ») peuvent s'avérer plus efficaces en termes d'échantillons que les agents sans modèle, car le modèle est en mesure de générer de vastes jeux d'expériences diverses.

Schéma illustrant comment le problème peut être exécuté sur plusieurs machines grâce au calcul parallèle, pour accélérer le Reinforcement Learning et parvenir plus rapidement à une politique optimale.

Entraînement dans le cas d'un problème d'apprentissage inefficace en termes d'échantillons, en faisant appel au calcul parallèle.

Nombre élevé de paramètres de design

Vous pouvez utiliser Reinforcement Learning Toolbox pour réduire le nombre d'hyperparamètres que vous devez ajuster manuellement. Vous pouvez par exemple créer des agents sans spécifier manuellement les politiques d'architecture du réseau de neurones ; vous pouvez régler les hyperparamètres des agents de manière interactive grâce à l'optimisation bayésienne dans l'application Reinforcement Learning Designer. Vous pouvez également générer automatiquement des fonctions de récompense si vous disposez déjà des spécifications Model Predictive Control Toolbox™ ou des contraintes de performance spécifiées avec les blocs de vérification de modèle Simulink Design Optimization™.

Défis liés à la généralisation et au transfert

Les simulations jouent un rôle essentiel dans le Reinforcement Learning. Grâce à l'intégration étroite avec Simulink, il est facile d'améliorer la généralisation des politiques via la randomisation de domaine en entraînant des agents dans divers scénarios, même dans des conditions extrêmes ou dangereuses qui seraient difficiles et risquées à créer dans le monde réel.

Avec Reinforcement Learning Toolbox, vous pouvez exploiter pleinement toutes les sources de données disponibles pour améliorer la généralisation et combler le fossé sim2real (entre simulation et réalité). Grâce au Reinforcement Learning hors ligne, vous pouvez pré-entraîner une politique en utilisant des données existantes (par exemple celles provenant du hardware cible). Vous pouvez ensuite améliorer la politique en l'entraînant dans un environnement simulé et en appliquant la randomisation de domaine pour la rendre robuste vis-à-vis des facteurs et des scénarios incertains. Pour vous assurer que le modèle de simulation représente fidèlement le système réel, vous pouvez vous appuyer sur l'identification du système. La dernière étape du processus consiste à affiner la politique formée en l'entraînant directement sur le hardware réel, si nécessaire. Bien qu'il soit normalement risqué, voire dangereux, d'inclure du hardware réel dans la boucle d'apprentissage, les deux premières étapes de ce workflow garantissent que le nombre d'interactions avec le hardware physique nécessaires à l'affinage de la politique reste minimal. Cette fonctionnalité peut également être utilisée pour des applications temps réel.

Diagramme illustrant le Reinforcement Learning hors ligne, l'identification du système et l’apprentissage effectué directement sur des systèmes hardware réels.

Un workflow de transfert sim2real utilisant Reinforcement Learning Toolbox et exploitant toutes les sources de données disponibles pour obtenir une meilleure généralisation.

Problèmes de vérification, d'interprétabilité et de débuggage

Le Reinforcement Learning est souvent se caractérise souvent par des « erreurs silencieuses », c'est-à-dire des problèmes subtils et difficiles à détecter qui peuvent survenir lors de l’apprentissage ou de l'exécution. Reinforcement Learning Toolbox vous permet d'enregistrer et visualiser les données d'apprentissage clés pour faciliter l'analyse et le débuggage.

L'interprétabilité et la vérification sont encore des domaines de recherche actifs et ouverts, en particulier en ce qui concerne les réseaux de neurones. Deep Learning Toolbox™ propose toute une gamme de méthodes de visualisation (un type de technique d'interprétabilité qui explique les prédictions du réseau grâce à des représentations visuelles de ce que le réseau observe). Une autre approche consiste à utiliser la logique floue ; en entraînant un système d'inférence floue (FIS pour « Fuzzy Inference System ») à reproduire le comportement d'une politique de (Deep) Reinforcement Learning, vous pouvez utiliser les règles du FIS pour expliquer son comportement.

La vérification par simulation est l'approche la plus courante pour vérifier les politiques de Reinforcement Learning, et cette tâche est facilitée par Simulink. Grâce à l'approche Model-Based Design, la vérification par simulation peut être étendue à la vérification et la validation traditionnelles ; vous pouvez par exemple formaliser les exigences de votre politique et les analyser pour en vérifier la cohérence, l'exhaustivité et l'exactitude avec Requirements Toolbox™. Par ailleurs, vous pouvez évaluer certaines propriétés des politiques des réseaux de neurones, notamment la robustesse et les limites de sortie du réseau, en utilisant les méthodes formelles disponibles dans la Deep Learning Toolbox Verification Library.

Un dernier élément à prendre en compte est le fait que la décomposition d'un problème complexe en sous-problèmes plus simples peut aider à relever tous les défis abordés dans cette section ; le débuggage et l'interprétabilité deviennent plus faciles à gérer (un problème plus simple requiert généralement une architecture de politique plus simple) et les exigences de vérification sont potentiellement réduites. Dans ce type de situation, le Reinforcement Learning peut être combiné avec des méthodes traditionnelles (de contrôle). L'idée principale sous-jacente à ce type d’architecture consiste à utiliser les méthodes vérifiables ou traditionnelles pour traiter les aspects critiques du problème, tandis que les politiques de Reinforcement Learning de type « boîte noire » peuvent gérer les composants de niveau supérieur, potentiellement moins critiques. Il est possible d'envisager d'autres architectures, notamment l'utilisation d'une approche hybride dans laquelle une méthode traditionnelle fonctionne parallèlement au Reinforcement Learning ou dans laquelle le Reinforcement Learning vient compléter ou corriger une méthode traditionnelle. MATLAB facilite l'implémentation de telles architectures ; outre le Reinforcement Learning et les méthodes basées sur l'IA, vous pouvez accéder à toute une série de méthodes traditionnelles prêtes à l'emploi et les combiner sur une seule plateforme de simulation, en l'occurrence Simulink.

Schéma bloc combinant le Reinforcement Learning et un contrôleur traditionnel.

Le fait de combiner le Reinforcement Learning avec des méthodes traditionnelles peut faciliter son application à des systèmes critiques.