/ Machine Learning

A research framework for fast prototyping of reinforcement learning algorithms

A research framework for fast prototyping of reinforcement learning algorithms

Dopamine

Dopamine is a research framework for fast prototyping of reinforcement learning algorithms. It aims to fill the need for a small, easily grokked codebase in which users can freely experiment with wild ideas (speculative research).

Our design principles are:

  • Easy experimentation: Make it easy for new users to run benchmark experiments.
  • Flexible development: Make it easy for new users to try out research ideas.
  • Compact and reliable: Provide implementations for a few, battle-tested algorithms.
  • Reproducible: Facilitate reproducibility in results.

In the spirit of these principles, this first version focuses on supporting the state-of-the-art, single-GPU Rainbow agent (Hessel et al., 2018) applied to Atari 2600 game-playing (Bellemare et al., 2013). Specifically, our Rainbow agent implements the three components identified as most important by Hessel et al.:

  • n-step Bellman updates (see e.g. Mnih et al., 2016)
  • Prioritized experience replay (Schaul et al., 2015)
  • Distributional reinforcement learning (C51; Bellemare et al., 2017)

Instructions

Install via source

Installing from source allows you to modify the agents and experiments as
you please, and is likely to be the pathway of choice for long-term use.
These instructions assume that you've already set up your favourite package
manager (e.g. apt on Ubuntu, homebrew on Mac OS X), and that a C++ compiler
is available from the command-line (almost certainly the case if your favourite
package manager works).

The instructions below assume that you will be running Dopamine in a virtual
environment
. A virtual environment lets you control which dependencies are
installed for which program; however, this step is optional and you may choose
to ignore it.

Dopamine is a Tensorflow-based framework, and we recommend you also consult
the Tensorflow documentation
for additional details.

Finally, these instructions are for Python 2.7. While Dopamine is Python 3
compatible, there may be some additional steps needed during installation.

Ubuntu

First set up the virtual environment:

sudo apt-get install virtualenv
virtualenv --python=python2.7 dopamine-env
source dopamine-env/bin/activate

This will create a directory called dopamine-env in which your virtual
environment lives. The last command activates the environment.

Then, install the dependencies to Dopamine:

sudo apt-get install cmake zlib1g-dev
pip install absl-py atari-py gin-config gym opencv-python tensorflow

During installation, you may safely ignore the following error message:
tensorflow 1.10.1 has requirement numpy<=1.14.5,>=1.13.3, but you'll have
numpy 1.15.1 which is incompatible
.

Finally, download the Dopamine source, e.g.

git clone https://github.com/google/dopamine.git

Mac OS X

First set up the virtual environment:

pip install virtualenv
virtualenv --python=python2.7 dopamine-env
source dopamine-env/bin/activate

This will create a directory called dopamine-env in which your virtual
environment lives. The last command activates the environment.

Then, install the dependencies to Dopamine:

brew install cmake zlib
pip install absl-py atari-py gin-config gym opencv-python tensorflow

During installation, you may safely ignore the following error message:
tensorflow 1.10.1 has requirement numpy<=1.14.5,>=1.13.3, but you'll have
numpy 1.15.1 which is incompatible
.

Finally, download the Dopamine source, e.g.

git clone https://github.com/google/dopamine.git

Running tests

You can test whether the installation was successful by running the following:

cd dopamine
export PYTHONPATH=${PYTHONPATH}:.
python tests/atari_init_test.py

The entry point to the standard Atari 2600 experiment is
dopamine/atari/train.py.
To run the basic DQN agent,

python -um dopamine.atari.train \
  --agent_name=dqn \
  --base_dir=/tmp/dopamine \
  --gin_files='dopamine/agents/dqn/configs/dqn.gin'

By default, this will kick off an experiment lasting 200 million frames.
The command-line interface will output statistics about the latest training
episode:

[...]
I0824 17:13:33.078342 140196395337472 tf_logging.py:115] gamma: 0.990000
I0824 17:13:33.795608 140196395337472 tf_logging.py:115] Beginning training...
Steps executed: 5903 Episode length: 1203 Return: -19.

To get finer-grained information about the process,
you can adjust the experiment parameters in
dopamine/agents/dqn/configs/dqn.gin,
in particular by reducing Runner.training_steps and Runner.evaluation_steps,
which together determine the total number of steps needed to complete an
iteration. This is useful if you want to inspect log files or checkpoints, which
are generated at the end of each iteration.

More generally, the whole of Dopamine is easily configured using the
gin configuration framework.

Install as a library

An easy, alternative way to install Dopamine is as a Python library:

sudo apt-get install cmake  # Or brew install, see Mac OS X instructions above.
pip install dopamine-rl
pip install atari-py

Depending on your particular system configuration, you may also need to install
zlib (see "Install via source" above).

Running tests

From the root directory, tests can be run with a command such as:

python -um tests.agents.rainbow.rainbow_agent_test

GitHub