Skip to content

Instantly share code, notes, and snippets.

@AlexGrinch
Created May 26, 2016 11:53
Show Gist options
  • Save AlexGrinch/7ded81d4b97a2d4cdc9cfc6a749c1e17 to your computer and use it in GitHub Desktop.
Save AlexGrinch/7ded81d4b97a2d4cdc9cfc6a749c1e17 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"###### Authors: Aleksey Grinchuk (AlexGrinch), Mariya Popova (Mariewelt) ... and some hedgehog"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"env: THEANO_FLAGS='device=gpu0'\n"
]
}
],
"source": [
"#from __future__ import print_function \n",
"experiment_setup_name = \"tutorial.gym.atari.MsPacman-v0.cnn\"\n",
"\n",
"\n",
"#gym game title\n",
"GAME_TITLE = 'MsPacman-v0'\n",
"\n",
"#how many parallel game instances can your machine tolerate\n",
"N_PARALLEL_GAMES = 20\n",
"\n",
"#how long is one replay session from a batch\n",
"#since we have window-like memory (no recurrent layers), we can use relatively small session weights\n",
"replay_seq_len = 50\n",
"\n",
"\n",
"#theano device selection. GPU is, as always, in preference, but not required\n",
"%env THEANO_FLAGS='device=gpu0'"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# This tutorial is a showcase on how to use AgentNet for OpenAI Gym environments\n",
"\n",
"\n",
"* Pacman game as an example\n",
"* Training a simple lasagne neural network for Q_learning objective\n",
" * This example can be easily modified to use more difficult convolutional networks and/or recurrent agent memory. \n",
" \n",
"* Training via simple experience replay (explained below)\n",
"* Only using utility recurrent layers for simplicity of this example\n",
" * but adding a few RNNs or GRUs shouldn's be a problem\n",
"* the network is trained with a simple ten-step Q-learning for simplicity\n",
"\n",
"\n",
"## About OpenAI Gym\n",
"\n",
"* Its a recently published platform that basicly allows you to train agents in a wide variety of environments with near-identical interface.\n",
"* This is twice as awesome since now we don't need to write a new wrapper for every game\n",
"* Go check it out!\n",
" * Blog post - https://openai.com/blog/openai-gym-beta/\n",
" * Github - https://github.com/openai/gym\n",
" \n",
"### Installing it\n",
" * If nothing changed on their side, to run this, you bacically need to follow their install instructions - \n",
" \n",
"```\n",
"git clone https://github.com/openai/gym.git\n",
"cd gym\n",
"pip install -e .[all]\n",
"```\n",
"\n",
"## New to AgentNet and Lasagne?\n",
"* This is pretty much the basic tutorial for AgentNet, so it's okay not to know it.\n",
"* We only require surface level knowledge of theano and lasagne, so you can just learn them as you go.\n",
"* Alternatively, you can find Lasagne tutorials here:\n",
" * Official mnist example: http://lasagne.readthedocs.io/en/latest/user/tutorial.html\n",
" * From scratch: https://github.com/ddtm/dl-course/tree/master/Seminar4\n",
" * From theano: https://github.com/craffel/Lasagne-tutorial/blob/master/examples/tutorial.ipynb\n",
"\n",
"\n",
"## The library\n",
"\n",
"In this notebook we shall use [AgentNet](https://github.com/BladeCarrier/AgentNet/) library.\n",
"Agentnet, in essence, is an additional kit of lasagne layers that allow you to build custom recurrent layers.\n",
"Assuming you already have Bleeding Edge theano and lasagne, you can install it via\n",
"```\n",
"git clone https://github.com/yandexdataschool/AgentNet\n",
"cd AgentNet\n",
"python setup.py install\n",
"```\n",
"in whatever python, environment or container you exist. Alternatively, see docker install instructions in the [readme](https://github.com/yandexdataschool/AgentNet/blob/master/README.md).\n",
"\n",
"\n",
"Depending what python version do you use, in may be \n",
"* `python3 setup.py install` \\ `python2 setup.py install` if you are using a different python\n",
"* add sudo - `sudo python setup.py install` - if you have a superuser-installed python\n",
"* in case you have any problems - contact us or consider using a docker container (see above).\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Preprocess functions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"These functions allow us to preprocess original images from size of 210x160x3 (RGB images) to size of 110x84 (grayscale images)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import cv2\n",
"\n",
"def preprocess(image):\n",
" def_h = 84\n",
" def_w = 110\n",
" img = 0.299*image[:,:,0] + 0.587*image[:,:,1] + 0.114*image[:,:,2]\n",
" img = cv2.resize(img, (def_h, def_w))\n",
" img = np.expand_dims(img, axis=2)\n",
" return img"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def preprocess_tensor(tensor):\n",
" def_h = 84\n",
" def_w = 110\n",
" tnsr = np.zeros((tensor.shape[0], tensor.shape[1], def_w, def_h, 1))\n",
" for i in xrange(tensor.shape[0]):\n",
" for j in xrange(tensor.shape[1]):\n",
" img = 0.299*tensor[i,j,:,:,0] + 0.587*tensor[i,j,:,:,1] + 0.114*tensor[i,j,:,:,2]\n",
" tnsr[i,j,:,:,0] = cv2.resize(img, (def_h, def_w))\n",
" return tnsr"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def preprocess_tensor4(tensor):\n",
" def_h = 84\n",
" def_w = 110\n",
" tnsr = np.zeros((tensor.shape[0], def_w, def_h, 1))\n",
" for i in xrange(tensor.shape[0]):\n",
" img = 0.299*tensor[i,:,:,0] + 0.587*tensor[i,:,:,1] + 0.114*tensor[i,:,:,2]\n",
" tnsr[i,:,:,0] = cv2.resize(img, (def_h, def_w))\n",
" return tnsr"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Experiment setup\n",
"* Here we basically just load the game"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:33:10,975] Making new env: MsPacman-v0\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7ffb08de9e90>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7ffb093c3450>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import gym\n",
"atari = gym.make(GAME_TITLE)\n",
"atari.reset()\n",
"plt.imshow(atari.render('rgb_array'))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7ffb06c21b10>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7ffb06ce2410>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(preprocess(atari.render('rgb_array'))[:,:,0], cmap='gray', interpolation='nearest')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Game Parameters\n",
"* observation dimensions, actions, etc"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['NOOP', 'UP', 'RIGHT', 'LEFT', 'DOWN', 'UPRIGHT', 'UPLEFT', 'DOWNRIGHT', 'DOWNLEFT']\n"
]
}
],
"source": [
"n_actions = atari.action_space.n\n",
"observation_shape = (None,) + (110, 84, 1)#atari.observation_space.shape\n",
"action_names = atari.get_action_meanings()\n",
"print action_names"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(None, 110, 84, 1)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"observation_shape"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"del atari"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Agent setup step by step\n",
"* An agent implementation may contain these parts:\n",
" * Observation(s)\n",
" * InputLayers where observed game states (here - images) are sent at each tick \n",
" * Memory layer(s)\n",
" * A dictionary that maps \"New memory layers\" to \"prev memory layers\"\n",
" * Policy layer (e.g. Q-values or probabilities)\n",
" * in this case, a lasagne dense layer based on observation layer\n",
" * Resolver - acton picker layer\n",
" * chooses what action to take given Q-values\n",
" * in this case, the resolver has epsilon-greedy policy\n",
" \n",
" \n",
"We are going to build something of this shape:\n",
"\n",
"(one can assume that the 'time' goes from left to right, inputs are at the bottom and outputs go to the top)\n",
"\n",
"\n",
"\n",
"![window_dqn_scheme](http://s32.postimg.org/yy5q3wadx/window_dqn.png)\n",
" \n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Agent observations\n",
"\n",
"* Here you define where observations (game images) appear in the network"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using gpu device 0: GeForce GTX 970 (CNMeM is disabled, cuDNN 4007)\n"
]
}
],
"source": [
"import lasagne\n",
"from lasagne.layers import InputLayer, DimshuffleLayer"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#image observation at current tick goes here\n",
"observation_layer = InputLayer(observation_shape, name=\"images input\")\n",
"\n",
"\n",
"#reshape to [batch, color, x, y] to allow for convolutional layers to work correctly\n",
"observation_reshape = DimshuffleLayer(observation_layer,(0,3,1,2))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" \n",
"### Agent memory states\n",
" * Here you can define arbitrary transitions between \"previous state\" variables and their next states\n",
" * The rules are\n",
" * previous states must be input layers\n",
" * next states must have same shape as previous ones\n",
" * otherwise it can be any lasagne network\n",
" * AgentNet.memory has several useful layers\n",
" \n",
" * During training and evaluation, your states will be updated recurrently\n",
" * next state at t=1 is given as previous state to t=2\n",
" \n",
" * Finally, you have to define a dictionary mapping new state -> previous state\n",
"\n",
"\n",
"### In this demo\n",
"Since we have almost fully observable environment AND we want to keep baseline simple, we shall use no recurrent units.\n",
"However, Atari game environments are known to have __flickering__ effect where some sprites are shown only on odd frames and others on even ones - that was used to optimize performance at the time.\n",
"To compensate for this, we shall use the memory layer called __WindowAugmentation__ which basically maintains a K previous time steps of what it is fed with.\n",
"\n",
"One can try to use\n",
" * GRU - `from agentnet.memory import GRUMemoryLayer`\n",
" * RNN - `from agentnet.memory import RNNCell`\n",
" * any custom lasagne layers that compute new memory states\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#memory\n",
"#using simple window-based memory that stores several states\n",
"#the SpaceInvaders environment does not need any more as it is almost fully-observed\n",
"from agentnet.memory import WindowAugmentation\n",
"\n",
"\n",
"window_size = 5\n",
"\n",
"\n",
"#prev state input\n",
"prev_window = InputLayer((None,window_size)+tuple(observation_reshape.output_shape[1:]),\n",
" name = \"previous window state\")\n",
"\n",
"\n",
"#our window\n",
"window = WindowAugmentation(observation_reshape,\n",
" prev_window,\n",
" name = \"new window state\")\n",
"\n",
"\n",
"\n",
"memory_dict = {window:prev_window}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Neural network body\n",
"Our strategy, again:\n",
" * take pixel-wise maximum over the window\n",
" * apply some layers\n",
" * use output layer to predict Q-values(see next)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from lasagne.layers import DropoutLayer,DenseLayer, ExpressionLayer\n",
"#you may use any other lasagne layers, including convolutions, batch_norms, maxout, etc\n",
"\n",
"#pixel-wise maximum over the temporal window (to avoid flickering)\n",
"window_max = ExpressionLayer(window,\n",
" lambda a: a.max(axis=1),\n",
" output_shape = (None,)+window.output_shape[2:])\n",
"\n",
"\n",
"\n",
"#a simple lasagne network (try replacing with any other lasagne network and see what works best) \n",
"nn = lasagne.layers.Conv2DLayer(window_max, num_filters=16, filter_size=(8, 8), stride=(4, 4))\n",
"nn = lasagne.layers.BatchNormLayer(nn)\n",
"nn = lasagne.layers.Conv2DLayer(nn, num_filters=32, filter_size=(4, 4), stride=(2, 2))\n",
"nn = lasagne.layers.BatchNormLayer(nn)\n",
"nn = lasagne.layers.DenseLayer(nn, num_units=256)\n",
"nn = lasagne.layers.BatchNormLayer(nn)\n",
"\n",
"#WARNING! if your network is computing too slowly, try decreasing the amount of neurons"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Agent policy and action picking\n",
"* Since we are training a deep Q-network, we need it to predict Q-values and take actions.\n",
"* Hence we define a lasagne layer that is used for action output\n",
"\n",
"* To pick actions, we use an epsilon-greedy resolver\n",
" * Note that resolver outputs particular action IDs and not probabilities.\n",
" * These actions are than sent into the environment"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#q_eval\n",
"q_eval = DenseLayer(nn,\n",
" num_units = n_actions,\n",
" nonlinearity=lasagne.nonlinearities.linear,\n",
" name=\"QEvaluator\")\n",
"\n",
"#resolver\n",
"from agentnet.resolver import EpsilonGreedyResolver\n",
"resolver = EpsilonGreedyResolver(q_eval,name=\"resolver\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Finally, agent\n",
"We declare that this network is and MDP agent with such and such inputs, states and outputs"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from agentnet.agent import Agent\n",
"#all together\n",
"agent = Agent(observation_layer,\n",
" memory_dict,\n",
" q_eval,resolver)\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[W,\n",
" b,\n",
" beta,\n",
" gamma,\n",
" W,\n",
" b,\n",
" beta,\n",
" gamma,\n",
" W,\n",
" b,\n",
" beta,\n",
" gamma,\n",
" QEvaluator.W,\n",
" QEvaluator.b]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#Since it's a single lasagne network, one can get it's weights, output, etc\n",
"weights = lasagne.layers.get_all_params(resolver,trainable=True)\n",
"weights"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Agent step function\n",
"* computes action and next state given observation and prev state\n",
"* written in a generic way to support any recurrences, windows, LTMs, etc"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#compile theano graph for one step decision making\n",
"applier_fun = agent.get_react_function()\n",
"\n",
"#a nice pythonic interface\n",
"def step(observation, prev_memories = 'zeros', batch_size = N_PARALLEL_GAMES):\n",
" \"\"\" returns actions and new states given observation and prev state\n",
" Prev state in default setup should be [prev window,]\"\"\"\n",
" \n",
" \n",
" \n",
" #default to zeros\n",
" if prev_memories == 'zeros':\n",
" prev_memories = [np.zeros((batch_size,)+tuple(mem.output_shape[1:]),\n",
" dtype='float32') \n",
" for mem in agent.state_variables]\n",
" \n",
" obs = preprocess_tensor4(np.array(observation))\n",
" res = applier_fun(obs,*prev_memories)\n",
" \n",
" action = res[0]\n",
" memories = res[1:]\n",
" return action, memories"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Create and manage a pool of atari sessions to play with\n",
"\n",
"* To make training more stable, we shall have an entire batch of game sessions each happening independent of others\n",
"* We define a small container that stores\n",
" * game emulators\n",
" * last agent observations\n",
" * agent memories at last time tick\n",
"* This allows us to instantly continue a session from where it stopped\n",
"\n",
"\n",
"\n",
"* Why several parallel agents help training: http://arxiv.org/pdf/1602.01783v1.pdf"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,144] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,166] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,188] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,211] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,232] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,253] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,274] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,295] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,316] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,337] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,359] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,381] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,403] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,425] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,449] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,472] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,494] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,515] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,536] Making new env: MsPacman-v0\n",
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-24 20:35:01,556] Making new env: MsPacman-v0\n"
]
}
],
"source": [
"from openai_gym_pool import GamePool\n",
"\n",
"pool = GamePool(GAME_TITLE, N_PARALLEL_GAMES)\n"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[['DOWNRIGHT' 'DOWNRIGHT' 'DOWNRIGHT' 'DOWNRIGHT' 'DOWNRIGHT']\n",
" ['DOWNRIGHT' 'DOWNRIGHT' 'DOWNRIGHT' 'DOWNRIGHT' 'DOWNRIGHT']\n",
" ['RIGHT' 'DOWNRIGHT' 'LEFT' 'DOWNRIGHT' 'DOWNRIGHT']]\n",
"CPU times: user 2.22 s, sys: 152 ms, total: 2.38 s\n",
"Wall time: 2.38 s\n"
]
}
],
"source": [
"%%time\n",
"observation_log,action_log,reward_log,_,_,_ = pool.interact(step,50)\n",
"\n",
"print(np.array(action_names)[np.array(action_log)[:3,:5]])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Experience replay pool\n",
"\n",
"Since our network exists in a theano graph and OpenAI gym doesn't, we shall train out network via experience replay.\n",
"\n",
"To do that in AgentNet, one can use a SessionPoolEnvironment.\n",
"\n",
"It's simple: you record new sessions using `interact(...)`, and than immediately train on them.\n",
"\n",
"1. Interact with Atari, get play sessions\n",
"2. Store them into session environment\n",
"3. Train on them\n",
"4. Repeat\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#Create an environment with all default parameters\n",
"from agentnet.environment import SessionPoolEnvironment\n",
"env = SessionPoolEnvironment(observations = observation_layer,\n",
" actions=resolver,\n",
" agent_memories=agent.state_variables)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def update_pool(env, pool,n_steps=100):\n",
" \"\"\" a function that creates new sessions and ads them into the pool\n",
" throwing the old ones away entirely for simplicity\"\"\"\n",
"\n",
" preceding_memory_states = list(pool.prev_memory_states)\n",
" \n",
" #get interaction sessions\n",
" observation_tensor,action_tensor,reward_tensor,_,is_alive_tensor,_= pool.interact(step,n_steps=n_steps)\n",
" observation_tensor = preprocess_tensor(observation_tensor)\n",
" \n",
" #load them into experience replay environment\n",
" env.load_sessions(observation_tensor,action_tensor,reward_tensor,is_alive_tensor,preceding_memory_states)\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#load first sessions\n",
"update_pool(env,pool,replay_seq_len)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A more sophisticated way of training is to store a large pool of sessions and train on random batches of them. \n",
"* Why that is expected to be better - http://www.nature.com/nature/journal/v518/n7540/full/nature14236.html\n",
"* Or less proprietary - https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf\n",
"\n",
"To do that, one might make use of\n",
"* ```env.load_sessions(...)``` - load new sessions\n",
"* ```env.get_session_updates(...)``` - does the same thing via theano updates (advanced)\n",
"* ```batch_env = env.sample_session_batch(batch_size, ...)``` - create an experience replay environment that contains batch_size random sessions from env (rerolled each time). Should be used in training instead of env.\n",
"* ```env.select_session_batch(indices)``` does the same thing deterministically.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Interacting with environment\n",
"* An agent has a method that produces symbolic environment interaction sessions\n",
"* Such sessions are in sequences of observations, agent memory, actions, q-values,etc\n",
" * one has to pre-define maximum session length.\n",
"\n",
"* SessionPool also stores rewards (Q-learning objective)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Training via experience replay\n",
"\n",
"* We use agent we have created to replay environment interactions inside Theano\n",
"* to than train on the replayed sessions via theano gradient propagation\n",
"* this is essentially basic Lasagne code after the following cell"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#get agent's Qvalues obtained via experience replay\n",
"_,_,_,_,qvalues_seq = agent.get_sessions(\n",
" env,\n",
" session_length=replay_seq_len,\n",
" batch_size=env.batch_size,\n",
" optimize_experience_replay=True,\n",
")\n",
"\n",
"\n",
"#The \"_\"s are\n",
"#first - environment states - which is empty since we are using session pool as our environment\n",
"#secund - observation sequences - whatever agent recieved at observation input(s) on each tick\n",
"#third - a dictionary of all agent memory units (RNN, GRU, NTM) - empty as we use none of them\n",
"#last - \"imagined\" actions - actions agent would pick now if he was in that situation \n",
"# - irrelevant since we are replaying and not actually playing the game now\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Evaluating loss function\n",
"* In this part we are using some basic Reinforcement Learning methods (here - Q-learning) to train\n",
"* AgentNet has plenty of such methods, but we shall use the simple Q_learning for now.\n",
"* Later you can try:\n",
" * SARSA - simpler on-policy algorithms\n",
" * N-step q-learning (requires n_steps parameter)\n",
" * Advantage Actor-Critic (requires state values and probabilities instead of Q-values)\n",
"\n",
"\n",
"* The basic interface is .get_elementwise_objective \n",
" * it returns loss function (here - squared error against reference Q-values) values at each batch and tick\n",
" \n",
"* If you want to do it the hard way instead, try .get_reference_Qvalues and compute errors on ya own\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#get reference Qvalues according to Qlearning algorithm\n",
"\n",
"\n",
"from agentnet.learning import qlearning_n_step\n",
"\n",
"#gamma - delayed reward coefficient - what fraction of reward is retained if it is obtained one tick later\n",
"\n",
"\n",
"\n",
"\n",
"#IMPORTANT!\n",
"# If you are training on a game that has rewards far outside some [-5,+5]\n",
"# it is a good idea to downscale them to avoid divergence\n",
"scaled_reward_seq = env.rewards\n",
"#For SpaceInvaders, however, not scaling rewards is at least working\n",
"\n",
"\n",
"elwise_mse_loss = qlearning_n_step.get_elementwise_objective(qvalues_seq,\n",
" env.actions[0],\n",
" scaled_reward_seq,\n",
" env.is_alive,\n",
" n_steps=10,\n",
" gamma_or_gammas=0.99,)\n",
"\n",
"#compute mean over \"alive\" fragments\n",
"mse_loss = elwise_mse_loss.sum() / env.is_alive.sum()"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#regularize network weights\n",
"\n",
"from lasagne.regularization import regularize_network_params, l2\n",
"reg_l2 = regularize_network_params(resolver,l2)*10**-4"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"loss = mse_loss + reg_l2"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Compute weight updates\n",
"updates = lasagne.updates.adadelta(loss,weights,learning_rate=0.01)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#mean session reward\n",
"mean_session_reward = env.rewards.sum(axis=1).mean()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Compile train and evaluation functions"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import theano\n",
"train_fun = theano.function([],[loss,mean_session_reward],updates=updates)\n",
"evaluation_fun = theano.function([],[loss,mse_loss,reg_l2,mean_session_reward])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Session visualization tools\n",
"\n",
"Just a helper function that draws current game images."
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def display_sessions(max_n_sessions = 3):\n",
" \"\"\"just draw random images\"\"\"\n",
" \n",
" plt.figure(figsize=[15,8])\n",
" \n",
" pictures = [atari.render(\"rgb_array\") for atari in pool.ataries[:max_n_sessions]]\n",
" for i,pic in enumerate(pictures):\n",
" plt.subplot(1,max_n_sessions,i+1)\n",
" plt.imshow(pic)\n",
" plt.show()\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n4ikV78gNHbJxzySe2z6O6SjHeSSi+WE2VS+Oo0aWcv5pjfjKR05DMGA8HojiAMLxDL7xq/3YtDcE\nNXdJXohsj0df/MBqXH9hR+5WSIHekRj++Vf7cWgoevy9VHocq4iq0ZduW4N3va3d8LU3M+i+5wbx\n/T8czbvV2qkIXH1uG/7nR0+DqmWnOxWBf//dYTz08jFkVFa3cmE2UTViNtlfoWxiQ40spbXBjQ2r\nGuA26Jr/Tam0hm0Hpw07GzlrRRBL233H/w7HMth6cBqROM8IlRMPhqganbMyiK423ynfc3goir0G\nXVkvavHi3FUNwEl7xq4jM+gb5YP95cRsomrEbLI/NtSIqGx4MEREVsRsIiIrKpRNhS9bEBERERER\nUUWwoUZERERERGQxbKgRERERERFZDBtqREREREREFvOWDTUhRLcQ4hkhxG4hxE4hxGdz05uEEE8K\nIfYJIf4ohGg46X++LIQ4IIToEUK8u5QLQES1idlERFbFfCIiM7xlr49CiE4AnVLKbUKIOgBbANwM\n4JMAJqSU3xJCfAlAk5TyH4QQZwD4JYALAHQDeBrAGjmrIPZcRFS9ytGzWqmyKffZzCeiKlSuXh95\n7ERExZh3r49SymEp5bbc7xEAPciGyM0Afpp7208B3JL7/SYAv5ZSZqSURwEcAHDhguaeiGgWZhMR\nWRXziYjMUNQzakKI5QA2AHgVQIeUcgTIBhKAN4dE7wLQf9K/DeamERGVBLOJiKyK+URE8zXnhlru\n0v0DAD6XOzs0+/I7L8cTUdkxm4jIqphPRLQQc2qoCSGcyAbNz6WUD+cmjwghOnKvdwIYzU0fBLDk\npH/vzk0jIjIVs4mIrIr5REQLNdcravcA2COlvPukaY8A+ETu948DePik6bcJIdxCiBUAVgPYZMK8\nEhHNxmwiIqtiPhHRgsyl18e3A3gBwE5kL9FLAF9BNkDuQ/YMUC+AD0kpQ7n/+TKA2wGkkb3c/6TB\n5/JyP1GVKlOvjyXJptz7mE9EVaiMvT7y2ImI5qxQNr1lQ61UGDZE1atcB0Olwnwiqk7MJiKyonl3\nz09ERERERETlxYYaERERERGRxbChRkREREREZDFsqBEREREREVkMG2pEREREREQWw4YaERERERGR\nxbChRkREREREZDFsqBEREREREVkMG2pEREREREQWw4YaERERERGRxbChRkREREREZDFCSlnpeSAi\n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\nLOb/AwlYd0/STCBGAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7ffa96271f90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#visualize untrained network performance (which is mostly random)\n",
"display_sessions()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Training loop"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import os"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from agentnet.display import Metrics\n",
"score_log = Metrics()"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"#starting epoch\n",
"epoch_counter = 1\n",
"#moving average estimation\n",
"alpha = 0.1\n",
"ma_reward_current = 0.\n",
"ma_reward_greedy = 0."
]
},
{
"cell_type": "code",
"execution_count": 78,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 0 ns, sys: 0 ns, total: 0 ns\n",
"Wall time: 7.15 µs\n"
]
}
],
"source": [
"%%time\n",
"\n",
"n_epochs = 10000\n",
"#25k may take hours to train.\n",
"#consider interrupt early.\n",
"\n",
"\n",
"\n",
"for i in range(n_epochs): \n",
" \n",
" \n",
" #train\n",
" update_pool(env,pool,replay_seq_len)\n",
" resolver.rng.seed(i) \n",
" loss,avg_reward = train_fun()\n",
" \n",
" \n",
" ##update resolver's epsilon (chance of random action instead of optimal one)\n",
" if epoch_counter%1 ==0:\n",
" current_epsilon = 0.05 + 0.45*np.exp(-epoch_counter/1000.)\n",
" resolver.epsilon.set_value(np.float32(current_epsilon))\n",
" \n",
" \n",
" \n",
" ##record current learning progress and show learning curves\n",
" if epoch_counter%10 ==0:\n",
"\n",
" ##update learning curves\n",
" full_loss, q_loss, l2_penalty, avg_reward_current = evaluation_fun()\n",
" ma_reward_current = (1-alpha)*ma_reward_current + alpha*avg_reward_current\n",
" score_log[\"expected e-greedy reward\"][epoch_counter] = ma_reward_current\n",
" \n",
" \n",
" \n",
" #greedy train\n",
" resolver.epsilon.set_value(0)\n",
" update_pool(env,pool,replay_seq_len)\n",
"\n",
" avg_reward_greedy = evaluation_fun()[-1]\n",
" ma_reward_greedy = (1-alpha)*ma_reward_greedy + alpha*avg_reward_greedy\n",
" score_log[\"expected greedy reward\"][epoch_counter] = ma_reward_greedy\n",
" \n",
" \n",
" #back to epsilon-greedy\n",
" resolver.epsilon.set_value(np.float32(current_epsilon))\n",
" update_pool(env,pool,replay_seq_len)\n",
"\n",
" print(\"epoch %i,loss %.5f, epsilon %.5f, rewards: ( e-greedy %.5f, greedy %.5f) \"%(\n",
" epoch_counter,full_loss,current_epsilon,ma_reward_current,ma_reward_greedy))\n",
" print(\"rec %.3f reg %.3f\"%(q_loss,l2_penalty))\n",
"\n",
" if epoch_counter %100 ==0:\n",
" print(\"Learning curves:\")\n",
" score_log.plot()\n",
"\n",
"\n",
" print(\"Random session examples\")\n",
" display_sessions()\n",
" \n",
" #run several sessions of game, record videos and save obtained results\n",
" if epoch_counter %1000 ==0:\n",
" \n",
" save_path = 'videos/MSPacman-v0_' + str(epoch_counter)\n",
"\n",
" subm_env = gym.make(GAME_TITLE)\n",
"\n",
" #starting monitor. This setup does not write videos\n",
" #subm_env.monitor.start(save_path,lambda i: False,force=True)\n",
"\n",
" #this setup does\n",
" subm_env.monitor.start(save_path,force=True)\n",
"\n",
" rws = []\n",
"\n",
" for i_episode in xrange(250):\n",
"\n",
" #initial observation\n",
" observation = subm_env.reset()\n",
" #initial memory\n",
" prev_memories = \"zeros\"\n",
"\n",
" s_reward =0.\n",
" t = 0\n",
" while True:\n",
"\n",
" action,new_memories = step([observation],prev_memories,batch_size=1)\n",
" observation, reward, done, info = subm_env.step(action[0])\n",
"\n",
" s_reward += reward\n",
"\n",
" prev_memories = new_memories\n",
" if done:\n",
" print(\"Episode finished after {} timesteps, rw = {}\".format(t+1,s_reward))\n",
" rws.append(s_reward)\n",
" break\n",
" t+=1\n",
"\n",
" subm_env.monitor.close()\n",
"\n",
" rws = np.array(rws)\n",
" np.savez(open('rws4hist_'+str(epoch_counter)+'.npz', 'wb'), rws=rws)\n",
" \n",
" \n",
" epoch_counter +=1\n",
"\n",
" \n",
"# Time to drink some coffee!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Record videos"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-26 14:17:26,131] Making new env: MsPacman-v0\n",
"INFO:gym.monitoring.monitor:Clearing 16 monitor files from previous run (because force=True was provided)\n",
"[2016-05-26 14:17:26,164] Clearing 16 monitor files from previous run (because force=True was provided)\n",
"INFO:gym.monitoring.monitor:Finished writing results. You can upload them to the scoreboard via gym.upload('/home/user/atari_games/AgentNet/examples/videos/MSPacman-v0_22000')\n",
"[2016-05-26 14:17:26,166] Finished writing results. You can upload them to the scoreboard via gym.upload('/home/user/atari_games/AgentNet/examples/videos/MSPacman-v0_22000')\n"
]
}
],
"source": [
"save_path = 'videos/MSPacman-v0_' + str(epoch_counter-1)\n",
"\n",
"subm_env = gym.make(GAME_TITLE)\n",
"\n",
"#starting monitor. This setup does not write videos\n",
"#subm_env.monitor.start(save_path,lambda i: False,force=True)\n",
"\n",
"#this setup does\n",
"subm_env.monitor.start(save_path,force=True)\n",
"\n",
"rws = []\n",
"\n",
"for i_episode in xrange(220):\n",
"\n",
" #initial observation\n",
" observation = subm_env.reset()\n",
" #initial memory\n",
" prev_memories = \"zeros\"\n",
"\n",
" s_reward =0.\n",
" t = 0\n",
" while True:\n",
"\n",
" action,new_memories = step([observation],prev_memories,batch_size=1)\n",
" observation, reward, done, info = subm_env.step(action[0])\n",
"\n",
" s_reward += reward\n",
"\n",
" prev_memories = new_memories\n",
" if done:\n",
" print(\"Episode finished after {} timesteps, rw = {}\".format(t+1,s_reward))\n",
" rws.append(s_reward)\n",
" break\n",
" t+=1\n",
"\n",
"subm_env.monitor.close()\n",
"\n",
"rws = np.array(rws)\n",
"np.savez(open('rws4hist_'+str(epoch_counter-1)+'.npz', 'wb'), rws=rws)"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 25., 16., 34., 74., 61., 30., 5., 1., 2., 2.]),\n",
" array([ 260., 613., 966., 1319., 1672., 2025., 2378., 2731.,\n",
" 3084., 3437., 3790.]),\n",
" <a list of 10 Patch objects>)"
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nPeMNEgfGrOIAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7ffa8e1bcf50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(rws)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Evaluating results\n",
" * Here we plot learning curves and sample testimonials"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nWrRoERERff7559SmTRs6dOgQERENHDiQJk+eTIFAgJYvX06tWrWiUaNGOd7vZ599Rp06daIffviB\nqqur6ZZbbiFJkmjbtm1ERDR27FjKycmh//73v0RE5Pf76Z577qERI0ZQeXk5HT9+nK688kq6//77\niYhozZo11L59e1q9ejUpikJz586l7t27UyAQoEAgQAUFBUb//POf/ySfz0cPPPAAERHNnDmTbrjh\nBqNtH374IZ155pmO7S4qKiKv10tTpkyhQCBAfr8/at3bt2+n3NxcIiIqLS2lgoICys/PN/o6Ly/P\nKPutt96iI0eOkCzL9PTTT1PHjh2ppqaGiIimTZtGaWlptGDBAiIiqq6upj/84Q80ePBgKi8vpz17\n9tDpp59ulF1fmvJ3hWEYprmh/c1tGE3UUAXHrLgeYgxIzE9d+frrr6mgoMC277HHHqNbb73V2P7g\ngw8oPz+f2rVrRytXrjT2z549m7p06WK7tn///vTmm2/S/v37KT09nfx+v3Hs7bffposvvpiIiIYN\nG0bPPvusY5u6d+9OX3zxhbH9+OOP0+jRo23nDBs2jObOnUvFxcXk8/moqqrKOHbTTTe5irFx48YZ\nQoqI6KeffooQY2PGjLFdk5WVRdu3bze2V65cST169CAiookTJ9KDDz5oO79Pnz60fPlyWr58eUT/\nnH/++YYYKy0tpdatW1NFRQUREV177bX0xBNPOLa7qKiI0tPTKRAIGPui1U1E1K1bN1q7di298847\n9H//9380YMAA2rJlC73++us0YsQIx3qIiHJzc2nDhg1EpIqxIUOG2I737NnTEOtERC+//DKLMYZh\nmBSkIcVYSropEyXH6squXbtQUlKCvLw85OXlITc3F4899hgOHjxonHP55ZdDlmX06dMHAwcOtF3f\npUsX23ZBQQFKS0uxa9cuBINBdOrUySj39ttvN8rdvXs3evXqVes2zp8/39bGr776Cnv37kVpaSly\nc3ORmZlpa4MbpaWlyM/PN7bz8/N1IW3bp3Pw4EFUVVXh3HPPNeq/9NJLcfjwYaNtTz31lK1te/bs\nQWlpKUpLSx37R6dTp0644IIL8P777+Po0aP47LPPcPPNN7u2vV27dvD5fLZ+casbAAYPHoylS5di\n+fLlKCwsRGFhIYqKirBs2TIMGTLEKOfJJ59E3759kZubi9zcXBw7dszm6rX2h96HXbt2dbynZMJx\nK6kLj11qw+PHONHk1qZsyuTn56Nnz57YsmWL6zn3338/+vbtix07duCdd97ByJEjjWMlJSW2c4uL\nizFixAjk5+cjIyMDhw8fdpxpl5+fj23btjnWF35+fn4+Ro8ejZdeeini3OLiYhw5cgTV1dWGICsu\nLoYkOWvyTp06Yc+ePbbrw+uzbrdt2xYtWrTApk2b0KlTJ8f7mDp1KqZMmRJxbPny5Y7907t3b2N7\n9OjRePXVVxEMBnH++ec71uHUrlh1A8CQIUOwcOFC7Ny5E1OnTkV2djbeeustrFq1CpMmTQIAfPnl\nl3jiiSewdOlS9O3bFwCQl5dnE6jh9Xbu3Bm7d+/GqaeeCgC87irDMAwTQUpaxpJF//790apVK8yc\nORN+vx+yLGPTpk349ttvAaiCYs6cOXjjjTcwe/ZsTJo0CXv37jWuP3DgAJ577jmEQiG899572Lx5\nMy677DJ07NgRQ4cOxb333ouKigoQEbZv347ly5cDAMaPH48nn3wSa9asAQBs27bNyFPVoUMHI6Ae\nAG655RYsXLgQixcvhqIo8Pv9WLZsGUpLS9GtWzecd955eOihhxAMBvHll19i4cKFrvd7/fXX4/XX\nX8fmzZtRVVWFRx55JGr/CCEwYcIE3HPPPYZVr6SkBIsXLwYATJgwAS+++CK++eYbAEBlZSU+/fRT\nVFZWYuDAgfB6vUb/fPDBB8Z5OldddRXWrFmDZ599FqNHj449YBai1Q2oYmzp0qWorq5G586dceGF\nF2LRokU4fPgw+vXrBwCoqKiAz+dDmzZtEAgE8PDDD6OioiJqvddddx0ee+wxlJeXY8+ePXj++efr\n1O6GorCwMNlNYOKExy614fFjnGAxVgckScLHH3+MdevWoUePHmjfvj0mTJiAY8eOoaKiAmPGjMEL\nL7yAjh07YtCgQRg/fjxuvfVW4/oBAwZg69ataNu2LR544AG8//77yM3NBQDMnTsXgUAAffv2RV5e\nHq677jrs27cPAHDttddi6tSpuOmmm9C6dWtcffXVKCsrAwBMmTIFM2bMQF5eHp5++ml07doVH330\nER599FG0a9cOBQUFePLJJ420E7q1p02bNpgxYwbGjBnjer+/+tWvcNddd+Giiy7CySefbLhd09PT\nXa95/PHH0bt3b/z85z9HTk4Ohg4dih9//BEAcO655+KVV17BnXfeiby8PJx88smYM2cOAMDn8+GD\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7ffaea3d9550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"score_log.plot(\"final\")"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Random session examples\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7ffa8a632810>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(\"Random session examples\")\n",
"display_sessions()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Save learning curves"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pickle\n",
"\n",
"lc = {'e-greedy':score_log['expected e-greedy reward'], 'greedy':score_log['expected greedy reward']}\n",
"\n",
"with open(str(epoch_counter-1)+'iter_lc.pickle', 'wb') as handle:\n",
" lc = pickle.dump(lc, handle)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"# Submission\n",
"Here we simply run the OpenAI gym submission code and view scores"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"resolver.epsilon.set_value(0)"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:gym.envs.registration:Making new env: MsPacman-v0\n",
"[2016-05-26 14:32:34,089] Making new env: MsPacman-v0\n",
"INFO:gym.monitoring.monitor:Clearing 2 monitor files from previous run (because force=True was provided)\n",
"[2016-05-26 14:32:34,109] Clearing 2 monitor files from previous run (because force=True was provided)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Episode finished after 911 timesteps\n",
"Episode finished after 1163 timesteps\n",
"Episode finished after 905 timesteps\n",
"Episode finished after 1126 timesteps\n",
"Episode finished after 1081 timesteps\n",
"Episode finished after 1006 timesteps\n",
"Episode finished after 788 timesteps\n",
"Episode finished after 892 timesteps\n",
"Episode finished after 853 timesteps\n",
"Episode finished after 981 timesteps\n",
"Episode finished after 835 timesteps\n",
"Episode finished after 1329 timesteps\n",
"Episode finished after 1032 timesteps\n",
"Episode finished after 829 timesteps\n",
"Episode finished after 1010 timesteps\n",
"Episode finished after 802 timesteps\n",
"Episode finished after 1030 timesteps\n",
"Episode finished after 707 timesteps\n",
"Episode finished after 1051 timesteps\n",
"Episode finished after 1604 timesteps\n",
"Episode finished after 884 timesteps\n",
"Episode finished after 1232 timesteps\n",
"Episode finished after 1179 timesteps\n",
"Episode finished after 1308 timesteps\n",
"Episode finished after 1049 timesteps\n",
"Episode finished after 1468 timesteps\n",
"Episode finished after 1008 timesteps\n",
"Episode finished after 1104 timesteps\n",
"Episode finished after 1150 timesteps\n",
"Episode finished after 1255 timesteps\n",
"Episode finished after 1020 timesteps\n",
"Episode finished after 1302 timesteps\n",
"Episode finished after 1036 timesteps\n",
"Episode finished after 1187 timesteps\n",
"Episode finished after 1417 timesteps\n",
"Episode finished after 971 timesteps\n",
"Episode finished after 1363 timesteps\n",
"Episode finished after 1080 timesteps\n",
"Episode finished after 1426 timesteps\n",
"Episode finished after 1255 timesteps\n",
"Episode finished after 940 timesteps\n",
"Episode finished after 832 timesteps\n",
"Episode finished after 1190 timesteps\n",
"Episode finished after 1126 timesteps\n",
"Episode finished after 1233 timesteps\n",
"Episode finished after 926 timesteps\n",
"Episode finished after 1415 timesteps\n",
"Episode finished after 1355 timesteps\n",
"Episode finished after 1301 timesteps\n",
"Episode finished after 853 timesteps\n",
"Episode finished after 913 timesteps\n",
"Episode finished after 925 timesteps\n",
"Episode finished after 897 timesteps\n",
"Episode finished after 819 timesteps\n",
"Episode finished after 1026 timesteps\n",
"Episode finished after 790 timesteps\n",
"Episode finished after 937 timesteps\n",
"Episode finished after 877 timesteps\n",
"Episode finished after 1266 timesteps\n",
"Episode finished after 937 timesteps\n",
"Episode finished after 1092 timesteps\n",
"Episode finished after 1175 timesteps\n",
"Episode finished after 1077 timesteps\n",
"Episode finished after 788 timesteps\n",
"Episode finished after 1058 timesteps\n",
"Episode finished after 832 timesteps\n",
"Episode finished after 822 timesteps\n",
"Episode finished after 1356 timesteps\n",
"Episode finished after 925 timesteps\n",
"Episode finished after 1209 timesteps\n",
"Episode finished after 1080 timesteps\n",
"Episode finished after 1031 timesteps\n",
"Episode finished after 986 timesteps\n",
"Episode finished after 450 timesteps\n",
"Episode finished after 1090 timesteps\n",
"Episode finished after 1050 timesteps\n",
"Episode finished after 865 timesteps\n",
"Episode finished after 1329 timesteps\n",
"Episode finished after 811 timesteps\n",
"Episode finished after 1046 timesteps\n",
"Episode finished after 799 timesteps\n",
"Episode finished after 959 timesteps\n",
"Episode finished after 1051 timesteps\n",
"Episode finished after 1013 timesteps\n",
"Episode finished after 1128 timesteps\n",
"Episode finished after 982 timesteps\n",
"Episode finished after 963 timesteps\n",
"Episode finished after 1214 timesteps\n",
"Episode finished after 1211 timesteps\n",
"Episode finished after 1327 timesteps\n",
"Episode finished after 921 timesteps\n",
"Episode finished after 927 timesteps\n",
"Episode finished after 1052 timesteps\n",
"Episode finished after 907 timesteps\n",
"Episode finished after 761 timesteps\n",
"Episode finished after 1224 timesteps\n",
"Episode finished after 919 timesteps\n",
"Episode finished after 822 timesteps\n",
"Episode finished after 1011 timesteps\n",
"Episode finished after 913 timesteps\n",
"Episode finished after 1130 timesteps\n",
"Episode finished after 856 timesteps\n",
"Episode finished after 1059 timesteps\n",
"Episode finished after 1148 timesteps\n",
"Episode finished after 1140 timesteps\n",
"Episode finished after 775 timesteps\n",
"Episode finished after 1192 timesteps\n",
"Episode finished after 1102 timesteps\n",
"Episode finished after 1238 timesteps\n",
"Episode finished after 1112 timesteps\n",
"Episode finished after 1176 timesteps\n",
"Episode finished after 1080 timesteps\n",
"Episode finished after 1099 timesteps\n",
"Episode finished after 1339 timesteps\n",
"Episode finished after 1527 timesteps\n",
"Episode finished after 919 timesteps\n",
"Episode finished after 1150 timesteps\n",
"Episode finished after 882 timesteps\n",
"Episode finished after 897 timesteps\n",
"Episode finished after 1132 timesteps\n",
"Episode finished after 1125 timesteps\n",
"Episode finished after 1052 timesteps\n",
"Episode finished after 879 timesteps\n",
"Episode finished after 1370 timesteps\n",
"Episode finished after 950 timesteps\n",
"Episode finished after 1093 timesteps\n",
"Episode finished after 1229 timesteps\n",
"Episode finished after 1112 timesteps\n",
"Episode finished after 1036 timesteps\n",
"Episode finished after 936 timesteps\n",
"Episode finished after 1109 timesteps\n",
"Episode finished after 1218 timesteps\n",
"Episode finished after 1107 timesteps\n",
"Episode finished after 728 timesteps\n",
"Episode finished after 1218 timesteps\n",
"Episode finished after 1178 timesteps\n",
"Episode finished after 1154 timesteps\n",
"Episode finished after 975 timesteps\n",
"Episode finished after 1096 timesteps\n",
"Episode finished after 1230 timesteps\n",
"Episode finished after 954 timesteps\n",
"Episode finished after 986 timesteps\n",
"Episode finished after 721 timesteps\n",
"Episode finished after 645 timesteps\n",
"Episode finished after 1468 timesteps\n",
"Episode finished after 894 timesteps\n",
"Episode finished after 1015 timesteps\n",
"Episode finished after 983 timesteps\n",
"Episode finished after 1027 timesteps\n",
"Episode finished after 944 timesteps\n",
"Episode finished after 827 timesteps\n",
"Episode finished after 968 timesteps\n",
"Episode finished after 1096 timesteps\n",
"Episode finished after 1057 timesteps\n",
"Episode finished after 786 timesteps\n",
"Episode finished after 1164 timesteps\n",
"Episode finished after 1085 timesteps\n",
"Episode finished after 1341 timesteps\n",
"Episode finished after 1020 timesteps\n",
"Episode finished after 1165 timesteps\n",
"Episode finished after 1333 timesteps\n",
"Episode finished after 744 timesteps\n",
"Episode finished after 1254 timesteps\n",
"Episode finished after 1007 timesteps\n",
"Episode finished after 968 timesteps\n",
"Episode finished after 1240 timesteps\n",
"Episode finished after 992 timesteps\n",
"Episode finished after 1184 timesteps\n",
"Episode finished after 1255 timesteps\n",
"Episode finished after 1010 timesteps\n",
"Episode finished after 1123 timesteps\n",
"Episode finished after 1458 timesteps\n",
"Episode finished after 876 timesteps\n",
"Episode finished after 1224 timesteps\n",
"Episode finished after 761 timesteps\n",
"Episode finished after 906 timesteps\n",
"Episode finished after 1254 timesteps\n",
"Episode finished after 915 timesteps\n",
"Episode finished after 1137 timesteps\n",
"Episode finished after 905 timesteps\n",
"Episode finished after 1181 timesteps\n",
"Episode finished after 923 timesteps\n",
"Episode finished after 973 timesteps\n",
"Episode finished after 1503 timesteps\n",
"Episode finished after 1210 timesteps\n",
"Episode finished after 897 timesteps\n",
"Episode finished after 834 timesteps\n",
"Episode finished after 1147 timesteps\n",
"Episode finished after 812 timesteps\n",
"Episode finished after 1188 timesteps\n",
"Episode finished after 1149 timesteps\n",
"Episode finished after 804 timesteps\n",
"Episode finished after 1149 timesteps\n",
"Episode finished after 1005 timesteps\n",
"Episode finished after 1389 timesteps\n",
"Episode finished after 1380 timesteps\n",
"Episode finished after 1115 timesteps\n",
"Episode finished after 1129 timesteps\n",
"Episode finished after 1281 timesteps\n",
"Episode finished after 1572 timesteps"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:gym.monitoring.monitor:Finished writing results. You can upload them to the scoreboard via gym.upload('/tmp/AgentNet-simplenet-MsPacman-v0-Recording0')\n",
"[2016-05-26 14:45:11,171] Finished writing results. You can upload them to the scoreboard via gym.upload('/tmp/AgentNet-simplenet-MsPacman-v0-Recording0')\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"save_path = '/tmp/AgentNet-simplenet-MsPacman-v0-Recording0'\n",
"\n",
"subm_env = gym.make(GAME_TITLE)\n",
"\n",
"#starting monitor. This setup does not write videos\n",
"subm_env.monitor.start(save_path,lambda i: False,force=True)\n",
"\n",
"#this setup does\n",
"#subm_env.monitor.start(save_path,force=True)\n",
"\n",
"\n",
"for i_episode in xrange(200):\n",
" \n",
" #initial observation\n",
" observation = subm_env.reset()\n",
" #initial memory\n",
" prev_memories = \"zeros\"\n",
" \n",
" \n",
" t = 0\n",
" while True:\n",
"\n",
" action,new_memories = step([observation],prev_memories,batch_size=1)\n",
" observation, reward, done, info = subm_env.step(action[0])\n",
" \n",
" prev_memories = new_memories\n",
" if done:\n",
" print \"Episode finished after {} timesteps\".format(t+1)\n",
" break\n",
" t+=1\n",
"\n",
"subm_env.monitor.close()"
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:gym.monitoring.monitor:Finished writing results. You can upload them to the scoreboard via gym.upload('/tmp/AgentNet-simplenet-pacmanv0-Recording0')\n",
"[2016-05-26 14:52:08,502] Finished writing results. You can upload them to the scoreboard via gym.upload('/tmp/AgentNet-simplenet-pacmanv0-Recording0')\n",
"INFO:gym.monitoring.monitor:Finished writing results. You can upload them to the scoreboard via gym.upload('/tmp/AgentNet-simplenet-MsPacman-v0-Recording0')\n",
"[2016-05-26 14:52:08,503] Finished writing results. You can upload them to the scoreboard via gym.upload('/tmp/AgentNet-simplenet-MsPacman-v0-Recording0')\n"
]
},
{
"data": {
"text/plain": [
"[None, None]"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[monitor.close() for monitor in gym.monitoring._open_monitors()]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"\n",
"gym.upload(save_path,\n",
" \n",
" #this notebook\n",
" writeup=<url to my gist>, \n",
" \n",
" #your api key\n",
" api_key=<my_own_api_key>)\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"# Once you got it working,\n",
"Try building a network that maximizes the final score\n",
"\n",
"* Moar lasagne stuff: convolutional layers, batch normalization, nonlinearities and so on\n",
"* Recurrent agent memory layers, GRUMemoryLayer, etc\n",
"* Different reinforcement learning algorithm (p.e. agent-critic), other parameters\n",
"* Experience replay pool\n",
"\n",
"\n",
"Look for examples? Try examples/Deep Kung Fu for most of these features\n",
"\n",
"\n",
"You can also try to expand to a different game: \n",
" * all OpenAI Atari games are already compatible, you only need to change GAME_TITLE\n",
" * Other discrete action space environments are also accessible this way\n",
" * For continuous action spaces, either discretize actions or use continuous RL algorithms (e.g. .learning.dpg_n_step)\n",
" * Adapting to a custom non-OpenAI environment can be done with a simple wrapper\n",
"\n",
" \n",
"__Good luck!__"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"gym.upload?"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment