Beschreibung
PlaNet ist ein rein modellbasierter Reinforcement-Learning-Algorithmus, der entwickelt wurde, um Steuerungsaufgaben direkt aus Pixel-Inputs zu lösen. Dies erreicht er, indem er eine kompakte Sequenz von versteckten Zuständen lernt, die die Dynamik der Welt modellieren. Für die Planung kodiert PlaNet zunächst die Historie vergangener Bilder in den aktuellen Zustand. Von diesem Zustand aus sagt er effizient zukünftige Belohnungen für verschiedene Aktionssequenzen in seinem gelernten latenten Raum voraus.
Der Algorithmus arbeitet, indem er die erste Aktion der vielversprechendsten durch Planung identifizierten Sequenz ausführt. Nach Beobachtung des nächsten Bildes plant er neu. Dieser iterative Prozess ermöglicht es PlaNet, Entscheidungen auf der Grundlage eines prädiktiven Modells der Umgebung zu treffen, anstatt sich ausschließlich auf Versuch und Irrtum zu verlassen. Ein wesentlicher Vorteil von PlaNet ist seine Effizienz, da er im Vergleich zu vielen modellfreien Reinforcement-Learning-Methoden erheblich weniger Interaktion mit der Umgebung benötigt und dennoch eine wettbewerbsfähige Leistung erzielt.
Dieses Projekt bietet die Open-Source-Implementierung des PlaNet-Agenten, die es Forschern und Entwicklern ermöglicht, seine Fähigkeiten zu nutzen und darauf aufzubauen. Die Implementierung umfasst Komponenten für das Lernen latenter Übergangsmodelle, Encoder- und Decoder-Netzwerke sowie Skripte für das Training von Agenten für verschiedene Aufgaben. Anleitungen für das Training eines Agenten werden bereitgestellt, einschließlich der Installation von Abhängigkeiten und Kommandozeilenargumenten für die Aufgabenauswahl und Parameterkonfiguration.
Das PlaNet-Repository ist seit dem 28. Mai 2024 archiviert und schreibgeschützt. Der Code bleibt jedoch zur Überprüfung und Nutzung verfügbar. Modifikationen am Code können durch Erkundung von Verzeichnissen wie `scripts/configs.py` für Parameteranpassungen, `scripts/tasks.py` für Umgebungsmodifikationen und `models` sowie `networks` für die Änderung latenter Übergangsmodelle bzw. neuronaler Netzwerkarchitekturen vorgenommen werden. Tipps für die Entwicklung umfassen die Verwendung einer Debug-Konfiguration für schnellere Iterationen und die Erkundung verschiedener Strategien zur Umgebungsisolierung.
Das Projekt wurde unter Ubuntu 18 getestet und erfordert spezifische Paketversionen, darunter `tensorflow-gpu==1.13.1`, `tensorflow_probability==0.6.0`, `dm_control`, `gym`, `scikit-image`, `scipy`, `ruamel.yaml` und `matplotlib`. Es ist wichtig zu beachten, dass dies kein offizielles Google-Produkt ist. Die Projektwebsite und ein PDF des zugehörigen Papers liefern weitere Details zur Methode und ihren Anwendungen.
PlaNet im Überblick
Modellbasierter Reinforcement Learning
Planung aus Pixeln
Gelernte latente Dynamiken
Effiziente Vorhersage zukünftiger Belohnungen
Vergleich mit modellfreien Methoden
Reduzierte Umweltinteraktion
Open-Source-Implementierung
Latente Übergangsmodelle
Encoder- und Decoder-Netzwerke
Training von Reinforcement-Learning-Agenten
Steuerungsaufgaben aus Bildern
Erste Schritte mit PlaNet
Modell abrufen: Klonen Sie das GitHub-Repository.
Umgebung einrichten: Installieren Sie Python-Abhängigkeiten, einschließlich TensorFlow und dm_control.
Integration über API: Führen Sie Trainingsskripte mit angegebenen Parametern und Log-Verzeichnissen aus.
Optimieren: Modifizieren Sie Konfigurationsdateien für Aufgaben, Parameter und Netzwerkarchitekturen.
PlaNet's Anwendungsfälle
- Robotik-Steuerung
- Autonome Navigation
- Spiele spielen
- Simulierte Umgebungen
- Visuelles Reinforcement Learning








