TD 1 : Hands-On Reinforcement Learning
MSO 3.4 Apprentissage Automatique
Objectif du TD
Dans ce projet pratique, nous commencerons par mettre en œuvre un algorithme RL simple et nous l'appliquerons pour résoudre l'environnement CartPole-v1. Une fois que nous nous serons familiarisés avec le flux de travail de base, nous apprendrons à utiliser divers outils pour la formation, le contrôle et le partage de modèles d'apprentissage automatique, en appliquant ces outils à la formation d'un bras robotique.
Détails des fichiers python:
reinforce_cartpole.py: implemention de l'algorithme de RL en utilisant Pytorch
Classe PolicyNetwork : Définit un réseau neuronal simple pour servir de politique. Il s'agit d'un réseau neuronal feedforward avec une couche cachée et une fonction d'activation ReLU.
Fonction compute_returns : Calcule les rendements actualisés pour un épisode donné. Les rendements actualisés sont un composant crucial de l'algorithme REINFORCE. Elle calcule la somme des récompenses, actualisées par un facteur (gamma) pour les récompenses futures, puis normalise ces rendements.
Fonction reinforce : Implémente l'algorithme REINFORCE. Elle itère sur un nombre spécifié d'épisodes, interagit avec l'environnement, collecte des expériences (états, actions, récompenses), calcule les rendements et met à jour le réseau de politique en utilisant les rendements calculés et les log-probabilités.
Bloc principal : Entraîne le réseau de politique en utilisant l'algorithme REINFORCE, puis trace la récompense totale obtenue à chaque épisode pendant l'entraînement. Il enregistre le tracé généré dans un répertoire nommé 'plots'.
Traçage : Trace la récompense totale obtenue à chaque épisode pendant l'entraînement.
Enregistrement du tracé : Enregistre le tracé généré sous forme de fichier PNG dans le répertoire 'plots'.
a2c_sb3_cartpole.py:
implemention de l'algorithme de RL en utilisant stable_baselines3 et A2C algorithm.
a2c_sb3_panda_reach.py:
implemention du modele précedent avec l'environement PandaReachJointsDense-v2.
Lien vers Hugging face:
https://huggingface.co/MohamedKhalil
L'utilisation de la fonction push_to_hub a été sans succès. Donc le partage du modèle sur huggingface n'a pas abouti.