Gym est une boîte à outils pour développer et comparer des algorithmes d'apprentissage par renforcement. Il prend en charge l'enseignement aux agents comment prendre des décisions dans divers environnements simulés.
Présentation détaillée du projet OpenAI Gym
Aperçu du projet
OpenAI Gym est une bibliothèque Python open source spécialement conçue pour le développement et la comparaison d'algorithmes d'apprentissage par renforcement. Elle fournit une API standardisée pour connecter les algorithmes d'apprentissage et les environnements, et propose un ensemble d'environnements conformes à cette norme API. Depuis sa publication, l'API de Gym est devenue la norme dans le domaine de l'apprentissage par renforcement.
⚠️ Déclaration importante
Changement d'état de la maintenance du projet : L'équipe qui a maintenu Gym depuis 2021 a transféré tous les futurs travaux de développement vers Gymnasium, un remplacement direct de Gym (qui peut être utilisé avec import gymnasium as gym
). Gym ne recevra plus de mises à jour futures et il est recommandé aux utilisateurs de passer à Gymnasium dès que possible.
Caractéristiques principales
API standardisée
- Fournit une interface unifiée pour la communication entre les algorithmes d'apprentissage par renforcement et les environnements.
- Simplifie le processus de création et d'interaction avec les environnements.
- Est devenue la norme API dans le domaine de l'apprentissage par renforcement.
Riche bibliothèque d'environnements
- Contient une grande quantité d'environnements d'apprentissage par renforcement prédéfinis.
- Prend en charge différents types de tâches et de défis.
- Les environnements respectent une norme d'interface unifiée.
Méthode d'installation
Installation de base
pip install gym
Installation de familles d'environnements spécifiques
# Installer les dépendances pour les environnements Atari
pip install gym[atari]
# Installer toutes les dépendances pour tous les environnements
pip install gym[all]
# Installer les dépendances pour les environnements MuJoCo (dernière version)
pip install gym[mujoco]
# Installer les dépendances pour les environnements MuJoCo (ancienne version)
pip install gym[mujoco_py]
Support système
- Version de Python : Supporte Python 3.7, 3.8, 3.9, 3.10
- Systèmes d'exploitation : Support officiel pour Linux et macOS
- Windows : Les PR (Pull Requests) sont acceptées, mais pas de support officiel
Exemple d'utilisation basique
import gym
# Créer un environnement
env = gym.make("CartPole-v1")
# Réinitialiser l'environnement
observation, info = env.reset(seed=42)
# Boucle d'interaction avec l'environnement
for _ in range(1000):
# Choisir une action aléatoire
action = env.action_space.sample()
# Exécuter l'action
observation, reward, terminated, truncated, info = env.step(action)
# Vérifier si une réinitialisation est nécessaire
if terminated or truncated:
observation, info = env.reset()
# Fermer l'environnement
env.close()
Écosystème associé
Bibliothèques d'apprentissage recommandées
CleanRL - Bibliothèque d'apprentissage basée sur l'API Gym
- Destinée aux débutants en apprentissage par renforcement
- Fournit d'excellentes implémentations de référence
Tianshou - Bibliothèque d'apprentissage destinée aux utilisateurs expérimentés
- Prend en charge les modifications complexes d'algorithmes
- Conception flexible
RLlib - Bibliothèque d'apprentissage prenant en charge l'entraînement distribué
- Prend en charge l'entraînement et l'inférence distribués
- Fonctionnalités extrêmement riches
PettingZoo - Bibliothèque d'environnements multi-agents
- Similaire à Gym mais prend en charge les environnements multi-agents
Gestion des versions
Gym utilise un contrôle de version strict pour garantir la reproductibilité :
- Tous les environnements se terminent par un suffixe de version (par exemple, "_v0")
- Le numéro de version est incrémenté lorsque les modifications de l'environnement peuvent affecter les résultats de l'apprentissage
- Assure la reproductibilité et la cohérence des expériences
Mise à jour des environnements MuJoCo
- Les dernières versions "_v4" et les versions futures ne dépendent plus de
mujoco-py
- Utilise désormais
mujoco
comme dépendance requise - Les anciennes versions des environnements sont conservées mais ne sont plus maintenues
Documentation et ressources
- Documentation officielle : https://www.gymlibrary.dev/
- Serveur Discord : Communauté de discussion sur le développement
- Dépôt GitHub : https://github.com/openai/gym
Citation académique
Le livre blanc du projet est disponible sur arXiv, format de citation :
@misc{1606.01540,
Author = {Greg Brockman and Vicki Cheung and Ludwig Pettersson and Jonas Schneider and John Schulman and Jie Tang and Wojciech Zaremba},
Title = {OpenAI Gym},
Year = {2016},
Eprint = {arXiv:1606.01540},
}
Résumé de l'état du projet
OpenAI Gym, en tant qu'outil pionnier dans le domaine de l'apprentissage par renforcement, a établi une norme industrielle et a favorisé un vaste écosystème. Bien que le projet original ne soit plus activement maintenu, son successeur, Gymnasium, hérite de toutes les fonctionnalités de base, assurant ainsi le développement continu de la communauté. Pour les nouveaux projets, il est fortement recommandé d'utiliser directement Gymnasium pour bénéficier des dernières fonctionnalités et d'un support continu.