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.)
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é.
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]
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"))
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.)
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).
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.
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