Gym ist ein Toolkit zur Entwicklung und zum Vergleich von Algorithmen für bestärkendes Lernen. Es unterstützt das Lehren von Agenten, Entscheidungen in verschiedenen simulierten Umgebungen zu treffen.
Detaillierte Beschreibung des OpenAI Gym Projekts
Projektübersicht
OpenAI Gym ist eine Open-Source-Python-Bibliothek, die speziell für die Entwicklung und den Vergleich von Reinforcement-Learning-Algorithmen entwickelt wurde. Sie bietet eine standardisierte API, um Lernalgorithmen und Umgebungen zu verbinden, und stellt eine Reihe von Umgebungen bereit, die diesem API-Standard entsprechen. Seit ihrer Veröffentlichung hat sich die Gym-API zum Standard im Bereich des Reinforcement Learning entwickelt.
⚠️ Wichtiger Hinweis
Änderung des Projektwartungsstatus: Das Team, das Gym seit 2021 gewartet hat, hat alle zukünftigen Entwicklungsarbeiten auf Gymnasium übertragen, einen direkten Ersatz für Gym (der mit import gymnasium as gym
verwendet werden kann). Gym wird keine zukünftigen Updates mehr erhalten, und es wird empfohlen, dass Benutzer so schnell wie möglich zu Gymnasium wechseln.
Kernfunktionen
Standardisierte API
- Bietet eine einheitliche Schnittstelle für die Kommunikation zwischen Reinforcement-Learning-Algorithmen und Umgebungen
- Vereinfacht die Erstellung und Interaktion mit Umgebungen
- Ist zum API-Standard im Bereich des Reinforcement Learning geworden
Umfangreiche Umgebungsbibliothek
- Enthält eine große Anzahl vordefinierter Reinforcement-Learning-Umgebungen
- Unterstützt verschiedene Arten von Aufgaben und Herausforderungen
- Umgebungen folgen einem einheitlichen Schnittstellenstandard
Installationsmethoden
Basisinstallation
pip install gym
Installation spezifischer Umgebungsfamilien
# Installation der Atari-Umgebungsabhängigkeiten
pip install gym[atari]
# Installation aller Umgebungsabhängigkeiten
pip install gym[all]
# Installation der MuJoCo-Umgebungsabhängigkeiten (neueste Version)
pip install gym[mujoco]
# Installation der MuJoCo-Umgebungsabhängigkeiten (ältere Version)
pip install gym[mujoco_py]
Systemunterstützung
- Python-Versionen: Unterstützt Python 3.7, 3.8, 3.9, 3.10
- Betriebssysteme: Offiziell unterstützt werden Linux und macOS
- Windows: PRs werden akzeptiert, aber es gibt keinen offiziellen Support
Grundlegendes Nutzungsbeispiel
import gym
# Umgebung erstellen
env = gym.make("CartPole-v1")
# Umgebung zurücksetzen
observation, info = env.reset(seed=42)
# Umgebung-Interaktionsschleife
for _ in range(1000):
# Zufällige Aktion auswählen
action = env.action_space.sample()
# Aktion ausführen
observation, reward, terminated, truncated, info = env.step(action)
# Prüfen, ob ein Reset erforderlich ist
if terminated or truncated:
observation, info = env.reset()
# Umgebung schließen
env.close()
Zugehöriges Ökosystem
Empfohlene Lernbibliotheken
CleanRL - Lernbibliothek basierend auf der Gym-API
- Ausgerichtet auf Reinforcement-Learning-Anfänger
- Bietet hervorragende Referenzimplementierungen
Tianshou - Lernbibliothek für erfahrene Benutzer
- Unterstützt komplexe Algorithmusänderungen
- Flexibles Design
RLlib - Lernbibliothek zur Unterstützung von verteiltem Training
- Unterstützt verteiltes Training und Inferenz
- Extrem umfangreiche Funktionen
PettingZoo - Multi-Agenten-Umgebungsbibliothek
- Ähnlich wie Gym, aber unterstützt Multi-Agenten-Umgebungen
Versionsverwaltung
Gym verwendet eine strenge Versionskontrolle, um die Reproduzierbarkeit zu gewährleisten:
- Alle Umgebungen enden mit einem Versionssuffix (z. B. "_v0")
- Wenn sich eine Umgebungsänderung auf die Lernergebnisse auswirken kann, wird die Versionsnummer erhöht
- Gewährleistet die Reproduzierbarkeit und Konsistenz von Experimenten
MuJoCo-Umgebungsaktualisierung
- Die neuesten "_v4"- und zukünftigen Versionen sind nicht mehr von
mujoco-py
abhängig - Verwenden stattdessen
mujoco
als erforderliche Abhängigkeit - Ältere Versionen der Umgebung bleiben erhalten, werden aber nicht mehr gewartet
Dokumentation und Ressourcen
- Offizielle Dokumentation: https://www.gymlibrary.dev/
- Discord-Server: Entwicklungsdiskussions-Community
- GitHub-Repository: https://github.com/openai/gym
Akademische Zitation
Das Projekt-Whitepaper ist auf arXiv verfügbar, Zitationsformat:
@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},
}
Projektstatuszusammenfassung
OpenAI Gym hat als bahnbrechendes Werkzeug im Bereich des Reinforcement Learning einen Industriestandard etabliert und ein riesiges Ökosystem gefördert. Obwohl das ursprüngliche Projekt nicht mehr aktiv gewartet wird, übernimmt sein Nachfolger Gymnasium alle Kernfunktionen und gewährleistet so die kontinuierliche Weiterentwicklung der Community. Für neue Projekte wird dringend empfohlen, Gymnasium direkt zu verwenden, um die neuesten Funktionen und kontinuierlichen Support zu erhalten.