Le Q-learning et Deep-Q-Learning expliqués
By Paul Claret
10 minutes read - 11/12/24
L’apprentissage par renforcement repose sur l’idée qu’un agent peut apprendre à interagir avec son environnement pour maximiser une récompense cumulative. Parmi les algorithmes les plus emblématiques, le Q-Learning et son évolution moderne, les Deep Q-Networks (DQN), occupent une place centrale.
1. Q-Learning : Les Bases
Le Q-Learning est un algorithme hors-politiques (off-policy), ce qui signifie qu’il apprend une politique optimale en utilisant une stratégie qui peut différer de celle suivie par l’agent pour explorer.
Objectif
Le Q-Learning cherche à approximer une fonction appelée Q-function ou fonction de valeur état-action, définie comme suit :
\(Q(s, a) = \text{Valeur attendue d’une action } a \text{ dans l’état } s, \text{ en suivant une politique optimale.}\)
Équation de Bellman
La fonction Q est mise à jour en suivant une version discrète de l’équation de Bellman :
- Initialisation de la table \(Q(s, a)\) avec des valeurs arbitraires (souvent 0).
- Exploration de l’environnement par l’agent en choisissant des actions.
- Mise à jour des valeurs Q pour chaque transition état-action selon l’équation de Bellman.
- Convergence vers une politique optimale après de nombreuses itérations.
Exemple simple :
Un robot navigue dans une grille où certaines cases donnent des récompenses positives (comme un objectif) et d’autres des punitions (comme des pièges). Le Q-Learning permettra au robot d’apprendre à éviter les pièges et à trouver le chemin le plus court vers l’objectif.
Limites du Q-Learning
- Scalabilité : La table \(Q(s, a)\) devient impraticable pour des environnements avec un grand nombre d’états ou d’actions. Imaginez un tableau excel avec des millions de lignes…
- Généralisation : Le Q-Learning ne peut pas généraliser à des états non explorés, car il repose sur des valeurs discrètes pour chaque état-action.
2. Deep Q-Networks (DQN) : Une Révolution
Pour surmonter les limitations du Q-Learning classique, les Deep Q-Networks (DQN) ont été introduits par DeepMind en 2015. L’idée principale est d’utiliser un réseau neuronal pour approximer la fonction Q, permettant ainsi de traiter des espaces d’états continus ou très grands.
Les Principes de Base
Le DQN remplace la table Q(s,a)Q(s, a) par un réseau neuronal qui prend en entrée un état \(s\) et prédit les \(Q-values\) pour toutes les actions possibles \(a\).
Fonctionnement
- Architecture :
- Entrée : L’état \(s\) (par exemple, une image, une position, etc.).
- Sortie : Un vecteur de Q-values, où chaque élément correspond à une action \(a\).
- Optimisation :
Le réseau est entraîné pour minimiser une fonction de perte inspirée de l’équation de Bellman :\[ \mathcal{L}(\theta) = \mathbb{E} \left[ \left( R + \gamma \max_{a'} Q(s', a'; \theta^-) - Q(s, a; \theta) \right)^2 \right] \]
- \(\theta\) : Les paramètres actuels du réseau (poids et biais).
- \(\theta^-\) : Les paramètres d’un réseau secondaire appelé target network.
- Target Network :
- Utilisé pour stabiliser l’apprentissage.
- Les paramètres \(\theta^-\) sont
mis à jour périodiquement pour éviter des oscillations dans
l’apprentissage.
- Replay Buffer :
- Les transitions \((s, a, R, s')\) sont stockées dans une mémoire tampon.
- Des mini-lots d’expériences sont tirés aléatoirement pour entraîner
le réseau, ce qui améliore l’efficacité et réduit la corrélation
temporelle des données.
Exemple : Jeux Atari
DeepMind a démontré la puissance des DQN en les appliquant à des jeux Atari comme Breakout. L’agent a appris à jouer en observant simplement les pixels de l’écran et en maximisant le score.
https://youtu.be/V1eYniJ0Rnk?si=LguO4BTdsnJaB46N
Améliorations de DQN
Personnellement, je trouve le Deep Learning assez compliqué comme ça. Surement parce que ce n’est pas ma spécialité ou un sujet qui me passion particulièrement. Même si aujourd’hui on parle plus d’OpenAI et d’IA générative, cela reste une branche importante de l’IA. Je me devais donc de vous en faire une introduction. Si vous lisez ceci depuis ma roadmap ia interactive, les prochains articles ne seront que des applications de ce que l’on a vu et des articles sur les réseaux de neurones (ANN, CNN, RNN, LSTM) et l’IA générative. Je m’aventurerai pas plus dans le domaine de l’apprentissage par renforcement mais je vous laisse donc ici des pistes de recherche pour les plus curieux qui veulent vraiment apprendre par eux même:
- Double DQN :
- Réduit l’effet de surestimation des Q-values.
- La mise à jour utilise l’action choisie par le réseau actuel mais évalue celle-ci avec le target network.
- Dueling DQN :
- Introduit deux branches dans le réseau : une pour estimer la valeur d’un état (\(V(s)\)) et une pour estimer l’avantage relatif des actions (\(A(s, a)\)).
- Combine ces deux valeurs pour produire des Q-values. \[ Q(s, a) = V(s) + A(s, a) - \frac{1}{|\mathcal{A}|} \sum_{a'} A(s, a') \]
- Prioritized Experience Replay :
- Accorde une importance plus grande aux transitions qui contribuent le plus à l’erreur de prédiction, accélérant ainsi l’apprentissage.
Comparaison entre Q-Learning et DQN
Critère | Q-Learning | DQN |
---|---|---|
Représentation des Q-values | Table explicite | Réseau neuronal |
Scalabilité | Limitée | Très adaptée aux grands espaces |
Exploration des états | Peu efficace | Améliorée grâce au replay buffer |
Applications | Problèmes simples | Jeux, robots, simulations 3D |
Applications
- Robotique : Les DQN sont utilisés pour entraîner des robots à accomplir des tâches complexes dans des environnements dynamiques.
- Jeux Vidéo : De nombreux agents de jeu sont entraînés avec des DQN, notamment pour des jeux d’arcade ou des simulations.
- Finance : Optimisation de portefeuilles ou prise de décisions dans des environnements stochastiques.
- Santé : Planification de traitements médicaux en maximisant les résultats pour les patients.
Conclusion
Le Q-Learning et ses variantes, comme les DQN, marquent des étapes cruciales dans l’apprentissage par renforcement. Alors que le Q-Learning reste un outil pédagogique simple et efficace, les DQN ont ouvert la voie à des applications complexes dans des environnements riches et dynamiques.
En combinant ces approches avec des améliorations comme le Double DQN ou le Dueling DQN, les chercheurs continuent de repousser les limites de ce que les agents autonomes peuvent accomplir. L’avenir de l’apprentissage par renforcement promet encore plus d’innovations et d’applications fascinantes.
Le reinforcement learning n’est pas ma spécialité, donc je vais éviter de trop m’aventurer dans les architectures et équations complexes mais pour vous donner une idée da la taille de l’iceberg, nous n’avons vu que la deuxième équation et seulement mentioné les 3 suivantes de cette image:
https://roberttlange.com/posts/2019/08/blog-post-5/
Je vous laisse vous aventurer seul dans cette jungle du RL, personnellement, mes articles se concentrent plus sur l’IA générative. Les bases du RL sont cependant un peu plus simple à apprendre que l’a GenIA. C’est pourquoi j’en ai parlé dans mes articles.
Dans le prochain article, nous allons implémenter ensemble, un example de DQN et de QL. RDV au prochain article 👋 !
Vous voulez apprendre l'IA en autonomie ?
Si vous êtes nouveau sur mon site, je vous invite à aller voir ma page sur Roadmap IA qui regroupe tous mes articles dans l'ordre pour vous facilitez l'apprentissage.