[PYTHON] DeepMind Enhanced Learning Framework Acme

DeepMinds Framework für erweitertes Lernen Acme (a), das ich in Vorheriger Artikel ein wenig erwähnt habe Einführungsartikel über den Forschungsrahmen für das verstärkte Lernen)

(Wie üblich wurde der japanische Nachdruck des englischen Artikels in meinem Blog veröffentlicht.)

1. Zuallererst

Öffentlich des Codes (Teil davon) des Frameworks für verbessertes Lernen, das DeepMind-Forscher tatsächlich täglich als OSS verwenden.

Acme bietet eine einfache Lernschleifen-API, die grob wie folgt codiert werden kann:

Lernschleife


loop = acme.EnvironmentLoop(environment, agent)
loop.run()

Acme unterstützt TensorFlow (* nur bestimmte nächtliche Builds) und JAX als Netzwerke. ..

Ich verwende auch Reverb für die Wiedergabe von Erfahrungen. (Mein Kommentar Artikel 1 und Kommentar Artikel 2)

Der Technische Bericht beschreibt ihn als "Acme: Ein Forschungsrahmen für verteiltes Reinforcement-Lernen", aber als [FAQ](https: / Soweit ich gelesen habe (/github.com/deepmind/acme/blob/master/docs/faq.md), wurde der verteilte Lernagent leider nicht veröffentlicht, und es scheint, dass der Zeitpunkt für die Veröffentlichung noch nicht festgelegt wurde.

2. Installation

Es ist veröffentlicht mit dem Paketnamen "dm-acme" in PyPI.

Es können fünf Optionen angegeben werden: "jax", "tf", "envs", "reverb" und "testing". Persönlich denke ich, dass "Reverb" für die Erfahrungswiedergabe erforderlich ist und entweder "tf" oder "jax" erforderlich ist. Speziell für TensorFlow wird "tf-nightly == 2.4.0.dev20200708" angegeben, und die Kompatibilität der Umgebung wird verworfen. Installieren Sie es daher in einer ruhigen und sauberen Umgebung mit der Acme-Installationsoption. empfehlen.

Durch die Angabe von "envs" wird die Umgebung für erweitertes Lernen wie "dm-control" und "gym" installiert. ("dm-control" erfordert eine Lizenz von MuJoCo)

Installation TensorFlow-Version


pip install dm-acme[reverb,tf]

Installation der JAX-Version


pip install dm-acme[reverb,jax]

3. Umwelt

Sie können eine Umgebung verwenden, die der DeepMind Environment API entspricht. Der große Unterschied zu "gym.Env" besteht darin, dass Mitgliedsfunktionen wie "step (action)" eine eindeutige Klasse namens "dm_env.TimeStep" anstelle von "tuple" zurückgeben. In der TimeStep-Klasse befinden sich die Schritte (Übergänge) zusätzlich zu den beobachteten Werten und Belohnungen am Anfang (StepType.FIRST), in der Mitte ( StepType.MID) und am Ende (StepType.LAST) der Episode. Es enthält auch Informationen darüber, um welches es sich handelt.

Acme.wrappers.GymWrapper wird für gym.Env bereitgestellt, und Sie können es mit Acme verwenden, indem Sie es einfach einwickeln.

gym.Verwendung von Env


import acme
import gym

env = acme.wrappers.GymWrapper(gym.make("MountainCarContinuous-v0"))

4. Agent

Die implementierten Agenten finden Sie unter hier. Ab August 2020 stehen 11 Agenten zur Verfügung.

Diese Implementierungen werden durch Erweitern von "acme.agents.agent.Agent" implementiert. Wenn Sie also einen benutzerdefinierten Algorithmus implementieren, ist es möglich (und wahrscheinlich), ihn auch zu erweitern.

Die oben bereitgestellten Agenten sind DeepMinds Deep-Learning-Bibliotheken Sonnet (TensorFlow) oder Haiku. dm-haiku) (JAX) wird verwendet. Um das interne Netzwerk des implementierten Agenten zu definieren (soweit ich es kurz überprüft habe), wird daher angenommen, dass ein Deep-Learning-Modell von Sonnet oder Haiku erstellt und übergeben wird. (Natürlich hat es nichts mit der Schnittstelle zu tun, daher spielt es keine Rolle, wenn sie unabhängig implementiert wird.)

