Dans mon précédent article, j'ai posé les fondations de l'apprentissage par renforcement. Nous y avons vu comment un agent, tel un écureuil malin, pouvait apprendre à naviguer dans un monde simple en utilisant des tables de valeurs (Q-tables). Cependant, nous avons également mis en lumière leur talon d'Achille : la "malédiction de la dimensionnalité". Face à un monde complexe comme un jeu vidéo ou la conduite d'une voiture, une table devient inutilisable.
Vous voilà au bord d'une révolution. Celle qui a propulsé le reinforcement learning sur le devant de la scène de l'intelligence artificielle. L'idée est géniale dans sa simplicité : remplacer la table rigide et limitée par un cerveau souple et puissant, un réseau de neurones profond. C'est la naissance du Deep Reinforcement Learning (DRL).
Cet article est votre guide pour comprendre cette transition. Nous partirons de l'algorithme qui a tout changé, le Deep Q-Network (DQN), pour ensuite explorer comment le domaine a su s'adapter pour maîtriser des actions continues et devenir plus stable et efficace que jamais.
Imaginez que vous ne vouliez plus seulement apprendre une grille de \(10\times10\), mais maîtriser un jeu comme Breakout ou Space Invaders, où l'état n'est plus une simple coordonnée, mais une image entière de \(84\times84\) pixels en couleurs. Le nombre d'états possibles est \(256^{(84\times84\times3)}\), un nombre si grand qu'il dépasse l'entendement. Une Q-table est non seulement inutilisable, elle est une absurdité conceptuelle.
Le Deep Q-Network (DQN), introduit en 2013 par DeepMind dans leur article fondateur "Playing Atari with Deep Reinforcement Learning", a résolu ce problème en mariant deux mondes : l'apprentissage par renforcement et l'apprentissage profond. La solution repose sur deux innovations majeures.
Au lieu d'une table, DQN utilise un réseau de neurones convolutif (CNN), un type de réseau particulièrement doué pour comprendre les images. Ce réseau prend en entrée l'état (l'image du jeu) et sort en direct les valeurs Q pour chaque action possible (gauche, droite, tirer...).
Un agent qui apprend en ligne, pas à pas, est confronté à un problème insidieux : les expériences successives sont fortement corrélées. Si l'agent vient de se déplacer à droite, son prochain état sera probablement aussi un état où il est un peu plus à droite. Apprendre à partir de cette séquence continue, c'est comme essayer d'apprendre une nouvelle matière en ne lisant que la même page d'un livre encore et encore. On risque de sur-spécialiser notre apprentissage à une situation très récente et passagère.
DQN introduit une mémoire tampon, l'Experience Replay Buffer.
C'est une révolution ! Cela brise la corrélation des données, un principe fondamental de l'apprentissage automatique. L'agent peut réapprendre de ses anciennes erreurs et succès, encore et encore. Une expérience rare mais cruciale (par exemple, perdre une vie) peut être ré-échantillonnée de nombreuses fois, s'assurant que l'agent en tire bien la leçon.
Le Deep Q-Network a été une véritable bombe. Pour la première fois, un agent pouvait apprendre directement à partir de pixels bruts, atteignant des performances surhumaines sur une multitude de jeux classiques d'Atari. Le grand mérite du DQN est d'avoir résolu le problème de la "malédiction de la dimensionnalité" en utilisant un réseau de neurones comme fonction d'approximation, et d'avoir introduit l'Experience Replay pour un apprentissage stable et efficace.
Cependant, le DQN n'était pas parfait. Loin de là. Les chercheurs ont rapidement identifié plusieurs faiblesses fondamentales :
Face à ces défauts, la communauté de la recherche n'a pas abandonné le DQN. Elle l'a amélioré, créant toute une famille d'algorithmes de plus en plus performants, tous basés sur l'idée originale du DQN. Voici les plus célèbres, présentées sans jargon technique :
Malgré toute cette ingéniosité, toute la famille DQN se heurte à un mur infranchissable : elle ne peut pas gérer les actions continues. Pour relever ce défi, il fallait une philosophie complètement différente. C'est là que commence l'histoire des méthodes de Policy Gradient.
Pour piloter un robot, contrôler un bras robotique ou conduire une voiture, il faut une approche capable de gérer des actions continues (par exemple, un angle de volant ou une force d'accélération). C'est précisément là qu'interviennent les méthodes de Policy Gradient.
Ces méthodes adoptent une philosophie radicalement différente de celle du value-based learning (comme DQN). Au lieu d'apprendre une fonction de valeur (Q) pour ensuite en déduire la meilleure action, elles apprennent directement à optimiser la politique (le réseau de neurones qui prend les décisions).
Une caractéristique essentielle des méthodes de Policy Gradient est leur nature "on-policy". Cela signifie qu'elles apprennent directement à partir des expériences générées par la politique actuelle. Contrairement à DQN, il n'y a pas de Experience Replay Buffer. L'agent collecte des trajectoires, les utilise pour mettre à jour sa politique, puis les jette. C'est un apprentissage plus direct, mais qui peut sembler moins efficient en termes de données.
L'algorithme le plus simple et le plus fondamental de cette famille est REINFORCE. Son principe est intuitif : il ajuste les poids \(θ\) du réseau de neurones de la politique \(π\) pour augmenter la probabilité des actions qui ont mené à de bonnes récompenses.
La mise à jour s'effectue via une montée de gradient (Gradient Ascent) sur un objectif de performance. La formule de mise à jour est :
$$ \nabla_\theta J(\theta) \approx \mathbb{E} \left[ \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t|s_t) G_t \right] $$Décortiquons cette formule :
En multipliant le score par le retour \(G_t\), on applique le principe du "carotte et du bâton" :
Le Problème Majeur de REINFORCE : La Variance
Le problème de REINFORCE est sa variance énorme. Le signal \(G_t\) n'est connu qu'à la fin de l'épisode. Une seule récompense aléatoire à la fin d'une longue trajectoire peut fausser complètement le jugement sur toutes les actions qui l'ont précédée, rendant l'apprentissage très bruité et inefficace.
Pour réduire cette variance, la solution a été d'introduire un Critic. L'architecture Actor-Critic combine le meilleur des deux mondes :
Le Critic fournit à l'Actor un signal beaucoup plus précis et moins bruité que le retour final \(G_t\). Il ne dit pas juste "c'était bien" ou "c'était mal", mais "c'était mieux/moins bien que prévu pour cette situation". Ce signal est appelé "Advantage" (avantage) :
$$ A(s,a) = Q(s,a) - V(s) $$L'avantage mesure à quel point une action est meilleure (ou pire) que la moyenne des actions possibles depuis cet état. La mise à jour de l'Actor devient alors beaucoup plus stable, en remplaçant \(G_t\) par l'avantage \(A(s,a)\) :
$$ \nabla_\theta J(\theta) \approx \mathbb{E} \left[ \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t|s_t) A(s_t, a_t) \right] $$On ne récompense plus une action pour son résultat final, mais parce qu'elle a été meilleure que ce à quoi on s'attendait à cet instant.
Le Grand Avantage des Policy Gradients : Ils peuvent gérer nativement les espaces d'actions continues. Le réseau de neurones peut directement sortir une valeur (par exemple, entre -1 et 1 pour un volant) en utilisant des fonctions d'activation comme \(tanh\), ou une distribution de probabilités sur un intervalle continu.
Les méthodes Actor-Critic représentaient une avancée significative, mais des défis subsistaient. L'apprentissage "on-policy" est souvent inefficace en termes d'échantillonnage (chaque donnée n'est utilisée qu'une seule fois) et peut souffrir d'une variance élevée. De plus, la mise à jour de la politique elle-même restait un processus délicat, où une seule mauvaise étape pouvait déstabiliser tout l'entraînement. C'est pour répondre à ces problèmes que des algorithmes plus sophistiqués comme A2C et PPO ont été développés.
Pour améliorer l'efficacité et la stabilité de l'apprentissage on-policy, la solution a été de paralléliser la collecte de données. L'algorithme A2C (Advantage Actor-Critic) est une version synchrone et stable de cette approche.
Le Principe des Multi-Workers :
Au lieu d'un seul agent interagissant avec un seul environnement, A2C déploie plusieurs agents, appelés "workers", qui fonctionnent en parallèle. Chaque worker possède une copie de la politique actuelle et interagit avec sa propre instance de l'environnement.
Le Processus d'Entraînement :
Cette approche brise la corrélation des données, car les workers explorent des états différents de manière non séquentielle. Elle accélère considérablement la collecte d'expériences et réduit la variance de l'estimation du gradient, rendant l'entraînement global plus stable et rapide qu'un agent on-policy mono-thread.
Même avec une collecte de données améliorée grâce à A2C, le risque des "destructively large policy updates" (mises à jour destructrices de la politique) demeurait. L'objectif de la politique pouvait changer si radicalement d'une mise à jour à l'autre que les performances s'effondraient.
Proximal Policy Optimization (PPO) a été conçu pour résoudre ce problème fondamental en introduisant une contrainte directe sur la magnitude des mises à jour de la politique.
L'innovation centrale de PPO est sa fonction objectif "clippée". Au lieu de maximiser directement la performance attendue, PPO maximise un objectif substitut (surrogate objective) qui approxime la performance réelle tout en pénalisant les grands changements de politique.
Cette fonction objectif repose sur plusieurs éléments clés :
Cette astuce mathématique force l'algorithme à faire des mises à jour de politique petites et prudentes. Il ignore les changements qui seraient trop importants, même s'ils semblent prometteurs sur le lot de données actuel. Cette robustesse intrinsèque est ce qui a fait de PPO l'algorithme de choix par défaut pour une vaste gamme de problèmes, y compris des applications complexes comme l'alignement des LLM, où la stabilité est primordiale.
Et maintenant, comment un algorithme conçu pour contrôler un robot finit-il par enseigner la politesse à un modèle de langage ? C'est là que l'histoire devient fascinante.
Un LLM, comme GPT, peut être vu comme un agent de RL.
Le problème est : comment définir une récompense ? Est-ce que la réponse "Le ciel est bleu" vaut +10 ou +5 ? C'est impossible à modéliser avec une simple fonction. C'est là qu'intervient le Reinforcement Learning from Human Feedback (RLHF), la technique qui a rendu des modèles comme ChatGPT si utiles.
Le processus se déroule en deux temps :
PPO va alors générer des réponses, les faire noter par le modèle de récompense, et ajuster ses propres poids pour maximiser cette note. Grâce à sa nature prudente, il améliore le LLM sans le "casser", en l'orientant progressivement vers des comportements que les humains jugent désirables. C'est ainsi que l'on apprend à une IA à être plus qu'un simple prédicteur de mots, mais un assistant utile et sûr.
Notre voyage théorique touche à sa fin. Vous avez maintenant une compréhension complète de l'écosystème du Deep Reinforcement Learning :
Plus important encore, vous comprenez la philosophie derrière ces outils : le dilemme exploration-exploitation, le compromis biais-variance, et l'importance de la stabilité.
Pour approfondir vos connaissances et explorer des outils avancés, voici quelques ressources :
Ma recommandation musicale du jour : à écouter sans modération !
Écouter sur YouTube