[PYTHON] DeepMind Enhanced Learning Framework Acme

Framework DeepMind pour un apprentissage amélioré Acme (a), que j'ai un peu mentionné dans Article précédent Article d'introduction sur le cadre de recherche pour l'apprentissage par renforcement)

(Comme d'habitude, la réimpression japonaise de l 'article en anglais publié sur mon blog.)

1.Tout d'abord

Public du code (une partie de) du cadre pour l'apprentissage amélioré que les chercheurs de DeepMind utilisent réellement au quotidien en tant qu'OSS.

Acme fournit une API de boucle d'apprentissage simple, qui peut être grossièrement codée comme suit:

Boucle d'apprentissage


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

Acme prend en charge TensorFlow (* versions nocturnes spécifiques uniquement) et JAX en tant que réseaux. ..

J'utilise également Reverb pour la lecture d'expérience. (Mon Commentaire article 1 et Commentaire article 2)

Le Rapport technique le décrit comme "Acme: un cadre de recherche pour l'apprentissage par renforcement distribué", mais [FAQ](https: / D'après ce que j'ai lu (/github.com/deepmind/acme/blob/master/docs/faq.md), malheureusement, l'agent d'apprentissage distribué n'a pas été publié et il semble que le moment de le publier n'a pas été décidé.

2. Installation

Il est publié avec le nom de package "dm-acme" dans PyPI.

Il y a cinq options qui peuvent être spécifiées: "jax", "tf", "envs", "reverb" et "testing". Personnellement, je pense que "reverb" pour la reproduction de l'expérience est nécessaire, et que ce soit "tf" ou "jax" est nécessaire. Surtout pour TensorFlow, `` 'tf-nightly == 2.4.0.dev20200708' 'est spécifié, et la compatibilité de l'environnement est gâchée, alors installez-le dans un environnement calme et propre avec l'option d'installation Acme. recommander.

En spécifiant "envs", l'environnement pour un apprentissage amélioré tel que "dm-control" et "gym" est installé. ("dm-control" nécessite une licence de MuJoCo)

Installation de la version TensorFlow


pip install dm-acme[reverb,tf]

Version JAX d'installation


pip install dm-acme[reverb,jax]

3. Environnement

Vous pouvez utiliser un environnement conforme à l 'API de l'environnement DeepMind. La grande différence avec gym.Env est que les fonctions membres telles que step (action) renvoient une classe unique appelée dm_env.TimeStep au lieu de tuple. Dans la classe TimeStep, en plus des valeurs observées et des récompenses, les étapes (transitions) sont au début ( StepType.FIRST), au milieu (StepType.MID) et en dernier ( StepType.LAST) de l'épisode. Il contient également des informations sur lequel il s'agit.

ʻAcme.wrappers.GymWrapper est fourni pour gym.Env`, et vous pouvez l'utiliser avec Acme simplement en l'enveloppant.

gym.Utilisation d'Env


import acme
import gym

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

4. Agent

Les agents mis en œuvre peuvent être trouvés à ici. En août 2020, 11 agents sont disponibles.

Ces implémentations sont implémentées en étendant ʻacme.agents.agent.Agent`, donc lors de l'implémentation d'un algorithme personnalisé, il est (probablement) possible de l'étendre également.

Les agents fournis ci-dessus sont les bibliothèques d'apprentissage en profondeur de DeepMind Sonnet (TensorFlow) ou Haiku. dm-haiku) (JAX) est utilisé. Par conséquent, afin de définir le réseau interne de l'agent implémenté (pour autant que je l'ai vérifié brièvement), on suppose qu'un modèle d'apprentissage en profondeur est construit et transmis par Sonnet ou Haiku. (Bien sûr, cela n'a rien à voir avec l'interface, donc cela n'a pas d'importance lors de sa mise en œuvre indépendante.)

5. Tutoriel

Acme fournit un cahier de démarrage rapide (https://github.com/deepmind/acme/blob/master/examples/quickstart.ipynb). De plus, si vous disposez d'une licence pour MuJoCo, vous pouvez utiliser Tutorial Notebook. Vous pouvez également essayer tutorial.ipynb).

6. Conclusion

Nous avons étudié les grandes lignes d'Acme, un cadre d'apprentissage amélioré publié par DeepMind. Le même code que les entreprises de première ligne utilisent habituellement est fourni (bien qu'en partie), ce qui est très intéressant, y compris les développements futurs.

Cependant, la version de TensorFlow est fixée à une certaine version la nuit, et il semble qu'il soit un peu difficile à utiliser pour les utilisateurs généraux.

Je voudrais continuer à surveiller la situation.

De côté

Code pour afficher l'environnement Gym sur un notebook, comme si le code avait été rayé dans Quickstart Est emballé et fourni en tant que Gym-Notebook-Wrapper. (Article explicatif) Si cela vous intéresse, veuillez l'utiliser.

Recommended Posts

DeepMind Enhanced Learning Framework Acme
[Renforcement de l'apprentissage] Bomb: DeepMind Experience Replay Framework Reverb
[Introduction] Renforcer l'apprentissage
Apprentissage par renforcement futur_2
Apprentissage par renforcement futur_1
Apprentissage amélioré 1 installation de Python
Renforcer l'apprentissage 3 Installation d'OpenAI
Renforcer l'apprentissage de la troisième ligne
[Renforcer l'apprentissage] Tâche de bandit
Renforcer l'apprentissage 1 édition introductive
Renforcer l'apprentissage 18 Colaboratory + Acrobat + ChainerRL
Apprentissage amélioré 7 Sortie du journal des données d'apprentissage
Renforcer l'apprentissage 17 Colaboratory + CartPole + ChainerRL
Renforcer l'apprentissage 28 collaboratif + OpenAI + chainerRL
Renforcement de l'apprentissage 2 Installation de chainerrl
[Renforcer l'apprentissage] Suivi par multi-agents
Apprentissage amélioré à partir de Python
Renforcer l'apprentissage 20 Colaboratoire + Pendule + ChainerRL
Apprentissage par renforcement 5 Essayez de programmer CartPole?
Apprentissage par renforcement 9 Remodelage magique ChainerRL
Renforcer l'apprentissage Apprendre d'aujourd'hui
Apprentissage par renforcement profond 1 Introduction au renforcement de l'apprentissage
Apprentissage par renforcement profond 2 Mise en œuvre de l'apprentissage par renforcement
Apprentissage par renforcement: accélérer l'itération de la valeur
[Renforcer l'apprentissage] Enquête sur l'utilisation de la bibliothèque Experience Replay de DeepMind Reverb [Client Edition]
Renforcer l'apprentissage 21 Colaboratoire + Pendule + ChainerRL + A2C
TF2RL: bibliothèque d'apprentissage améliorée pour TensorFlow2.x
Apprentissage par renforcement 34 Créez des vidéos d'agent en continu
Renforcer l'apprentissage 13 Essayez Mountain_car avec ChainerRL.
Construction d'un environnement d'apprentissage amélioré Python + Unity
Renforcer l'apprentissage 22 Colaboratory + CartPole + ChainerRL + A3C
Renforcer l'apprentissage 8 Essayez d'utiliser l'interface utilisateur de Chainer
Renforcer l'apprentissage 24 Colaboratory + CartPole + ChainerRL + ACER
Deep Strengthening Learning 3 Édition pratique: Briser des blocs
J'ai essayé l'apprentissage par renforcement avec PyBrain
Apprenez en faisant! Apprentissage par renforcement profond_1