5. Tutorial

Acme bietet ein Schnellstart-Notizbuch (https://github.com/deepmind/acme/blob/master/examples/quickstart.ipynb). Wenn Sie eine Lizenz für MuJoCo haben, können Sie auch Tutorial Notebook verwenden. Sie können auch tutorial.ipynb) ausprobieren.

6. Fazit

Wir untersuchten die Umrisse von Acme, einem von DeepMind veröffentlichten Framework für verbessertes Lernen. Es wird derselbe Code bereitgestellt, den Front-Line-Unternehmen normalerweise verwenden (wenn auch teilweise), was sehr interessant ist, einschließlich zukünftiger Entwicklungen.

Die Version von TensorFlow ist jedoch nachts auf einen bestimmten Build festgelegt, und es scheint, dass die Verwendung für allgemeine Benutzer etwas schwierig ist.

Ich möchte die Situation weiterhin beobachten.

Beiseite

Code zum Anzeigen der Gym-Umgebung auf einem Notebook, z. B. der in [Quickstart] neu geschriebene Code (https://github.com/deepmind/acme/blob/master/examples/quickstart.ipynb) Wird als Gym-Notebook-Wrapper verpackt und bereitgestellt. (Erklärender Artikel) Wenn Sie daran interessiert sind, verwenden Sie es bitte.

Recommended Posts

DeepMind Enhanced Learning Framework Acme
[Lernen stärken] Bombe: DeepMind Experience Replay Framework Reverb
[Einführung] Stärkung des Lernens
Zukünftiges Verstärkungslernen_2
Zukünftiges Verstärkungslernen_1
Erweitertes Lernen 1 Python-Installation
Stärkung des Lernens 3 OpenAI-Installation
Stärkung des Lernens der dritten Zeile
[Lernen stärken] Banditenaufgabe
Stärkung des Lernens 1 Einführungsausgabe
Stärkung des Lernens 18 Colaboratory + Acrobat + ChainerRL
Verbessertes Lernen 7 Protokollieren Sie die Ausgabe von Lerndaten
Stärkung des Lernens 17 Colaboratory + CartPole + ChainerRL
Stärkung des Lernens 28 colaboratory + OpenAI + chainerRL
Stärkung des Lernens 2 Installation von Chainerrl
[Lernen stärken] Tracking durch Multi-Agent
Verbessertes Lernen ab Python
Stärkung des Lernens 20 Colaboratory + Pendulum + ChainerRL
Verstärkungslernen 5 Versuchen Sie, CartPole zu programmieren?
Verstärkungslernen 9 ChainerRL Magic Remodeling
Lernen stärken Lernen Sie von heute
Tiefe Stärkung des Lernens 1 Einführung in die Stärkung des Lernens
Tiefes Lernen der Verstärkung 2 Implementierung des Lernens der Verstärkung
Verstärktes Lernen: Beschleunigen Sie die Wertiteration
[Lernen stärken] Umfrage zur Verwendung der Experience Replay-Bibliothek von DeepMind Reverb [Client Edition]
Stärkung des Lernens 21 Labor + Pendel + ChainerRL + A2C
TF2RL: Erweiterte Lernbibliothek für TensorFlow2.x
Verstärkungslernen 34 Erstellen Sie fortlaufende Agentenvideos
Lernen stärken 13 Probieren Sie Mountain_car mit ChainerRL aus.
Python + Unity Verbesserte Erstellung von Lernumgebungen
Stärkung des Lernens 22 Colaboratory + CartPole + ChainerRL + A3C
Stärkung des Lernens 8 Versuchen Sie, die Chainer-Benutzeroberfläche zu verwenden
Stärkung des Lernens 24 Colaboratory + CartPole + ChainerRL + ACER
Deep Strengthing Learning 3 Praktische Ausgabe: Block Breaking
Ich habe versucht, mit PyBrain verstärkt zu lernen
Lerne beim Machen! Tiefes Verstärkungslernen_1