Nanodegree d'apprentissage en renforcement profond

Ce référentiel contient du matériel lié au programme NanodeGree en renforcement en profondeur d'Udacity.
Table des matières
Tutoriels
Les tutoriels vous guident en mettant en œuvre divers algorithmes dans l'apprentissage du renforcement. Tout le code est dans Pytorch (V0.4) et Python 3.
- Programmation dynamique: implémenter des algorithmes de programmation dynamique tels que l'évaluation des politiques, l'amélioration des politiques, l'itération des politiques et l'itération de la valeur.
- Monte Carlo: Implémentez les méthodes de prédiction et de contrôle de Monte Carlo.
- Différence temporelle: implémenter des méthodes de différence temporelle telles que SARSA, Q-Learning et SARSA attendues.
- Discrétisation: Apprenez à discrétiser les espaces d'État continus et à résoudre l'environnement des voitures de montagne.
- Codage des carreaux: implémentez une méthode pour discrétisation des espaces d'état continus qui permettent une meilleure généralisation.
- Network profonde: explorez comment utiliser un réseau Q profondément Q (DQN) pour naviguer dans un véhicule spatial sans s'écraser.
- Robotique: Utilisez une API C ++ pour former des agents d'apprentissage par renforcement à partir de simulation robotique virtuelle en 3D. ( Lien externe )
- Couloir: Utilisez l'escalade d'une échelle de bruit adaptative pour équilibrer un poteau sur un chariot en mouvement.
- Méthode de l'entropie croisée: Utilisez la méthode de l'entropie croisée pour entraîner une voiture pour naviguer dans une colline escarpée.
- Renforce: Apprenez à utiliser les gradients politiques de Monte Carlo pour résoudre une tâche de contrôle classique.
- Optimisation de la politique proximale : explorez comment utiliser l'optimisation de la politique proximale (PPO) pour résoudre une tâche d'apprentissage en renforcement classique. ( À venir! )
- Gradients de politique déterministe profonde : explorez comment utiliser les gradients de politique déterministe profonds (DDPG) avec des environnements de gymnase Openai.
- Pendule: Utilisez l'environnement pendule d'Openai Gym.
- Bipedalwalker: Utilisez un environnement Bipedalwalker d'Openai Gym.
- Finance: former un agent à découvrir des stratégies de trading optimales.
Laboratoires / projets
Les laboratoires et les projets se trouvent ci-dessous. Tous les projets utilisent de riches environnements de simulation d'Unity ML-Agents. Dans le programme de nanodegree d'apprentissage en profondeur, vous recevrez un examen de votre projet. Ces avis sont destinés à vous donner des commentaires personnalisés et à vous dire ce qui peut être amélioré dans votre code.
- Le problème de taxi: dans ce laboratoire, vous entraînerez un taxi pour ramasser et déposer les passagers.
- Navigation: Dans le premier projet, vous formerez un agent à collecter des bananes jaunes tout en évitant les bananes bleues.
- Contrôle continu: Dans le deuxième projet, vous entraînerez un bras robotique pour atteindre les emplacements cibles.
- Collaboration et compétition: Dans le troisième projet, vous formerez une paire d'agents pour jouer au tennis!
Ressources
- Cheatheet: vous êtes encouragé à utiliser ce fichier PDF pour guider votre étude de l'apprentissage du renforcement.
Benchmarks de gymnase Openai
Contrôle classique
-
Acrobot-v1 avec codage de carreaux et q-learning -
Cartpole-v0 avec escalade de colline | résolu dans 13 épisodes -
Cartpole-v0 avec renforcement | résolu dans 691 épisodes -
MountainCarContinuous-v0 avec méthode de l'entropie croisée | résolu en 47 itérations -
MountainCar-v0 avec discrétisation de grille uniforme et q-learning | résolu dans <50000 épisodes -
Pendulum-v0 avec des gradients de politique déterministe profonds (DDPG)
Box2d
-
BipedalWalker-v2 avec des gradients de politique déterministe profonds (DDPG) -
CarRacing-v0 avec profonde Q-Networks (DQN) | À venir! -
LunarLander-v2 avec profonde Q-Networks (DQN) | résolu dans 1504 épisodes
Texte de jouet
-
FrozenLake-v0 avec programmation dynamique -
Blackjack-v0 avec les méthodes de Monte Carlo -
CliffWalking-v0 avec des méthodes de différence temporelle
Dépendances
Pour configurer votre environnement Python pour exécuter le code dans ce référentiel, suivez les instructions ci-dessous.
Créer (et activer) un nouvel environnement avec Python 3.6.
conda create --name drlnd python=3.6
source activate drlnd
conda create --name drlnd python=3.6
activate drlnd
Si vous exécutez dans Windows , assurez-vous que les "Build Tools for Visual Studio 2019" sont installés à partir de ce site. Cet article peut également être très utile. Cela a été confirmé pour fonctionner dans Windows 10 Home.
Suivez les instructions de ce référentiel pour effectuer une installation minimale d'Openai Gym.
- Ensuite, installez le groupe classique d'environnement de contrôle en suivant les instructions ici.
- Ensuite, installez le groupe d'environnement Box2D en suivant les instructions ici.
Clone le référentiel (si vous ne l'avez pas déjà fait!) Et accédez au dossier python/ . Ensuite, installez plusieurs dépendances.
git clone https://github.com/udacity/deep-reinforcement-learning.git
cd deep-reinforcement-learning/python
pip install .
Créez un noyau Ipython pour l'environnement drlnd .
python -m ipykernel install --user --name drlnd --display-name " drlnd "
Avant d'exécuter du code dans un ordinateur portable, modifiez le noyau pour correspondre à l'environnement drlnd en utilisant le menu Kernel déroulant.

Vous voulez en savoir plus?
Venez apprendre avec nous dans le programme de nanodegree en renforcement profond à Udacity!
