Apprentissage par renforcement : une introduction
Réplication Python pour le livre de Sutton & Barto Reinforcement Learning: An Introduction (2e édition)
Si vous avez une confusion sur le code ou si vous souhaitez signaler un bug, veuillez ouvrir un problème au lieu de m'envoyer un e-mail directement, et malheureusement je n'ai pas de réponses aux exercices pour le livre.
Contenu
Chapitre 1
- Tic-Tac-Toe
Chapitre 2
- Figure 2.1 : Un problème de bandit exemplaire issu du banc d'essai à 10 bras
- Figure 2.2 : Performance moyenne des méthodes de valeur d'action epsilon-gourmandes sur le banc d'essai à 10 bras
- Figure 2.3 : Estimations initiales optimistes de la valeur de l’action
- Figure 2.4 : Performance moyenne de la sélection des actions UCB sur le banc d'essai à 10 bras
- Figure 2.5 : Performance moyenne de l’algorithme gradient bandit
- Figure 2.6 : Une étude paramétrique des différents algorithmes Bandit
Chapitre 3
- Figure 3.2 : Exemple de grille avec politique aléatoire
- Figure 3.5 : Solutions optimales pour l'exemple de GridWorld
Chapitre 4
- Figure 4.1 : Convergence de l’évaluation itérative des politiques sur un petit monde en grille
- Figure 4.2 : Problème de location de voiture de Jack
- Figure 4.3 : La solution au problème du joueur
Chapitre 5
- Figure 5.1 : Fonctions d'état-valeur approximatives pour la politique du blackjack
- Figure 5.2 : La fonction optimale de politique et de valeur d'état pour le blackjack trouvée par Monte Carlo ES
- Figure 5.3 : Échantillonnage par importance pondéré
- Figure 5.4 : Échantillonnage d’importance ordinaire avec des estimations étonnamment instables
Chapitre 6
- Exemple 6.2 : Marche aléatoire
- Figure 6.2 : Mise à jour par lots
- Figure 6.3 : Sarsa appliqué au monde en grille venteux
- Figure 6.4 : Tâche de marche sur falaise
- Figure 6.6 : Performances intermédiaires et asymptotiques des méthodes de contrôle TD
- Figure 6.7 : Comparaison du Q-learning et du Double Q-learning
Chapitre 7
- Figure 7.2 : Performance des méthodes TD en n étapes sur une marche aléatoire à 19 états
Chapitre 8
- Figure 8.2 : Courbes d'apprentissage moyennes pour les agents Dyna-Q variant selon leur nombre d'étapes de planification
- Figure 8.4 : Performance moyenne des agents Dyna sur une tâche bloquante
- Figure 8.5 : Performance moyenne des agents Dyna sur une tâche raccourcie
- Exemple 8.4 : Le balayage prioritaire réduit considérablement le temps d'apprentissage de la tâche du labyrinthe Dyna.
- Figure 8.7 : Comparaison de l'efficacité des mises à jour attendues et des exemples de mises à jour
- Figure 8.8 : Efficacité relative des différentes distributions de mises à jour
Chapitre 9
- Figure 9.1 : Algorithme de Monte Carlo à gradient sur la tâche de marche aléatoire à 1 000 états
- Figure 9.2 : Algorithme TD en n étapes semi-gradient sur la tâche de marche aléatoire à 1 000 états
- Figure 9.5 : Base de Fourier vs polynômes sur la tâche de marche aléatoire à 1 000 états
- Figure 9.8 : Exemple de l'effet de la largeur des caractéristiques sur la généralisation initiale et la précision asymptotique
- Figure 9.10 : Pavage unique et pavage multiple sur la tâche de marche aléatoire à 1 000 états
Chapitre 10
- Figure 10.1 : Fonction de coût restant à parcourir pour la tâche Mountain Car en une seule exécution
- Figure 10.2 : Courbes d'apprentissage pour la tâche Sarsa en voiture de montagne à semi-gradient
- Figure 10.3 : Performance en une étape ou en plusieurs étapes du Sarsa semi-gradient lors de la tâche Mountain Car
- Figure 10.4 : Effet de l'alpha et du n sur les performances précoces du Sarsa semi-gradient à n étapes
- Figure 10.5 : Sarsa semi-gradient différentiel sur la tâche de mise en file d'attente de contrôle d'accès
Chapitre 11
- Figure 11.2 : Contre-exemple de Baird
- Figure 11.6 : Comportement de l'algorithme TDC sur le contre-exemple de Baird
- Figure 11.7 : Comportement de l'algorithme ETD en attente sur le contre-exemple de Baird
Chapitre 12
- Figure 12.3 : Algorithme de retour λ hors ligne sur une marche aléatoire à 19 états
- Figure 12.6 : Algorithme TD(λ) sur marche aléatoire à 19 états
- Figure 12.8 : Véritable algorithme TD(λ) en ligne sur une marche aléatoire à 19 états
- Figure 12.10 : Sarsa(λ) avec remplacement des traces sur Mountain Car
- Figure 12.11 : Comparaison récapitulative des algorithmes Sarsa(λ) sur Mountain Car
Chapitre 13
- Exemple 13.1 : Couloir court avec actions commutées
- Figure 13.1 : RENFORCER le monde des réseaux à corridors courts
- Figure 13.2 : RENFORCER avec la ligne de base sur le monde en grille à couloirs courts
Environnement
- python 3.6
- numpy
- matplotlib
- né de la mer
- tqdm
Usage
Tous les fichiers sont autonomes
python any_file_you_want.py
Contribution
Si vous souhaitez contribuer à quelques exemples manquants ou corriger certains bugs, n'hésitez pas à ouvrir un ticket ou à faire une pull request.