Description
PlaNet est un algorithme d'apprentissage par renforcement purement basé sur un modèle, conçu pour résoudre des tâches de contrôle directement à partir d'entrées pixelisées. Il y parvient en apprenant une séquence compacte d'états cachés qui modélisent la dynamique du monde. Pour la planification, PlaNet encode d'abord l'historique des images passées dans l'état actuel. À partir de cet état, il prédit efficacement les récompenses futures pour diverses séquences d'actions dans son espace latent appris.
L'algorithme fonctionne en exécutant la première action de la séquence la plus prometteuse identifiée par la planification. Après avoir observé l'image suivante, il replanifie. Ce processus itératif permet à PlaNet de prendre des décisions basées sur un modèle prédictif de l'environnement, plutôt que de se fier uniquement à l'essai et erreur. Un avantage clé de PlaNet est son efficacité, nécessitant considérablement moins d'interactions avec l'environnement par rapport à de nombreuses méthodes d'apprentissage par renforcement sans modèle, tout en atteignant des performances compétitives.
Ce projet propose l'implémentation open-source de l'agent PlaNet, permettant aux chercheurs et aux développeurs d'utiliser et de s'appuyer sur ses capacités. L'implémentation comprend des composants pour l'apprentissage de modèles de transition latents, des réseaux encodeurs et décodeurs, ainsi que des scripts pour l'entraînement d'agents sur diverses tâches. Des instructions sont fournies pour entraîner un agent, y compris l'installation des dépendances et les arguments de ligne de commande pour la sélection des tâches et la configuration des paramètres.
Le dépôt PlaNet est archivé et en lecture seule depuis le 28 mai 2024. Cependant, le code reste disponible pour inspection et utilisation. Des modifications du code peuvent être apportées en explorant des répertoires tels que `scripts/configs.py` pour les ajustements de paramètres, `scripts/tasks.py` pour les modifications d'environnement, et `models` et `networks` pour modifier respectivement les modèles de transition latents et les architectures de réseaux neuronaux. Les conseils pour le développement incluent l'utilisation d'une configuration de débogage pour des itérations plus rapides et l'exploration de différentes stratégies d'isolation d'environnement.
Le projet a été testé sous Ubuntu 18 et nécessite des versions spécifiques de paquets, notamment `tensorflow-gpu==1.13.1`, `tensorflow_probability==0.6.0`, `dm_control`, `gym`, `scikit-image`, `scipy`, `ruamel.yaml`, et `matplotlib`. Il est important de noter qu'il ne s'agit pas d'un produit officiel de Google. Le site web du projet et un PDF de l'article associé fournissent des détails supplémentaires sur la méthode et ses applications.
Points forts de PlaNet
Apprentissage par renforcement basé sur un modèle
Planification à partir de pixels
Dynamiques latentes apprises
Prédiction efficace des récompenses futures
Comparaison avec les méthodes sans modèle
Réduction des interactions avec l'environnement
Implémentation open-source
Modèles de transition latents
Réseaux encodeurs et décodeurs
Entraînement d'agents d'apprentissage par renforcement
Tâches de contrôle à partir d'images
Premiers pas avec PlaNet
Accéder au modèle : Cloner le dépôt GitHub.
Configurer l'environnement : Installer les dépendances Python, y compris TensorFlow et dm_control.
Intégrer via API : Exécuter les scripts d'entraînement avec les paramètres et répertoires de logs spécifiés.
Optimiser : Modifier les fichiers de configuration pour les tâches, les paramètres et les architectures de réseaux.
Cas d'utilisation de PlaNet
- Contrôle robotique
- Navigation autonome
- Jeu
- Environnements simulés
- Apprentissage par renforcement visuel








