Cours d'apprentissage par renforcement profond
Explorez la combinaison du réseau neuronal et de l’apprentissage par renforcement. Algorithmes et exemples en Python et PyTorch
Avez-vous entendu parler des résultats étonnants obtenus par Deepmind avec AlphaGo Zero et par OpenAI dans Dota 2 ? Il s'agit de réseaux neuronaux profonds et d'apprentissage par renforcement. Voulez-vous en savoir plus?
C'est l'occasion idéale pour vous d'apprendre enfin Deep RL et de l'utiliser sur de nouveaux projets et applications passionnants.
Vous trouverez ici une introduction détaillée à ces algorithmes. Parmi lesquels vous apprendrez le q learning, le deep q learning, le PPO, le critique d'acteur, et les mettrez en œuvre à l'aide de Python et PyTorch.
L’objectif ultime est d’utiliser ces technologies à usage général et de les appliquer à toutes sortes de problèmes importants du monde réel. Demis Hassabis
Ce référentiel contient :
Conférences (et autres contenus) principalement de DeepMind et de la chaîne YouTube de Berkley.
Algorithmes (comme DQN, A2C et PPO) implémentés dans PyTorch et testés sur OpenAI Gym : RoboSchool & Atari.
Restez à l'écoute et suivez-moi sur #60DaysRLChallenge
Nous avons désormais également une chaîne Slack . Pour recevoir une invitation, envoyez-moi un e-mail à [email protected]. Envoyez-moi également un e-mail si vous avez une idée, une suggestion ou une amélioration.
Pour apprendre le Deep Learning, la Vision par Ordinateur ou le Traitement du Langage Naturel, consultez mon parcours ML d'un an.
Avant de commencer.. Prérequis
- Niveau de base de Python et PyTorch
- Apprentissage automatique
- Connaissances de base en Deep Learning (MLP, CNN et RNN)
Note rapide : mon NOUVEAU LIVRE est sorti !
Pour apprendre plus en profondeur l'apprentissage par renforcement et le Deep RL, consultez mon livre Algorithmes d'apprentissage par renforcement avec Python !!
Table des matières
- Le paysage de l’apprentissage par renforcement
- Implémentation de RL Cycle et OpenAI Gym
- Résoudre les problèmes avec la programmation dynamique
- Apprentissage Q et applications SARSA
- Réseau Q profond
- Apprentissage de l'optimisation stochastique et DDPG
- Mise en œuvre des TRPO et PPO
- Applications DDPG et TD3
- RL basé sur un modèle
- Apprentissage par imitation avec l'algorithme DAgger
- Comprendre les algorithmes d'optimisation de la boîte noire
- Développement de l'algorithme ESBAS
- Mise en œuvre pratique pour résoudre les défis RL
Index - Apprentissage par renforcement
- Semaine 1 - Introduction
- Semaine 2 – Bases du RL
- Semaine 3 - Algorithmes basés sur la valeur - DQN
- Semaine 4 - Algorithmes de gradient politique - REINFORCE & A2C
- Semaine 5 - Dégradés politiques avancés - PPO
- Semaine 6 - Stratégies d'évolution et algorithmes génétiques - ES
- Semaine 7 - Apprentissage par renforcement basé sur des modèles - MB-MF
- Semaine 8 - Concepts avancés et projet de votre choix
- 4 derniers jours - Révision + Partage
- Meilleures ressources
- Ressources supplémentaires
Semaine 1 - Introduction
- Pourquoi l'apprentissage par renforcement est-il une méthode d'apprentissage si importante - Une explication simple
- Introduction et aperçu du cours - CS294 par Levine, Berkley
- Apprentissage par renforcement profond : Pong de Pixels par Karpathy
Autres ressources
- La « Bible » de l'apprentissage par renforcement : Chapitre 1 - Sutton & Barto
- Excellent document d'introduction : Apprentissage par renforcement profond : un aperçu
- Commencez à coder : From Scratch : AI Balancing Act en 50 lignes de Python
Semaine 2 - Bases de RL : MDP, programmation dynamique et contrôle sans modèle
Ceux qui ne peuvent pas se souvenir du passé sont condamnés à le répéter – George Santayana
Cette semaine, nous découvrirons les blocs de base de l'apprentissage par renforcement, depuis la définition du problème jusqu'à l'estimation et l'optimisation des fonctions utilisées pour exprimer la qualité d'une politique ou d'un état.
Cours - Théorie
- Processus de décision de Markov - David Silver (DeepMind)
- Processus de Markov
- Processus de décision markoviens
- Planification par programmation dynamique - David Silver (DeepMind)
- Itération de politique
- Itération de valeur
- Prédiction sans modèle - David Silver (DeepMind)
- Apprentissage de Monte-Carlo
- Apprentissage des différences temporelles
- TD(λ)
- Contrôle sans modèle - David Silver (DeepMind)
- Itération politique Ɛ-gloutonne
- GLIE Monte Carlo Rechercher
- SARSA
- Échantillonnage important
Projet de la semaine - Q-learning
Q-learning appliqué à FrozenLake - Pour l'exercice, vous pouvez résoudre le jeu en utilisant SARSA ou mettre en œuvre le Q-learning par vous-même. Dans le premier cas, seuls quelques changements sont nécessaires.
Autres ressources
- La « Bible » de l'apprentissage par renforcement : chapitres 3 et 4 - Sutton & Barto
- Introduction aux fonctions de valeur - DRL UC Berkley par Sergey Levine
Semaine 3 - Algorithmes basés sur la valeur - DQN
Cette semaine, nous apprendrons des concepts plus avancés et appliquerons un réseau neuronal profond aux algorithmes de Q-learning.
Cours - Théorie
- Approximation des fonctions de valeur - David Silver (DeepMind)
- Approximateurs de fonctions différenciables
- Méthodes incrémentales
- Méthodes batch (DQN)
- Algorithmes avancés de Q-learning - Sergey Levine (UC Berkley)
- Tampon de relecture
- Double Q-learning
- Actions continues (NAF,DDPG)
- Conseils pratiques
Projet de la semaine - DQN et variantes
DQN et quelques variantes appliquées à Pong - Cette semaine le but est de développer un algorithme DQN pour jouer à un jeu Atari. Pour le rendre plus intéressant, j'ai développé trois extensions de DQN : Double Q-learning , Multi-step learning , Dueling Networks et Noisy Nets . Jouez avec eux, et si vous vous sentez en confiance, vous pouvez implémenter la relecture prioritaire, les réseaux de duel ou le RL distributionnel. Pour en savoir plus sur ces améliorations, lisez les journaux !
Papiers
Doit lire
- Jouer à Atari avec l'apprentissage par renforcement profond - 2013
- Contrôle au niveau humain grâce à l'apprentissage par renforcement profond - 2015
- Rainbow : Combiner les améliorations de l'apprentissage par renforcement profond - 2017
Extensions de DQN
- Apprentissage par renforcement profond avec Double Q-learning - 2015
- Replay d'expérience prioritaire - 2015
- Duel d'architectures de réseau pour l'apprentissage par renforcement profond - 2016
- Réseaux bruyants pour l'exploration - 2017
- Apprentissage par renforcement distributionnel avec régression quantile - 2017
Autres ressources
- La « Bible » de l'apprentissage par renforcement : chapitres 5 et 6 - Sutton & Barto
- Apprentissage par renforcement profond dans l'entreprise : combler le fossé entre les jeux et l'industrie
Semaine 4 - Algorithmes de gradient politique - REINFORCE & A2C
La semaine 4 présente les méthodes Policy Gradient, une classe d’algorithmes qui optimisent directement la politique. Vous découvrirez également les algorithmes Actor-Critic. Ces algorithmes combinent à la fois un gradient politique (l’acteur) et une fonction de valeur (le critique).
Cours - Théorie
- Méthodes de gradient politique - David Silver (DeepMind)
- Dégradé politique aux différences finies
- Dégradé politique de Monte-Carlo
- Gradient politique acteur-critique
- Introduction au gradient politique - Sergey Levine (RECAP, facultatif)
- Dégradé politique (REINFORCE et Vanilla PG)
- Réduction de l'écart
- Acteur-Critique - Sergey Levine (Plus en profondeur)
- Acteur-Critique
- Facteur de remise
- Conception d'algorithmes Acteur-Critique (mode batch ou en ligne)
- référence dépendant de l'état
Projet de la semaine - Vanilla PG et A2C
Vanilla PG et A2C appliqués à CartPole - L'exercice de cette semaine consiste à mettre en œuvre une méthode de gradient politique ou un acteur-critique plus sophistiqué. Dans le référentiel, vous pouvez trouver une version implémentée de PG et A2C. Alerte bug ! Faites attention, A2C me donne un résultat étrange. Si vous trouvez la mise en œuvre de PG et A2C facile, vous pouvez essayer avec la version asynchrone d'A2C (A3C).
Papiers
- Méthodes de gradient de politique pour l'apprentissage par renforcement avec approximation des fonctions
- Méthodes asynchrones pour l'apprentissage par renforcement profond
Autres ressources
- La « Bible » de l'apprentissage par renforcement : chapitres 9 et 10 - Sutton & Barto
- RL intuitif : introduction à Avantage-Acteur-Critique (A2C)
- Agents acteurs-critiques asynchrones (A3C)
Semaine 5 - Dégradés politiques avancés - PPO
Cette semaine est consacrée aux méthodes avancées de gradient politique qui améliorent la stabilité et la convergence des méthodes de gradient politique « Vanille ». Vous apprendrez et implémenterez PPO, un algorithme RL développé par OpenAI et adopté dans OpenAI Five.
Cours - Théorie
- Dégradés politiques avancés - Sergey Levine (UC Berkley)
- Problèmes avec les méthodes de dégradé de politique « Vanilla »
- Limites de performance des politiques
- Théorie de l'amélioration monotone
- Algorithmes : NPO, TRPO, PPO
- Natural Policy Gradients, TRPO, PPO - John Schulman (Berkey DRL Bootcamp) - (RECAP, facultatif)
- Limites des méthodes de gradient de politique « Vanilla »
- Dégradé politique naturel
- Optimisation des politiques de région de confiance, TRPO
- Optimisation des politiques proximales, PPO
Projet de la semaine - PPO
PPO appliqué à BipedalWalker - Cette semaine, vous devez implémenter PPO ou TRPO. Je suggère PPO étant donné sa simplicité (par rapport à TRPO). Dans le dossier du projet Week5, vous trouvez une implémentation de PPO qui apprend à jouer à BipedalWalker . De plus, dans le dossier, vous pouvez trouver d'autres ressources qui vous aideront dans le développement du projet. Amusez-vous!
Pour en savoir plus sur le PPO, lisez l'article et regardez la vidéo d'Arxiv Insights
Papiers
- Optimisation de la politique des régions de confiance - 2015
- Algorithmes d'optimisation de politique proximale - 2017
Autres ressources
- Pour mieux comprendre PPO et TRPO : la poursuite du bonheur (robotique)
- Écrous et boulons de Deep RL
- Meilleures pratiques PPO : formation avec l'optimisation des politiques proximales
- Explication de l'algorithme PPO par Arxiv Insights
Semaine 6 - Stratégies d'évolution et algorithmes génétiques - ES
Au cours de la dernière année, il a été démontré que les stratégies d'évolution (ES) et les algorithmes génétiques (GA) obtiennent des résultats comparables à ceux des méthodes RL. Il s'agit d'algorithmes de boîte noire sans dérivés qui nécessitent plus de données que RL pour apprendre, mais sont capables d'évoluer sur des milliers de processeurs. Cette semaine, nous examinerons ces algorithmes de boîte noire.
Conférences et articles - Théorie
- Stratégies d'évolution
- Introduction à ES : un guide visuel des stratégies d'évolution
- ES pour RL : évolution de stratégies stables
- Méthodes sans dérivées - Cours
- Stratégies d'évolution (discussion sur papier)
- Algorithmes génétiques
- Introduction aux algorithmes génétiques - y compris un exemple de code
Projet de la semaine - ES
Stratégies d'évolution appliquées à LunarLander - Cette semaine, le projet consiste à implémenter un ES ou un GA. Dans le dossier Week6, vous pouvez trouver une implémentation de base du document Evolution Strategies as a Scalable Alternative to Reinforcement Learning to solve LunarLanderContinuous. Vous pouvez le modifier pour jouer dans des environnements plus difficiles ou ajouter vos idées.
Papiers
- Neuroévolution profonde : les algorithmes génétiques constituent une alternative compétitive pour la formation de réseaux de neurones profonds pour l'apprentissage par renforcement
- Les stratégies d'évolution comme alternative évolutive à l'apprentissage par renforcement
Autres ressources
- Algorithmes d'optimisation évolutive - Dan Simon
Semaine 7 - Apprentissage par renforcement basé sur des modèles - MB-MF
Les algorithmes étudiés jusqu’à présent sont sans modèle, ce qui signifie qu’ils choisissent uniquement la meilleure action pour un état donné. Ces algorithmes atteignent de très bonnes performances mais nécessitent beaucoup de données d'entraînement. Au lieu de cela, les algorithmes basés sur des modèles apprennent l'environnement et planifient les prochaines actions en fonction du modèle appris. Ces méthodes sont plus efficaces en matière d'échantillons que les méthodes sans modèle, mais elles obtiennent globalement les pires performances. Au cours de cette semaine, vous apprendrez la théorie derrière ces méthodes et implémenterez l'un des derniers algorithmes.
Cours - Théorie
- RL basé sur un modèle, David Silver (DeepMind) (version concise)
- Intégrer l'apprentissage et la planification
- Présentation du RL basé sur un modèle
- Architectures intégrées
- Recherche basée sur la simulation
- Model-Based RL, Sergey Levine (UC Berkley) (version approfondie)
- Apprendre des systèmes dynamiques à partir de données
- Présentation du RL basé sur un modèle
- Modèles mondiaux et locaux
- Apprendre avec des modèles locaux et des régions de confiance
- Apprentissage des politiques en imitant les contrôleurs optimaux
- Rétropropagation dans une politique avec des modèles appris
- Algorithme de recherche de politique guidée
- Imiter un contrôle optimal avec DAgger
- Apprentissage avancé des modèles et images
- Modèles dans l'espace latent
- Modèles directement dans l’espace image
- Modèles inverses
Projet de la semaine - MB-MF
MB-MF appliqué à RoboschoolAnt - Cette semaine, j'ai choisi d'implémenter l'algorithme basé sur un modèle décrit dans cet article. Vous pouvez trouver ma mise en œuvre ici. NB : Au lieu de l'implémenter sur Mujoco comme dans l'article, j'ai utilisé RoboSchool, un simulateur open source pour robot, intégré à OpenAI Gym.
Papiers
- Agents à imagination augmentée pour l'apprentissage par renforcement profond - 2017
- Apprentissage par renforcement avec tâches auxiliaires non supervisées - 2016
- Dynamique des réseaux neuronaux pour l'apprentissage par renforcement profond basé sur un modèle avec réglage fin sans modèle - 2018
Autres ressources
- La « Bible » de l'apprentissage par renforcement : Chapitre 8 - Sutton & Barto
- Modèles mondiaux : les agents peuvent-ils apprendre à l'intérieur de leurs propres rêves ?
Semaine 8 - Concepts avancés et projet de votre choix
Cette dernière semaine est consacrée aux concepts avancés du RL et à un projet de votre choix.
Cours - Théorie
- Sergueï Levine (Berkley)
- Connexion entre inférence et contrôle
- Apprentissage par renforcement inverse
- Exploration (partie 1)
- Exploration (partie 2) et apprentissage par transfert
- Apprentissage et transfert multitâches
- Méta-apprentissage et parallélisme
- Apprentissage avancé par imitation et problèmes ouverts
- David Silver (Esprit profond)
Le projet final
Vous trouverez ici quelques idées de projets.
- Pommerman (multijoueur)
- Défi IA pour les prothèses (Défi)
- Modèles Word (implémentation papier)
- Demande de recherche OpenAI (Recherche)
- Concours Rétro (apprentissage par transfert)
Autres ressources
- AlphaGo Zéro
- Papier
- Article de blog DeepMind : AlphaGo Zero : Apprendre à partir de zéro
- Vidéo Arxiv Insights : Comment fonctionne AlphaGo Zero - Google DeepMind
- OpenAI cinq
- Article de blog OpenAI : OpenAI Five
- Vidéo Arxiv Insights : OpenAI Five : Faire face aux humains professionnels dans Dota II
4 derniers jours - Révision + Partage
Félicitations pour avoir terminé le défi 60 Days RL !! Faites-moi savoir si vous avez apprécié et partagez-le !
À bientôt!
Meilleures ressources
Apprentissage par renforcement : une introduction - par Sutton & Barto. La "Bible" de l'apprentissage par renforcement. Vous trouverez ici le brouillon PDF de la deuxième version.
Apprentissage pratique par renforcement profond - par Maxim Lapan
Apprentissage profond - Ian Goodfellow
Deep Reinforcement Learning - Cours UC Berkeley par Levine, consultez ici leur site.
Cours d'apprentissage par renforcement - par David Silver, DeepMind. Excellentes conférences d'introduction par Silver, chercheur principal sur AlphaGo. Ils suivent le livre Reinforcement Learning de Sutton & Barto.
Ressources supplémentaires
Un apprentissage par renforcement génial. Une liste organisée de ressources dédiées à l'apprentissage par renforcement
GroundAI sur RL. Articles sur l'apprentissage par renforcement
Une tasse de café ☕
Toute contribution est très appréciée ! Acclamations!