diff --git a/DQN/Deep Q Learning Solution.ipynb b/DQN/Deep Q Learning Solution.ipynb index a1f8f1a35..f13184214 100644 --- a/DQN/Deep Q Learning Solution.ipynb +++ b/DQN/Deep Q Learning Solution.ipynb @@ -123,16 +123,39 @@ " self.actions_pl = tf.placeholder(shape=[None], dtype=tf.int32, name=\"actions\")\n", "\n", " X = tf.to_float(self.X_pl) / 255.0\n", - " \n", - " # TODO: Implement the Tensorflow graph!\n", " batch_size = tf.shape(self.X_pl)[0]\n", - " self.predictions = tf.zeros(shape=[batch_size, len(VALID_ACTIONS)])\n", - " self.loss = tf.constant(0.0)\n", - " self.train_op = tf.no_op(\"train_pp\")\n", - " \n", + "\n", + " # Three convolutional layers\n", + " conv1 = tf.contrib.layers.conv2d(\n", + " X, 32, 8, 4, activation_fn=tf.nn.relu)\n", + " conv2 = tf.contrib.layers.conv2d(\n", + " conv1, 64, 4, 2, activation_fn=tf.nn.relu)\n", + " conv3 = tf.contrib.layers.conv2d(\n", + " conv2, 64, 3, 1, activation_fn=tf.nn.relu)\n", + "\n", + " # Fully connected layers\n", + " flattened = tf.contrib.layers.flatten(conv3)\n", + " fc1 = tf.contrib.layers.fully_connected(flattened, 512)\n", + " self.predictions = tf.contrib.layers.fully_connected(fc1, len(VALID_ACTIONS))\n", + "\n", + " # Get the predictions for the chosen actions only\n", + " gather_indices = tf.range(batch_size) * tf.shape(self.predictions)[1] + self.actions_pl\n", + " self.action_predictions = tf.gather(tf.reshape(self.predictions, [-1]), gather_indices)\n", + "\n", + " # Calcualte the loss\n", + " self.losses = tf.squared_difference(self.y_pl, self.action_predictions)\n", + " self.loss = tf.reduce_mean(self.losses)\n", + "\n", + " # Optimizer Parameters from original paper\n", + " self.optimizer = tf.train.RMSPropOptimizer(0.00025, 0.99, 0.0, 1e-6)\n", + " self.train_op = self.optimizer.minimize(self.loss, global_step=tf.contrib.framework.get_global_step())\n", + "\n", " # Summaries for Tensorboard\n", " self.summaries = tf.merge_summary([\n", - " tf.scalar_summary(\"loss\", self.loss)\n", + " tf.scalar_summary(\"loss\", self.loss),\n", + " tf.histogram_summary(\"loss_hist\", self.losses),\n", + " tf.histogram_summary(\"q_values_hist\", self.predictions),\n", + " tf.scalar_summary(\"max_q_value\", tf.reduce_max(self.predictions))\n", " ])\n", "\n", "\n", diff --git a/FA/Q-Learning with Value Function Approximation Solution.ipynb b/FA/Q-Learning with Value Function Approximation Solution.ipynb index 2e6503af7..8f4112f75 100644 --- a/FA/Q-Learning with Value Function Approximation Solution.ipynb +++ b/FA/Q-Learning with Value Function Approximation Solution.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 130, + "execution_count": 1, "metadata": { "collapsed": false }, @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 131, + "execution_count": 2, "metadata": { "collapsed": false }, @@ -39,7 +39,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "[2016-09-14 09:56:46,458] Making new env: MountainCar-v0\n" + "[2016-09-30 11:06:51,428] Making new env: MountainCar-v0\n" ] } ], @@ -49,7 +49,7 @@ }, { "cell_type": "code", - "execution_count": 132, + "execution_count": 3, "metadata": { "collapsed": false }, @@ -62,7 +62,7 @@ " transformer_weights=None)" ] }, - "execution_count": 132, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -87,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 133, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -150,7 +150,7 @@ }, { "cell_type": "code", - "execution_count": 134, + "execution_count": 5, "metadata": { "collapsed": false }, @@ -181,7 +181,7 @@ }, { "cell_type": "code", - "execution_count": 141, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -218,7 +218,6 @@ " # Print out which episode we're on, useful for debugging.\n", " # Also print reward for last episode\n", " last_reward = stats.episode_rewards[i_episode - 1]\n", - " print(\"\\rEpisode {}/{} ({})\".format(i_episode + 1, num_episodes, last_reward), end=\"\")\n", " sys.stdout.flush()\n", " \n", " # Reset the environment and pick the first action\n", @@ -249,6 +248,8 @@ " \n", " # Update the function approximator using our target\n", " estimator.update(state, action, td_target)\n", + " \n", + " print(\"\\rStep {} @ Episode {}/{} ({})\".format(t, i_episode + 1, num_episodes, last_reward), end=\"\")\n", " \n", " if done:\n", " break\n", @@ -260,7 +261,7 @@ }, { "cell_type": "code", - "execution_count": 142, + "execution_count": 14, "metadata": { "collapsed": true }, @@ -271,7 +272,7 @@ }, { "cell_type": "code", - "execution_count": 143, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -280,28 +281,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "3471 @ Episode 1/100 (0.0)" - ] - }, - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;31m# because our initial estimate for all states is too \"optimistic\" which leads\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m# to the exploration of all states.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mstats\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mq_learning\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0menv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mestimator\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepsilon\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0.0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m\u001b[0m in \u001b[0;36mq_learning\u001b[0;34m(env, estimator, num_episodes, discount_factor, epsilon, epsilon_decay)\u001b[0m\n\u001b[1;32m 50\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 51\u001b[0m \u001b[0;31m# TD Update\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 52\u001b[0;31m \u001b[0mq_values_next\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mestimator\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnext_state\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 53\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 54\u001b[0m \u001b[0;31m# Q-Value TD Target\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m\u001b[0m in \u001b[0;36mpredict\u001b[0;34m(self, s, a)\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 40\u001b[0m \"\"\"\n\u001b[0;32m---> 41\u001b[0;31m \u001b[0mfeatures\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfeaturize_state\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 42\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0ma\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 43\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfeatures\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mm\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodels\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m\u001b[0m in \u001b[0;36mfeaturize_state\u001b[0;34m(self, state)\u001b[0m\n\u001b[1;32m 22\u001b[0m \"\"\"\n\u001b[1;32m 23\u001b[0m \u001b[0mscaled\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mscaler\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mstate\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 24\u001b[0;31m \u001b[0mfeaturized\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfeaturizer\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mscaled\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 25\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mfeaturized\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 26\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/Users/dennybritz/venvs/tf/lib/python3.5/site-packages/sklearn/pipeline.py\u001b[0m in \u001b[0;36mtransform\u001b[0;34m(self, X)\u001b[0m\n\u001b[1;32m 521\u001b[0m Xs = Parallel(n_jobs=self.n_jobs)(\n\u001b[1;32m 522\u001b[0m \u001b[0mdelayed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_transform_one\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrans\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransformer_weights\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 523\u001b[0;31m for name, trans in self.transformer_list)\n\u001b[0m\u001b[1;32m 524\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msparse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0missparse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mf\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mXs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 525\u001b[0m \u001b[0mXs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msparse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mXs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtocsr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/Users/dennybritz/venvs/tf/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, iterable)\u001b[0m\n\u001b[1;32m 798\u001b[0m \u001b[0;31m# was dispatched. In particular this covers the edge\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 799\u001b[0m \u001b[0;31m# case of Parallel used with an exhausted iterator.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 800\u001b[0;31m \u001b[0;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdispatch_one_batch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterator\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 801\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_iterating\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 802\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/Users/dennybritz/venvs/tf/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py\u001b[0m in \u001b[0;36mdispatch_one_batch\u001b[0;34m(self, iterator)\u001b[0m\n\u001b[1;32m 651\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbatch_size\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 652\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_lock\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 653\u001b[0;31m \u001b[0mtasks\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mBatchedCalls\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mitertools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mislice\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterator\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 654\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mtasks\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 655\u001b[0m \u001b[0;31m# No more tasks available in the iterator: tell caller to stop.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/Users/dennybritz/venvs/tf/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, iterator_slice)\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0miterator_slice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 68\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterator_slice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 69\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 70\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/Users/dennybritz/venvs/tf/lib/python3.5/site-packages/sklearn/pipeline.py\u001b[0m in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 521\u001b[0m Xs = Parallel(n_jobs=self.n_jobs)(\n\u001b[1;32m 522\u001b[0m \u001b[0mdelayed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_transform_one\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrans\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtransformer_weights\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 523\u001b[0;31m for name, trans in self.transformer_list)\n\u001b[0m\u001b[1;32m 524\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msparse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0missparse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mf\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mXs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 525\u001b[0m \u001b[0mXs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msparse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhstack\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mXs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtocsr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/Users/dennybritz/venvs/tf/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py\u001b[0m in \u001b[0;36mdelayed\u001b[0;34m(function, check_pickle)\u001b[0m\n\u001b[1;32m 161\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mfunction\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 162\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 163\u001b[0;31m \u001b[0mdelayed_function\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunctools\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwraps\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunction\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdelayed_function\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 164\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mAttributeError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 165\u001b[0m \u001b[0;34m\" functools.wraps fails on some callable objects \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/Users/dennybritz/homebrew/Cellar/python3/3.5.1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/functools.py\u001b[0m in \u001b[0;36mupdate_wrapper\u001b[0;34m(wrapper, wrapped, assigned, updated)\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 63\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 64\u001b[0;31m \u001b[0msetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwrapper\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 65\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mattr\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mupdated\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 66\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwrapper\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwrapped\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mattr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + "Step 112 @ Episode 100/100 (-134.0)" ] } ], diff --git a/PolicyGradient/CliffWalk Actor Critic Solution.ipynb b/PolicyGradient/CliffWalk Actor Critic Solution.ipynb new file mode 100644 index 000000000..a12984da8 --- /dev/null +++ b/PolicyGradient/CliffWalk Actor Critic Solution.ipynb @@ -0,0 +1,315 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import gym\n", + "import itertools\n", + "import matplotlib\n", + "import numpy as np\n", + "import sys\n", + "import tensorflow as tf\n", + "import collections\n", + "\n", + "if \"../\" not in sys.path:\n", + " sys.path.append(\"../\") \n", + "from lib.envs.cliff_walking import CliffWalkingEnv\n", + "from lib import plotting\n", + "\n", + "matplotlib.style.use('ggplot')" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "env = CliffWalkingEnv()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "class PolicyEstimator():\n", + " \"\"\"\n", + " Policy Function approximator. \n", + " \"\"\"\n", + " \n", + " def __init__(self, learning_rate=0.01, scope=\"policy_estimator\"):\n", + " with tf.variable_scope(scope):\n", + " self.state = tf.placeholder(tf.int32, [], \"state\")\n", + " self.action = tf.placeholder(dtype=tf.int32, name=\"action\")\n", + " self.target = tf.placeholder(dtype=tf.float32, name=\"target\")\n", + "\n", + " # This is just table lookup estimator\n", + " state_one_hot = tf.one_hot(self.state, int(env.observation_space.n))\n", + " self.output_layer = tf.contrib.layers.fully_connected(\n", + " inputs=tf.expand_dims(state_one_hot, 0),\n", + " num_outputs=env.action_space.n,\n", + " activation_fn=None,\n", + " weights_initializer=tf.zeros_initializer)\n", + "\n", + " self.action_probs = tf.squeeze(tf.nn.softmax(self.output_layer))\n", + " self.picked_action_prob = tf.gather(self.action_probs, self.action)\n", + "\n", + " # Loss and train op\n", + " self.loss = -tf.log(self.picked_action_prob) * self.target\n", + "\n", + " self.optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n", + " self.train_op = self.optimizer.minimize(\n", + " self.loss, global_step=tf.contrib.framework.get_global_step())\n", + " \n", + " def predict(self, state, sess=None):\n", + " sess = sess or tf.get_default_session()\n", + " return sess.run(self.action_probs, { self.state: state })\n", + "\n", + " def update(self, state, target, action, sess=None):\n", + " sess = sess or tf.get_default_session()\n", + " feed_dict = { self.state: state, self.target: target, self.action: action }\n", + " _, loss = sess.run([self.train_op, self.loss], feed_dict)\n", + " return loss" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "class ValueEstimator():\n", + " \"\"\"\n", + " Value Function approximator. \n", + " \"\"\"\n", + " \n", + " def __init__(self, learning_rate=0.1, scope=\"value_estimator\"):\n", + " with tf.variable_scope(scope):\n", + " self.state = tf.placeholder(tf.int32, [], \"state\")\n", + " self.target = tf.placeholder(dtype=tf.float32, name=\"target\")\n", + "\n", + " # This is just table lookup estimator\n", + " state_one_hot = tf.one_hot(self.state, int(env.observation_space.n))\n", + " self.output_layer = tf.contrib.layers.fully_connected(\n", + " inputs=tf.expand_dims(state_one_hot, 0),\n", + " num_outputs=1,\n", + " activation_fn=None,\n", + " weights_initializer=tf.zeros_initializer)\n", + "\n", + " self.value_estimate = tf.squeeze(self.output_layer)\n", + " self.loss = tf.squared_difference(self.value_estimate, self.target)\n", + "\n", + " self.optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n", + " self.train_op = self.optimizer.minimize(\n", + " self.loss, global_step=tf.contrib.framework.get_global_step()) \n", + " \n", + " def predict(self, state, sess=None):\n", + " sess = sess or tf.get_default_session()\n", + " return sess.run(self.value_estimate, { self.state: state })\n", + "\n", + " def update(self, state, target, sess=None):\n", + " sess = sess or tf.get_default_session()\n", + " feed_dict = { self.state: state, self.target: target }\n", + " _, loss = sess.run([self.train_op, self.loss], feed_dict)\n", + " return loss" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def actor_critic(env, estimator_policy, estimator_value, num_episodes, discount_factor=1.0):\n", + " \"\"\"\n", + " Q-Learning algorithm for fff-policy TD control using Function Approximation.\n", + " Finds the optimal greedy policy while following an epsilon-greedy policy.\n", + " \n", + " Args:\n", + " env: OpenAI environment.\n", + " estimator: Action-Value function estimator\n", + " num_episodes: Number of episodes to run for.\n", + " discount_factor: Lambda time discount factor.\n", + " epsilon: Chance the sample a random action. Float betwen 0 and 1.\n", + " epsilon_decay: Each episode, epsilon is decayed by this factor\n", + " \n", + " Returns:\n", + " An EpisodeStats object with two numpy arrays for episode_lengths and episode_rewards.\n", + " \"\"\"\n", + "\n", + " # Keeps track of useful statistics\n", + " stats = plotting.EpisodeStats(\n", + " episode_lengths=np.zeros(num_episodes),\n", + " episode_rewards=np.zeros(num_episodes)) \n", + " \n", + " Transition = collections.namedtuple(\"Transition\", [\"state\", \"action\", \"reward\", \"next_state\", \"done\"])\n", + " \n", + " for i_episode in range(num_episodes):\n", + " # Reset the environment and pick the fisrst action\n", + " state = env.reset()\n", + " \n", + " episode = []\n", + " \n", + " # One step in the environment\n", + " for t in itertools.count():\n", + " \n", + " # Take a step\n", + " action_probs = estimator_policy.predict(state)\n", + " action = np.random.choice(np.arange(len(action_probs)), p=action_probs)\n", + " next_state, reward, done, _ = env.step(action)\n", + " \n", + " # Keep track of the transition\n", + " episode.append(Transition(\n", + " state=state, action=action, reward=reward, next_state=next_state, done=done))\n", + " \n", + " # Update statistics\n", + " stats.episode_rewards[i_episode] += reward\n", + " stats.episode_lengths[i_episode] = t\n", + " \n", + " # Calculate TD Target\n", + " value_next = estimator_value.predict(next_state)\n", + " td_target = reward + discount_factor * value_next\n", + " td_error = td_target - estimator_value.predict(state)\n", + " \n", + " # Update the value estimator\n", + " estimator_value.update(state, td_target)\n", + " \n", + " # Update the policy estimator\n", + " # using the td error as our advantage estimate\n", + " estimator_policy.update(state, td_error, action)\n", + " \n", + " # Print out which step we're on, useful for debugging.\n", + " print(\"\\rStep {} @ Episode {}/{} ({})\".format(\n", + " t, i_episode + 1, num_episodes, stats.episode_rewards[i_episode - 1]), end=\"\")\n", + "\n", + " if done:\n", + " break\n", + " \n", + " state = next_state\n", + " \n", + " return stats" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 12 @ Episode 300/300 (-13.0)" + ] + } + ], + "source": [ + "tf.reset_default_graph()\n", + "\n", + "global_step = tf.Variable(0, name=\"global_step\", trainable=False)\n", + "policy_estimator = PolicyEstimator()\n", + "value_estimator = ValueEstimator()\n", + "\n", + "with tf.Session() as sess:\n", + " sess.run(tf.initialize_all_variables())\n", + " # Note, due to randomness in the policy the number of episodes you need to learn a good\n", + " # policy may vary. ~300 seemed to work well for me.\n", + " stats = actor_critic(env, policy_estimator, value_estimator, 300)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnkAAAFZCAYAAADkTTkKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VPW9//HXmawkGbISWTWURSUCyiaLZbX1qtyKirFC\nVSyIIqLitQqu112UFojwwxZRi/VWsF60eqt0gVCrWENZCkGKqGBdgDBDQsJkP9/fH0OGTBaYwMkM\nkPfz8ciDme+c5Xu+k4d+8vluljHGICIiIiKnFVekKyAiIiIizlOQJyIiInIaUpAnIiIichpSkCci\nIiJyGlKQJyIiInIaUpAnIiIichpSkCcijbrpppv44Q9/2OL3cblc/M///E+L3yfSWstzQvh+d0Tk\n6BTkiZxmbrrpJlwuF1FRUbhcrsBP27Ztm3Wd3Nxc3njjjRaqpbMeffRRevToEelqAHDzzTczevTo\nSFejRXTt2jXod6r+T1RUFHBq/e6InM6iI10BEXHe8OHDeeONN6i71rnL1by/6dxut9PValGWZUW6\nCqeVqqoqYmJigsrWr19PTU0NAF999RUXXnghv//97xk4cGDQcafa747I6UqZPJHTUGxsLO3atSMz\nMzPwk5GREfh81KhRTJ48mdmzZ9OuXTuSk5O55ZZbqKysDBxTv8tt27Zt/Md//AepqakkJSWRnZ3N\na6+9Fvh8z549/PjHPyY1NZWEhARGjRrFP/7xj6B6rVmzhr59+9KmTRvOP/988vLyGtR93759TJo0\niczMTNq2bcv3v/99PvjggxNuk+eff55zzz2XNm3acPbZZ/PUU08FAhbwZ6keeeQR7rrrLtLT02nf\nvj133303tm0HjikvL2fq1KmkpKSQnp7O9OnTuf/++wNZxEcffZSlS5eydu3aQGZr2bJlgfOLi4u5\n4YYbaNu2LV26dOGZZ545Zr0//vhjRowYQUJCAmlpaUycOJHCwkIAdu7cicvl4uOPP25wjsvl4osv\nvgDg0KFD3HnnnXTu3JnExET69+/PypUrA8fv3r070J18+eWXk5SUxMMPP9ygLunp6YHfp3bt2mGM\nITU1Nej3DBr+7tx000384Ac/YOHChXTp0gW3283UqVOprq7mhRdeICsri7S0NG655Raqq6ub9b2J\nyFEYETmtTJo0yfzgBz846jEjR440bdu2NVOnTjXbt2837777rsnMzDR33313k9fp06ePmThxotm+\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n/U++v3Xr1tSyZUv6/fff6a+//qK+ffuSVqulzMxMIiK6ceMGOTk50dChQ+n06dP0yy+/UFhYGImi\nSD/++CMREeXm5lJISAi99tprdPz4cTp//jzNmjWLVCoVnTlzptzzmTZtGjVq1Ei+nZmZSdHR0SSK\nIiUnJ8vlU6dOpXr16tGWLVvo0qVLtGPHDqpbty59/PHHRER04cIFg8csXbqUvL29KSAgQN7H66+/\nTgMHDpRvf/rppxQXF0eXL1+mffv2UXBwMMXExMj3r1ixgkRRpNatW1NsbCxdvHiRMjIyaPPmzaRU\nKunLL7+klJQUWrZsGfn4+JAoinT9+vVyz3XChAnk6elJGzZsoJSUFJo1axaJokj79u0jIqJdu3aR\nUqmk1NRU+TFpaWmkVCpp7969RES0d+9ecnR0pIULF9L58+fp2LFjFBUVRZ06dTL4+7u4uFCvXr0o\nISGB/vrrL5Ikqdy4ih5T1nPv0qVLJIoixcXFybcFQaCGDRvS1q1bKSUlhXr27En+/v7UpUsX2rx5\nM6WkpFCfPn0oKCiICgoKiIgoPT2dfH19adSoUZSYmEjJycn07rvvkqenJ2VkZJQb19ixY+m5554z\nKDty5AiJokhLliyp8LwEQSA/Pz9atWoVnT9/nkaNGkWOjo70j3/8g1auXEnnz5+n0aNHk5OTE+l0\nOiLSP4+DgoLohRdeoBMnTtDx48cpMjKSGjVqRPn5+URElJCQQEqlksaPH09nzpyhnTt3UlBQEA0a\nNIiIiO7fv0/9+/enDh060M2bNyk9PZ3y8vLkmHx9fWnJkiV04cIFWrhwIQmCID8HiIgGDx5MzZs3\np19++YUuXbpE69atI61WS8uWLZO3admyJbVu3ZqOHj1KCQkJ1KVLF3JxcaHhw4eXWx9paWnk4uJC\nAwYMoMTERIqLi6OwsDCD5067du1o5MiRBo8bMWIEdezYUb4dERFBkZGR9Pvvv9PFixdp8eLF5ODg\nIJ9D0XMkMDCQfvzxR7p06RJdunSpzJjq1q1LixYtIiKi8+fPk1qtJhcXF0pJSSEiou+++44CAwMN\njl38HCMiIkir1dK4cePo7NmztGfPHnJ3d5ffF4iIvvzyS3J2dqZVq1ZRSkoKzZ07l9zc3MjOzk7e\nZtu2baRQKGjOnDmUkpIi13nRfnJzc0mtVtPu3buJSP869PLyIgcHB8rJySEiookTJ5Z6rhY3evRo\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "(,\n", + " ,\n", + " )" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plotting.plot_episode_stats(stats, smoothing_window=10)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/PolicyGradient/CliffWalk REINFORCE with Baseline Solution.ipynb b/PolicyGradient/CliffWalk REINFORCE with Baseline Solution.ipynb new file mode 100644 index 000000000..38d1f78e7 --- /dev/null +++ b/PolicyGradient/CliffWalk REINFORCE with Baseline Solution.ipynb @@ -0,0 +1,331 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import gym\n", + "import itertools\n", + "import matplotlib\n", + "import numpy as np\n", + "import sys\n", + "import tensorflow as tf\n", + "import collections\n", + "\n", + "if \"../\" not in sys.path:\n", + " sys.path.append(\"../\") \n", + "from lib.envs.cliff_walking import CliffWalkingEnv\n", + "from lib import plotting\n", + "\n", + "matplotlib.style.use('ggplot')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "env = CliffWalkingEnv()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "class PolicyEstimator():\n", + " \"\"\"\n", + " Policy Function approximator. \n", + " \"\"\"\n", + " \n", + " def __init__(self, learning_rate=0.01, scope=\"policy_estimator\"):\n", + " with tf.variable_scope(scope):\n", + " self.state = tf.placeholder(tf.int32, [], \"state\")\n", + " self.action = tf.placeholder(dtype=tf.int32, name=\"action\")\n", + " self.target = tf.placeholder(dtype=tf.float32, name=\"target\")\n", + "\n", + " # This is just table lookup estimator\n", + " state_one_hot = tf.one_hot(self.state, int(env.observation_space.n))\n", + " self.output_layer = tf.contrib.layers.fully_connected(\n", + " inputs=tf.expand_dims(state_one_hot, 0),\n", + " num_outputs=env.action_space.n,\n", + " activation_fn=None,\n", + " weights_initializer=tf.zeros_initializer)\n", + "\n", + " self.action_probs = tf.squeeze(tf.nn.softmax(self.output_layer))\n", + " self.picked_action_prob = tf.gather(self.action_probs, self.action)\n", + "\n", + " # Loss and train op\n", + " self.loss = -tf.log(self.picked_action_prob) * self.target\n", + "\n", + " self.optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n", + " self.train_op = self.optimizer.minimize(\n", + " self.loss, global_step=tf.contrib.framework.get_global_step())\n", + " \n", + " def predict(self, state, sess=None):\n", + " sess = sess or tf.get_default_session()\n", + " return sess.run(self.action_probs, { self.state: state })\n", + "\n", + " def update(self, state, target, action, sess=None):\n", + " sess = sess or tf.get_default_session()\n", + " feed_dict = { self.state: state, self.target: target, self.action: action }\n", + " _, loss = sess.run([self.train_op, self.loss], feed_dict)\n", + " return loss" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "class ValueEstimator():\n", + " \"\"\"\n", + " Value Function approximator. \n", + " \"\"\"\n", + " \n", + " def __init__(self, learning_rate=0.1, scope=\"value_estimator\"):\n", + " with tf.variable_scope(scope):\n", + " self.state = tf.placeholder(tf.int32, [], \"state\")\n", + " self.target = tf.placeholder(dtype=tf.float32, name=\"target\")\n", + "\n", + " # This is just table lookup estimator\n", + " state_one_hot = tf.one_hot(self.state, int(env.observation_space.n))\n", + " self.output_layer = tf.contrib.layers.fully_connected(\n", + " inputs=tf.expand_dims(state_one_hot, 0),\n", + " num_outputs=1,\n", + " activation_fn=None,\n", + " weights_initializer=tf.zeros_initializer)\n", + "\n", + " self.value_estimate = tf.squeeze(self.output_layer)\n", + " self.loss = tf.squared_difference(self.value_estimate, self.target)\n", + "\n", + " self.optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n", + " self.train_op = self.optimizer.minimize(\n", + " self.loss, global_step=tf.contrib.framework.get_global_step()) \n", + " \n", + " def predict(self, state, sess=None):\n", + " sess = sess or tf.get_default_session()\n", + " return sess.run(self.value_estimate, { self.state: state })\n", + "\n", + " def update(self, state, target, sess=None):\n", + " sess = sess or tf.get_default_session()\n", + " feed_dict = { self.state: state, self.target: target }\n", + " _, loss = sess.run([self.train_op, self.loss], feed_dict)\n", + " return loss" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def reinforce(env, estimator_policy, estimator_value, num_episodes, discount_factor=1.0):\n", + " \"\"\"\n", + " Q-Learning algorithm for fff-policy TD control using Function Approximation.\n", + " Finds the optimal greedy policy while following an epsilon-greedy policy.\n", + " \n", + " Args:\n", + " env: OpenAI environment.\n", + " estimator: Action-Value function estimator\n", + " num_episodes: Number of episodes to run for.\n", + " discount_factor: Lambda time discount factor.\n", + " epsilon: Chance the sample a random action. Float betwen 0 and 1.\n", + " epsilon_decay: Each episode, epsilon is decayed by this factor\n", + " \n", + " Returns:\n", + " An EpisodeStats object with two numpy arrays for episode_lengths and episode_rewards.\n", + " \"\"\"\n", + "\n", + " # Keeps track of useful statistics\n", + " stats = plotting.EpisodeStats(\n", + " episode_lengths=np.zeros(num_episodes),\n", + " episode_rewards=np.zeros(num_episodes)) \n", + " \n", + " Transition = collections.namedtuple(\"Transition\", [\"state\", \"action\", \"reward\", \"next_state\", \"done\"])\n", + " \n", + " for i_episode in range(num_episodes):\n", + " # Reset the environment and pick the fisrst action\n", + " state = env.reset()\n", + " \n", + " episode = []\n", + " \n", + " # One step in the environment\n", + " for t in itertools.count():\n", + " \n", + " # Take a step\n", + " action_probs = estimator_policy.predict(state)\n", + " action = np.random.choice(np.arange(len(action_probs)), p=action_probs)\n", + " next_state, reward, done, _ = env.step(action)\n", + " \n", + " # Keep track of the transition\n", + " episode.append(Transition(\n", + " state=state, action=action, reward=reward, next_state=next_state, done=done))\n", + " \n", + " # Update statistics\n", + " stats.episode_rewards[i_episode] += reward\n", + " stats.episode_lengths[i_episode] = t\n", + " \n", + " # Note: We could also update our value estimator here using\n", + " # TD methods, but we're not doing it. This is purely Monte CArlo.\n", + " \n", + " # Q-Value TD Target\n", + " # q_values_next = estimator_value.predict(next_state)\n", + " # td_target = reward + discount_factor * np.max(q_values_next)\n", + " \n", + " # SARSA TD Target for on policy-training\n", + " # next_action_probs = policy(next_state)\n", + " # next_action = np.random.choice(np.arange(len(next_action_probs)), p=next_action_probs) \n", + " # td_target = reward + discount_factor * q_values_next[next_action]\n", + " \n", + " # Update the function approximator using our target\n", + " # estimator_value.update(state, action, td_target)\n", + " \n", + " # Print out which step we're on, useful for debugging.\n", + " print(\"\\rStep {} @ Episode {}/{} ({})\".format(\n", + " t, i_episode + 1, num_episodes, stats.episode_rewards[i_episode - 1]), end=\"\")\n", + " # sys.stdout.flush()\n", + "\n", + " if done:\n", + " break\n", + " \n", + " state = next_state\n", + " \n", + " # Go through the episode and make policy updates\n", + " for t, transition in enumerate(episode):\n", + " # The return after this timestep\n", + " total_return = sum(discount_factor**i * t.reward for i, t in enumerate(episode[t:]))\n", + " # Update our value estimator\n", + " estimator_value.update(transition.state, total_return)\n", + " # Calculate baseline/advantage\n", + " baseline_value = estimator_value.predict(transition.state) \n", + " advantage = total_return - baseline_value\n", + " # Update our policy estimator\n", + " estimator_policy.update(transition.state, advantage, transition.action)\n", + " \n", + " return stats" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 14 @ Episode 2000/2000 (-15.0)" + ] + } + ], + "source": [ + "tf.reset_default_graph()\n", + "\n", + "global_step = tf.Variable(0, name=\"global_step\", trainable=False)\n", + "policy_estimator = PolicyEstimator()\n", + "value_estimator = ValueEstimator()\n", + "\n", + "with tf.Session() as sess:\n", + " sess.run(tf.initialize_all_variables())\n", + " # Note, due to randomness in the policy the number of episodes you need to learn a good\n", + " # policy may vary. ~2000-5000 seemed to work well for me.\n", + " stats = reinforce(env, policy_estimator, value_estimator, 2000, discount_factor=1.0)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnUAAAFZCAYAAAD+cdmEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmcE/X9P/DXZO8j7LILC4rURQSVVTxAxKNcavvz+KJt\nFVppKxZRQVChKiqg1SpKpeUQxIqKotSKB4dU8SgsRYEKchQWEEFAkWvZA3bZO/P5/THJZGYySSbZ\nJLPJvp6Ph5JMPvOZTyazmXc+pySEECAiIiKiuOawuwBERERE1HwM6oiIiIgSAIM6IiIiogTAoI6I\niIgoATCoIyIiIkoADOqIiIiIEgCDOqJW7I477sDPfvazqB/H4XDgH//4R9SPY7fW8j6B2F07RGQd\ngzqiOHTHHXfA4XAgKSkJDodD/a9NmzYh5TNr1iy8++67USplZD355JPo1q2b3cUAAIwcORKDBg2y\nuxhR0aVLF901ZfwvKSkJQHxdO0StRbLdBSCi8PTr1w/vvvsutPOHOxyh/U5zOp2RLlZUSZJkdxES\nSmNjI1JSUnTbNm7cCJfLBQD4/vvvcdlll2HZsmW49NJLdeni7dohag1YU0cUp1JTU9G+fXsUFBSo\n/7Vr1059feDAgRgxYgQeffRRtG/fHjk5Obj77rvR0NCgpjE2oe3YsQP/7//9P7Rt2xbZ2dkoKirC\nwoUL1dePHDmCX//612jbti0yMzMxcOBAfP3117pyrVq1ChdeeCEyMjJw0UUXobi42Kfsx44dw/Dh\nw1FQUIA2bdrgpz/9KdasWdPsc/LCCy/gvPPOQ0ZGBs455xxMmTJFDVAApRbqiSeewAMPPID8/Hx0\n7NgR48ePhyzLapq6ujrcddddyM3NRX5+Pu6991489thjai3hk08+iVdffRWrV69Wa64WLFig7n/i\nxAn8/ve/R5s2bdC5c2c899xzQcu9fv169O/fH5mZmcjLy8OwYcNQWloKANizZw8cDgfWr1/vs4/D\n4cB3330HADh16hTuv/9+nHHGGcjKykKvXr2wePFiNf2BAwfU5uEbbrgB2dnZePzxx33Kkp+fr15P\n7du3hxACbdu21V1ngO+1c8cdd+Daa6/F7Nmz0blzZzidTtx1111oamrCSy+9hMLCQuTl5eHuu+9G\nU1NTSJ8bEVkkiCjuDB8+XFx77bUB0wwYMEC0adNG3HXXXWLXrl1i+fLloqCgQIwfP95vPj179hTD\nhg0Tu3btEvv27RMrVqwQ//rXv9TX+/TpIy6++GKxdu1asX37djF06FDRtm1bUVZWJoQQ4tChQyIr\nK0uMGDFC7Ny5U3z++eeiZ8+ewuFwiIULFwohhKitrRU9evQQt956q9i0aZPYu3evmDJlikhPTxe7\ndu3y+37+9Kc/iW7duvl9/YknnhCFhYVi6dKlYv/+/eLjjz8WZ555pnj88cfVNIWFhSIvL09MnTpV\n7NmzR7z77rsiJSVFvPbaa2qasWPHio4dO4rly5eL3bt3i0cffVTk5OSox66urhbDhg0TV155pTh2\n7Jg4evSoqKurE0IIIUmS6Nixo3jllVfEd999J+bMmSMkSRIrV670W+4jR46INm3aiN/+9reipKRE\nfPnll6Jnz56iX79+aprLL79cjB49WrffqFGjxFVXXaU+HzBggBg4cKBYu3at2Ldvn5g3b55IS0tT\nj71//34hSZLo3LmzWLhwodi/f7/Yv3+/33Jp9/nyyy99XjNeO8OHDxc5OTli+PDhYteuXeLDDz8U\n6enp4vrrrxe333672LVrl/joo49ERkaGeOmll0L63IjIGgZ1RHFo+PDhIjk5WWRnZ+v+Gzx4sJpm\nwIABokuXLkKWZXXbyy+/LDIyMkRNTY2aj/bGnJOTI9544w3TY37++efC4XDoAq/6+npx2mmniT//\n+c9CCCEmTpwoCgsLhcvlUtMsX75cSJKkBnXz588XnTt31qURQohBgwaJcePG+X3PgYK6mpoakZmZ\nKT755BPd9gULFojc3Fz1eWFhobjpppt0aa677jpx2223CSGEOHXqlEhLSxPz58/Xpenbt6/u2Hfe\neacYOHCgTzkkSRIPPPCAbtt5550nHnvsMb/va9KkSaJz586isbFR3bZ161YhSZJYs2aNEEKIl156\nSeTn56tpGhoaRH5+vpg3b54QQohVq1aJjIwMcfLkSV3ef/jDH8QvfvELIYQ3QHvmmWf8lsUo1KCu\nQ4cOuvdxww03iPbt24uGhgZ120033SRuvfVWIYT1z42IrGGfOqI41bdvXyxYsEDXpy4zM1OXpk+f\nPrp+aFdeeSXq6+uxd+9enH/++T55PvjggxgxYgTmz5+PAQMGYPDgwbj44osBKE2z+fn5OOecc9T0\nqampuOyyy1BSUgIA2LlzJ/r06aPr23fVVVfpjrFx40YcPnwYOTk5uu0NDQ0+5beqpKQEtbW1+NWv\n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\nuRLJyckhT2nCoI6s4hcvWcVrhULB64WsMq7Z3BwxC+piiUEdWcUvXrKK1wqFgtcLWRXJoK5FDJQg\nIiIiouZhUEdERESUABjUERERESUABnVERERECYBBHREREVECYFBHRERElAAY1BERERElAAZ1RERE\nRAmAQR0RERFRAmBQR0RERJQAGNQRERERJQAGdUREREQJgEEdERERUQJgUEdERESUABjUERERESUA\nBnVERERECYBBHREREVECYFBHRERElAAY1BERERElAAZ1RERERAmAQR0RERFRAmBQR0RERJQAGNQR\nERERJQAGdUREREQJgEEdERERUQJgUEdERESUABjUERERESUABnVERERECYBBHREREVECYFBHRERE\nlAAY1BERAECUHoFr8ii7i0FERGFiUEdEigN7gCM/2l0KIiIKE4M6IgIACGF3CYiIqDkY1BEREREl\nAAZ1RERERAmAQR0RERFRAmBQR0RERJQAGNQRUcS4Rg6GkF12F4OIqFVKjtWB5s6di02bNiEnJwfT\npk0DAFRXV2PGjBkoLS1FQUEBxo0bh8zMTADAa6+9hi1btiAtLQ333nsvCgsLY1VUImoOlww4kuwu\nBRFRqxOzmrqBAwdi4sSJum1LlizBBRdcgJkzZ6KoqAiLFy8GAGzevBlHjx7FrFmzcNddd2HevHmx\nKiZRK8Y5TYiI4lnMgrpzzz0XWVlZum0bN25E//79AQADBgzAxo0bAQAbNmxQt3fr1g01NTWorKyM\nVVGJqDkkuwtARNQ62dqn7sSJE8jNzQUA5Obm4sSJEwCA8vJy5Ofnq+ny8vJQXl5uSxmJiIiI4kHM\n+tQ1lySZ//wvKSlBSUmJ+nzIkCFwOp2xKhbFudTUVF4vbg3p6agBmnU+Kt37S8kpEStXS8FrhULB\n64VCsWjRIvVxUVERioqKwsrH1qAuNzcXlZWV6r85OTkAlJq5srIyNV1ZWRnatm1rmofZm6+qqope\noSmhOJ1OXi9ucm0tgOb//VRVVUNKjpvfi5bxWqFQ8Hohq5xOJ4YMGRKRvGLa/CqEgNAsMNmrVy8U\nFxcDAIqLi9G7d28AQO/evbF69WoAwO7du5GVlaU20xJRy+T92+aACyIiO8Ts5/TMmTOxY8cOVFVV\nYdSoURgyZAhuvvlmTJ8+HatWrUK7du0wfvx4AMAll1yCzZs3Y+zYsUhPT8eoUaNiVUwiCpdgMEdE\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n2snJyaajIQD88ccfxa6I0G2q2ivLVN1iYmKka9eukpSUVOyvQGRkpLi7u8vIkSPl0KFD8uOPP4q/\nv79Nu47CbUWuXr0qo0ePlo0bN8qJEydkz549EhkZKV27dtXL33fffdK2bVvZunWr/PHHH9K/f3/x\n8vLSO3f8+eefxTp3tGnTxqZzR1ZWlrRs2VLat28v69atk5MnT8qOHTtk+vTpsmrVqlL3uWjnjgLj\nxo2TsLAwvS3j1KlTxd3dXT766CM5cuSIxMbGyjfffKO3uSnQpEkTcXR0lPfee0+f5uPjI0ajUb7+\n+mt9WkFj7vnz58vx48dl4cKFEhQUJKqqyqlTp0REa+NXuB1QgRUrVoijo6N88MEHeucOf3//m3bu\nePnll8XHx0eWLVsm8fHxMm3aNDEYDLJp0yabcrNmzZKAgAAJCAiQ2bNn28zbtGmTGI1GeeGFF2Tf\nvn2SkJAga9askREjRugdCOzpJFTUrbbxK9zu8ezZs6Ioivzyyy/6tKSkJFEURe+UkpycLHXr1pUe\nPXrIr7/+KidPnpRff/1VJkyYINu2bSs1rkOHDomqqnL27Fl92g8//CCDBg2S77//Xo4cOSLx8fEy\nd+5ccXFx0TtYiIhNG9QCDg4Oxdq7ms1mmT9/vohojebr168vDz74oOzZs0d27dolkZGR0rRpU72t\n14EDB8TR0VFeeOEFOXz4sKxZs0bq1atn0xbtnXfeET8/P4mNjZWUlBTJzs4uNaYHH3zQpu3XiBEj\nJDAwUBYvXizHjh2T/fv3y4IFC2TGjBl6mTZt2kiHDh3k999/l71790r37t3F3d29zDZ+ycnJ4u7u\nLoMHD5aDBw/Kr7/+Kq1atbI5F4iI5OXlSZ06daRt27bi7+9frB3ZQw89JM2aNZOVK1fK8ePHZffu\n3fLhhx/qHRVKOkbK8vTTT4ujo6NNW+Y+ffqIo6OjPPvsszZlS2rjV3Sf33zzTWnYsKH+fObMmWKx\nWPTOHe+++654enrafLZXr14tDg4O8vbbb8vRo0dlyZIl4unpWazNXrdu3cTR0VHGjBmjT2vbtq04\nOjrK9OnTy9zPCRMmyPLly+XIkSNy9OhR+cc//iFubm56e8nCn8GkpCTx9/eXf/zjHyV+F5T3fPve\ne++Jg4ODzJ0712adhdu0zpw5U7777js5fPiwHDlyRG/rWPRce/ToUTEYDHLixIky95tuDRO/WiYm\n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\nf+WjV6RiDsw1AAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "(,\n", + " ,\n", + " )" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plotting.plot_episode_stats(stats, smoothing_window=25)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/PolicyGradient/Continuous MountainCar Actor Critic Solution.ipynb b/PolicyGradient/Continuous MountainCar Actor Critic Solution.ipynb new file mode 100644 index 000000000..89a21c892 --- /dev/null +++ b/PolicyGradient/Continuous MountainCar Actor Critic Solution.ipynb @@ -0,0 +1,418 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import gym\n", + "import itertools\n", + "import matplotlib\n", + "import numpy as np\n", + "import sys\n", + "import tensorflow as tf\n", + "import collections\n", + "\n", + "import sklearn.pipeline\n", + "import sklearn.preprocessing\n", + "\n", + "if \"../\" not in sys.path:\n", + " sys.path.append(\"../\") \n", + "from lib.envs.cliff_walking import CliffWalkingEnv\n", + "from lib import plotting\n", + "\n", + "from sklearn.kernel_approximation import RBFSampler\n", + "\n", + "matplotlib.style.use('ggplot')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[2016-10-01 17:53:25,157] Making new env: MountainCarContinuous-v0\n" + ] + }, + { + "data": { + "text/plain": [ + "array([-0.21213569, 0.03012651])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "env = gym.envs.make(\"MountainCarContinuous-v0\")\n", + "env.observation_space.sample()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "FeatureUnion(n_jobs=1,\n", + " transformer_list=[('rbf1', RBFSampler(gamma=5.0, n_components=100, random_state=None)), ('rbf2', RBFSampler(gamma=2.0, n_components=100, random_state=None)), ('rbf3', RBFSampler(gamma=1.0, n_components=100, random_state=None)), ('rbf4', RBFSampler(gamma=0.5, n_components=100, random_state=None))],\n", + " transformer_weights=None)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Feature Preprocessing: Normalize to zero mean and unit variance\n", + "# We use a few samples from the observation space to do this\n", + "observation_examples = np.array([env.observation_space.sample() for x in range(10000)])\n", + "scaler = sklearn.preprocessing.StandardScaler()\n", + "scaler.fit(observation_examples)\n", + "\n", + "# Used to converte a state to a featurizes represenation.\n", + "# We use RBF kernels with different variances to cover different parts of the space\n", + "featurizer = sklearn.pipeline.FeatureUnion([\n", + " (\"rbf1\", RBFSampler(gamma=5.0, n_components=100)),\n", + " (\"rbf2\", RBFSampler(gamma=2.0, n_components=100)),\n", + " (\"rbf3\", RBFSampler(gamma=1.0, n_components=100)),\n", + " (\"rbf4\", RBFSampler(gamma=0.5, n_components=100))\n", + " ])\n", + "featurizer.fit(scaler.transform(observation_examples))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def featurize_state(state):\n", + " \"\"\"\n", + " Returns the featurized representation for a state.\n", + " \"\"\"\n", + " scaled = scaler.transform([state])\n", + " featurized = featurizer.transform(scaled)\n", + " return featurized[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "class PolicyEstimator():\n", + " \"\"\"\n", + " Policy Function approximator. \n", + " \"\"\"\n", + " \n", + " def __init__(self, learning_rate=0.01, scope=\"policy_estimator\"):\n", + " with tf.variable_scope(scope):\n", + " self.state = tf.placeholder(tf.float32, [400], \"state\")\n", + " self.action = tf.placeholder(dtype=tf.float32, name=\"action\")\n", + " self.target = tf.placeholder(dtype=tf.float32, name=\"target\")\n", + "\n", + " # This is just linear classifier\n", + " self.mu = tf.contrib.layers.fully_connected(\n", + " inputs=tf.expand_dims(self.state, 0),\n", + " num_outputs=1,\n", + " activation_fn=None,\n", + " weights_initializer=tf.zeros_initializer)\n", + " self.mu = tf.squeeze(self.mu)\n", + " \n", + " self.sigma = tf.contrib.layers.fully_connected(\n", + " inputs=tf.expand_dims(self.state, 0),\n", + " num_outputs=1,\n", + " activation_fn=None,\n", + " weights_initializer=tf.zeros_initializer)\n", + " \n", + " self.sigma = tf.squeeze(self.sigma)\n", + " self.sigma = tf.nn.softplus(self.sigma) + 1e-5\n", + " self.normal_dist = tf.contrib.distributions.Normal(self.mu, self.sigma)\n", + " self.action = self.normal_dist.sample_n(1)\n", + " self.action = tf.clip_by_value(self.action, env.action_space.low[0], env.action_space.high[0])\n", + "\n", + " # Loss and train op\n", + " self.loss = -self.normal_dist.log_prob(self.action) * self.target\n", + " # Add cross entropy cost to encourage exploration\n", + " self.loss -= 1e-4 * self.normal_dist.entropy()\n", + " \n", + " self.optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n", + " self.train_op = self.optimizer.minimize(\n", + " self.loss, global_step=tf.contrib.framework.get_global_step())\n", + " \n", + " def predict(self, state, sess=None):\n", + " sess = sess or tf.get_default_session()\n", + " state = featurize_state(state)\n", + " return sess.run(self.action, { self.state: state })\n", + "\n", + " def update(self, state, target, action, sess=None):\n", + " sess = sess or tf.get_default_session()\n", + " state = featurize_state(state)\n", + " feed_dict = { self.state: state, self.target: target, self.action: action }\n", + " _, loss = sess.run([self.train_op, self.loss], feed_dict)\n", + " return loss" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "class ValueEstimator():\n", + " \"\"\"\n", + " Value Function approximator. \n", + " \"\"\"\n", + " \n", + " def __init__(self, learning_rate=0.1, scope=\"value_estimator\"):\n", + " with tf.variable_scope(scope):\n", + " self.state = tf.placeholder(tf.float32, [400], \"state\")\n", + " self.target = tf.placeholder(dtype=tf.float32, name=\"target\")\n", + "\n", + " # This is just linear classifier\n", + " self.output_layer = tf.contrib.layers.fully_connected(\n", + " inputs=tf.expand_dims(self.state, 0),\n", + " num_outputs=1,\n", + " activation_fn=None,\n", + " weights_initializer=tf.zeros_initializer)\n", + "\n", + " self.value_estimate = tf.squeeze(self.output_layer)\n", + " self.loss = tf.squared_difference(self.value_estimate, self.target)\n", + "\n", + " self.optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate)\n", + " self.train_op = self.optimizer.minimize(\n", + " self.loss, global_step=tf.contrib.framework.get_global_step()) \n", + " \n", + " def predict(self, state, sess=None):\n", + " sess = sess or tf.get_default_session()\n", + " state = featurize_state(state)\n", + " return sess.run(self.value_estimate, { self.state: state })\n", + "\n", + " def update(self, state, target, sess=None):\n", + " sess = sess or tf.get_default_session()\n", + " state = featurize_state(state)\n", + " feed_dict = { self.state: state, self.target: target }\n", + " _, loss = sess.run([self.train_op, self.loss], feed_dict)\n", + " return loss" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def actor_critic(env, estimator_policy, estimator_value, num_episodes, discount_factor=1.0):\n", + " \"\"\"\n", + " Q-Learning algorithm for fff-policy TD control using Function Approximation.\n", + " Finds the optimal greedy policy while following an epsilon-greedy policy.\n", + " \n", + " Args:\n", + " env: OpenAI environment.\n", + " estimator: Action-Value function estimator\n", + " num_episodes: Number of episodes to run for.\n", + " discount_factor: Lambda time discount factor.\n", + " epsilon: Chance the sample a random action. Float betwen 0 and 1.\n", + " epsilon_decay: Each episode, epsilon is decayed by this factor\n", + " \n", + " Returns:\n", + " An EpisodeStats object with two numpy arrays for episode_lengths and episode_rewards.\n", + " \"\"\"\n", + "\n", + " # Keeps track of useful statistics\n", + " stats = plotting.EpisodeStats(\n", + " episode_lengths=np.zeros(num_episodes),\n", + " episode_rewards=np.zeros(num_episodes)) \n", + " \n", + " Transition = collections.namedtuple(\"Transition\", [\"state\", \"action\", \"reward\", \"next_state\", \"done\"])\n", + " \n", + " for i_episode in range(num_episodes):\n", + " # Reset the environment and pick the fisrst action\n", + " state = env.reset()\n", + " \n", + " episode = []\n", + " \n", + " # One step in the environment\n", + " for t in itertools.count():\n", + " \n", + " # env.render()\n", + " \n", + " # Take a step\n", + " action = estimator_policy.predict(state)\n", + " next_state, reward, done, _ = env.step(action)\n", + " \n", + " # Keep track of the transition\n", + " episode.append(Transition(\n", + " state=state, action=action, reward=reward, next_state=next_state, done=done))\n", + " \n", + " # Update statistics\n", + " stats.episode_rewards[i_episode] += reward\n", + " stats.episode_lengths[i_episode] = t\n", + " \n", + " # Calculate TD Target\n", + " value_next = estimator_value.predict(next_state)\n", + " td_target = reward + discount_factor * value_next\n", + " td_error = td_target - estimator_value.predict(state)\n", + " \n", + " # Update the value estimator\n", + " estimator_value.update(state, td_target)\n", + " \n", + " # Update the policy estimator\n", + " # using the td error as our advantage estimate\n", + " estimator_policy.update(state, td_error, action)\n", + " \n", + " # Print out which step we're on, useful for debugging.\n", + " print(\"\\rStep {} @ Episode {}/{} ({})\".format(\n", + " t, i_episode + 1, num_episodes, stats.episode_rewards[i_episode - 1]), end=\"\")\n", + "\n", + " if done:\n", + " break\n", + " \n", + " state = next_state\n", + " \n", + " return stats" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Step 16840 @ Episode 1/100 (0.0)" + ] + } + ], + "source": [ + "tf.reset_default_graph()\n", + "\n", + "global_step = tf.Variable(0, name=\"global_step\", trainable=False)\n", + "policy_estimator = PolicyEstimator(learning_rate=0.1)\n", + "value_estimator = ValueEstimator(learning_rate=0.1)\n", + "\n", + "with tf.Session() as sess:\n", + " sess.run(tf.initialize_all_variables())\n", + " # Note, due to randomness in the policy the number of episodes you need to learn a good\n", + " # TODO: Sometimes the algorithm gets stuck, I'm not sure what exactly is happening there.\n", + " stats = actor_critic(env, policy_estimator, value_estimator, 100, discount_factor=0.95)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnwAAAFZCAYAAAACZPJOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VNX5P/DPmSwzWSbLTBLCHpYEIRD2VYUAtl+3Kl+1\n0J90waIoKArUFlGrVStKtWVVbHFfquICLlVcvhCkgpXI0iQQkVV2wkwSksxMtnt+f9xkyGSdmcw+\nn/fr5cvk5s69z+QGeHLOeZ4jpJQSRERERBSyNP4OgIiIiIi8iwkfERERUYhjwkdEREQU4pjwERER\nEYU4JnxEREREIY4JHxEREVGIY8JHRC655ZZb8NOf/tTr99FoNPjnP//p9fv4W7i8T8B3PztE1BIT\nPqIwccstt0Cj0SAiIgIajcb+X0JCgkvXWbVqFd555x0vRelZjzzyCDIzM/0dBgDgtttuw5QpU/wd\nhlf06dPH4Weq+X8REREAgutnhyjURPo7ACLynYkTJ+Kdd95B037rGo1rv/fp9XpPh+VVQgh/hxBS\namtrERUV5XAsPz8f9fX1AIAff/wRY8eOxYcffojRo0c7nBdsPztEoYQjfERhJDo6GqmpqUhLS7P/\nl5KSYv/65MmTMXv2bCxZsgSpqalITEzE7bffjpqaGvs5zafl9u3bhyuvvBLJycmIj49HdnY23njj\nDfvXz5w5g1/84hdITk5GbGwsJk+ejO+++84hri1btmDo0KGIiYnBsGHDkJeX1yL2c+fOYdasWUhL\nS0NCQgIuv/xybNu2rdPfk9WrV2PgwIGIiYnBgAEDsHTpUnvyAqijVw8//DAWLFgAo9GI9PR0LFq0\nCIqi2M+x2WyYM2cOkpKSYDQaceedd+L++++3jy4+8sgjeOGFF7B161b7iNerr75qf315eTl+/etf\nIyEhAT179sSTTz7ZYdzffPMNJk2ahNjYWBgMBsycORMlJSUAgIMHD0Kj0eCbb75p8RqNRoPDhw8D\nAKqqqnDPPfegR48eiIuLw8iRI7Fhwwb7+ceOHbNPOV9zzTWIj4/HQw891CIWo9Fo/3lKTU2FlBLJ\nyckOP2dAy5+dW265BT/5yU+wZs0a9OzZE3q9HnPmzEFdXR2ee+45ZGRkwGAw4Pbbb0ddXZ1Lz42I\nmpFEFBZmzZolf/KTn7R7Tm5urkxISJBz5syRxcXF8uOPP5ZpaWly0aJFbV4nJydHzpw5UxYXF8sj\nR47ITZs2yX/961/2r48ZM0YOHz5cbt++XRYWFsoZM2bI5ORkaTKZpJRSnjp1SsbFxcnZs2fL/fv3\nyy+//FLm5ORIjUYj33jjDSmllFarVQ4aNEj+/Oc/l7t27ZKHDh2SS5culTqdThYXF7f5fv70pz/J\nzMzMNr/+8MMPy4yMDPnBBx/Io0ePyk8//VT27t1bPvTQQ/ZzMjIypMFgkMuWLZMHDx6U77zzjoyK\nipIvvvii/Zz58+fL9PR0+fHHH8sDBw7IJUuWyMTERPu9Kysr5cyZM+Wll14qz507J8+ePSttNpuU\nUkohhExPT5fPP/+8PHz4sHzmmWekEEJu3ry5zbjPnDkjExIS5C9/+UtZVFQkv/76a5mTkyMnTpxo\nP2f8+PFy3rx5Dq+bO3euvOyyy+yf5+bmysmTJ8vt27fLI0eOyHXr1kmtVmu/99GjR6UQQvbs2VO+\n8cYb8ujRo/Lo0aNtxtX0NV9//XWLrzX/2Zk1a5ZMTEyUs2bNksXFxfKjjz6SOp1OXn311fI3v/mN\nLC4ulp988omMiYmRzz33nEvPjYgcMeEjChOzZs2SkZGRMj4+3uG/6667zn5Obm6u7NOnj1QUxX7s\nH//4h4yJiZEWi8V+nab/aCcmJspXXnml1Xt++eWXUqPROCRl1dXVsmvXrvKxxx6TUkr5wAMPyIyM\nDFlfX28/5+OPP5ZCCHvC99JLL8mePXs6nCOllFOmTJELFy5s8z23l/BZLBYZGxsrP/vsM4fjr776\nqkxKSrJ/npGRIa+//nqHc6666ip58803SymlrKqqklqtVr700ksO54wbN87h3rfeequcPHlyiziE\nEHLBggUOxwYOHCjvv//+Nt/Xgw8+KHv27Clra2vtx/bu3SuFEHLbtm1SSimfe+45aTQa7efU1NRI\no9Eo161bJ6WUcsuWLTImJkZeuHDB4dq//e1v5f/+7/9KKS8mb48//nibsTTnasLXpUsXh/dxzTXX\nyNTUVFlTU2M/dv3118uf//znUkrnnxsROeIaPqIwMm7cOLz66qsOa/hiY2MdzhkzZozDurdLL70U\n1dXVOHToEAYPHtzimvfeey9mz56Nl156Cbm5ubjuuuswfPhwAOp0r9FoxIABA+znR0dHY+zYsSgq\nKgIA7N+/H2PGjHFYS3jZZZc53CM/Px+nT59GYmKiw/GampoW8TurqKgIVqsVN954o8Px+vp61NTU\nwGQywWg0AgCGDRvmcE63bt1w9OhRAOr0aW1tLcaOHetwzvjx4/Hxxx87FcvQoUNbXP/s2bNtnr9v\n3z6MGzcOkZEX/wrPyclBYmIiioqKcNlll2HGjBlYsGABPv74Y0ybNg0fffQRLBYLpk+fDkD9nlZX\nV6Nbt24O166trUVWVpbDseZr8Txp4MCBDu8jPT0dAwYMcFgnmJ6ejuLiYgCuPTciuogJH1EYiYmJ\nQZ8+fVx6jVRnAtosfnjwwQfxy1/+Eps2bcLmzZuxdOlSLF68GI8++iiA1osmml6vtWs3/1xRFAwa\nNAgbN250SFaBlgmrsxrX4L377rutVvIaDAb7x9HR0S3ia7qGr73vjzM6un5r2rpf4/GkpCT87Gc/\nw6uvvopp06bhtddew3XXXWevylYUBUlJScjPz2/xPW0eT1xcnEvvxxXNC0CEEK0ea/x+uPLciOgi\nJnxE5GDnzp0OCcz27duh0+nQt2/fNl+TkZGBO+64A3fccQeWLVuGp59+Go8++iiys7Nx/vx5FBcX\n45JLLgEAVFdX49tvv8Vdd90FAMjOzsbrr7/ucM/mxRijRo3Ca6+9Br1e71Bk0hnZ2dnQ6XQ4dOgQ\n/ud//sft6/Tv3x/R0dHYsWOH/T0CaFEwER0d7bGiguzsbLz88suoq6uzj47t3bsX5eXlyM7Otp/3\n61//GjfddBN++OEHfPLJJ/jggw/sXxs1ahTKyspgtVoxaNAgj8TlC556bkThhgkfURipqalpdaqw\nS5cu9o9NJhPuvPNO3H333Th06BAeeugh3HHHHYiJiWnxuqqqKixevBg33ngj+vTpg9LSUmzatMme\ndEyZMgWjR4/GzTffjDVr1iAhIQGPPfYYqqurcccddwAA5s6di+XLl+O2227Dvffei5MnT+LBBx90\nGMGaOXMmVqxYgWuuuQZ//vOfkZWVhbNnz2Lz5s0YNGgQrrvuunbf8969ex2OaTQaDBkyBPfffz/u\nv/9+AMAVV1yBuro6FBQUYPfu3U5VygLqCOPtt9+OBx98EGlpacjKysIrr7yC/fv326tTAbXa9913\n38W+ffvQpUsX6PX6FiNpzrrrrruwatUqzJo1C0uWLEFpaSnuvPNOTJw4EZdeeqn9vKuuugpJSUmY\nMWMGDAaDQ4XslClTcMUVV+CGG27AsmXLkJOTg9LSUmzfvh0xMTGYPXu2W7F5W1xcnEeeG1G4YcJH\nFEa2bdvmsGarcVStpKTEPhV20003Qa/X47LLLkNtbS1+8Ytf4Iknnmj1epGRkSgtLcWtt96K06dP\nIyEhAZMnT8bTTz9tP+eDDz7AwoULce2116K6uhpjxozBl19+ab9ft27d8NFHH2HBggUYPnw4MjMz\nsWrVKkydOtV+Da1Wi61bt+LBBx/Eb3/7W5SUlCA1NRVjxozBVVdd1e57Pn78OEaMGOFwTKvVwmKx\n4MEHH0T37t2xevVq3HvvvYiJiUFWVhZmzZplP9eZqdq//OUvqK6uxsyZM6HRaHDzzTdj1qxZ2Lx5\ns/2c2bNnIy8vDxMmTEBFRQVeeukl/PrXv3ZrKjgtLQ2ff/45/vCHP2DMmDHQarW45pprsHz5cofz\nIiIicPPNN2PlypVYuHBhi56LH374IR555BEsWrQIJ0+ehMFgwLBhw/CHP/zBpfffnLd7Hzrz3IjI\nkZDNF294ydq1a7Fr1y4kJiba/zGorKzEihUrUFJSgrS0NCxcuNC+HufFF1/Enj17oNVqceeddyIj\nIwMAkJeXZ+8TdcMNN2DSpEkAgMOHD+PZZ59FbW0thg8fzj/4RG6YPHkyMjMz8Y9//MPfoQS9qVOn\nwmAwcGcJIgoIPmu8PHnyZDzwwAMOxzZu3IghQ4Zg5cqVyM7Otidyu3fvxtmzZ7Fq1SrMmTMH69at\nA6AmiO+99x6eeOIJLF26FO+++y4sFgsA4Pnnn8cdd9yBlStX4vTp09izZ4/TsTVWC1Lw4bMLbqHy\n/AoLC/Hqq6/ihx9+QGFhIRYvXoy8vDzcdttt/g7Na0Ll2YUrPr/g5s7z81nCd8kll7So9MrPz7eP\n0OXm5iI/Px+Aumi88XhmZiYsFgvKysqwd+9e5OTkIDY2FnFxccjJycGePXvsC4/79+8PQN0+aufO\nnU7Hxh/84MVn51m+3oYsVJ6fEAJr167FmDFjcOmllyIvLw8bN250WDMXakLl2YUrPr/g5s7z8+sa\nvvLyciQlJQFQWwiUl5cDAMxms0MfJYPBALPZ7PRxo9EIs9nso3dBFDqarjkj52VnZ2PHjh3+DoOI\nqE1Bs5euEKJFr6hGrR3nhulEREREKr+O8CUlJaGsrMz+/8Yu+gaDASaTyX6eyWRCcnIyjEajwzCm\nyWTC4MGDYTQaWz2/LUVFRQ7Xaew8T8GHzy648fkFLz674MbnF9ymT5+O9evX2z/Pzs526MHZGp8m\nfI0d+xuNHDkSeXl5mDZtGvLy8jBq1CgAakPQzz77DBMmTMCBAwcQFxeHpKQkDB06FG+99RYsFgsU\nRUFBQQFmzpyJuLg4xMTE4ODBg+jXrx+++uqrdls1tPaNOXXqlHfeNHmVXq9HRUWFv8MgN/H5BS8+\nu+DG5xfcunXr5nLS7rO2LCtXrsS+fftQUVGBxMRETJ8+HaNHj8by5ctx/vx5pKSkYNGiRfbCjhde\neAF79uyBTqfD3Llz7V3+8/Ly8P7770MI0aItyzPPPGNvy3LLLbe4FB8TvuDEv7SCG59f8OKzC258\nfsGt+R7YzvBZwhfomPAFJ/6lFdz4/IIXn11w4/MLbu4kfEFTtEFERERE7mHCR0RERBTimPARERER\nhTgmfEREREQhjgkfERERUYhjwkd2ylvrIOvr/R0GEREReRgTPgIASKUe8v8+AmwWf4dCREREHsaE\nj1Q2q+P/iYiIKGQw4SOVlQkfERFRqGLCRyqO8BEREYUsJnykaly7V82Ej4iIKNQw4SOVtSHhs9n8\nGwcRERF5HBM+UjWM8ElO6RIREYUcJnwEoEmiV80RPiIiolDDhI9UjWv4OMJHREQUcpjwkcpqBYSG\nCR8REVEIYsJHKpsFSEhilS4REVEIYsJHKqsFSDJwhI+IiCgEMeEjlc2qJnws2iAiIgo5TPgIgFql\nK5KNbMtCREQUgpjwkcpqARINXMNHREQUgpjwkcrGNXxEREShigkfqWxWCCZ8REREIYkJH6lsFiDJ\nyKINIiKiEMSEjyClVBsvc4SPiIgoJDHhI6CuFhAAYuOB2hpIpd7fEREREZEHMeEjdVRPFwuh0QDR\nOqC62t8RERERkQcx4SO1JUtMrPqxTsfWLERERCGGCR+pBRvaGPVjbQzX8REREYUYJnykFmzENCR8\nOh0TPiIiohDDhI/sa/gAALoYtmYhIiIKMUz4CNJmgWhcw8cpXSIiopDDhI/Uog2dOqUrdDGQTPiI\niIhCChM+Uos2HKZ0mfARERGFEiZ8pE7hNhZtaHWAjWv4iIiIQgkTPmpZtMEpXSIiopDChI8c1vBB\ny8bLREREoYYJHzlW6epiOKVLREQUYpjwUcMIH6d0iYiIQhUTPmpYw9fQlkUbA8kpXSIiopDChI9Y\ntEFERBTimPCROqXbtC0Lt1YjIiIKKUz4qGXjZY7wERERhRQmfGFOKgpQXQ3odOoB7qVLREQUcpjw\nhbsaGxCthdBEqJ/rYjilS0REFGKY8IU768UKXQANW6tZIaX0X0xERETkUUz4wp2tScEGABEZCURE\nALU1fgyKiIiIPCnS3wEAwMcff4wtW7ZACIFevXph3rx5MJvNWLlyJSorK9GnTx/Mnz8fERERqKur\nw5o1a3D48GHo9XosXLgQKSkpAIANGzZgy5YtiIiIwKxZszB06FA/v7Mg0LQlS6PGwo1orX9iIiIi\nIo/y+wif2WzGpk2bsGzZMjz99NOor6/Hv//9b7zxxhu49tprsXLlSsTFxWHz5s0AgM2bNyM+Ph6r\nVq3CNddcg9dffx0AcOLECezYsQPLly/HkiVL8Pzzz3Na0hlWCxDTLOFjaxYiIqKQ4veEDwAURYHN\nZkN9fT1qampgMBhQVFSEsWPHAgAmTZqEnTt3AgB27tyJSZMmAQDGjRuHwsJCAEB+fj4mTJiAiIgI\npKWloWvXrjh48KB/3lAwsVnUytym2JqFiIgopPh9StdgMODaa6/FvHnzoNVqkZOTgz59+iAuLg4a\njZqPGo1GmM1mAOqIoNFoBABoNBrExsaisrISZrMZWVlZDtdtfA21TVqtEDFM+IiIiEKZ30f4qqqq\nkJ+fj2effRZ///vfUV1djd27d7c4TwjR7nVam77t6DWE1tfwaWMA7qdLREQUMvw+wldQUIC0tDTE\nx8cDAMaMGYMDBw6gqqoKiqJAo9HAZDIhOTkZgDpyZzKZYDAYoCgKLBYL4uPjYTQacf78eft1m76m\nuaKiIhQVFdk/nz59OvR6vRffZeCyyXrIxCTENHn/VfF6RAkgOgi+J9HR0WH77EIBn1/w4rMLbnx+\nwW/9+vX2j7Ozs5Gdnd3u+X5P+FJSUvDDDz+gpqYGUVFRKCgoQL9+/ZCdnY1vvvkGEyZMwNatWzFq\n1CgAwKhRo7B161ZkZmZix44dGDx4sP34qlWrcO2118JsNuPMmTPo379/q/ds7RtTUVHh3TcaoJSy\nUiAuHnVN3r8SEYm6slJUB8H3RK/Xh+2zCwV8fsGLzy648fkFN71ej+nTp7v0Gr8nfP3798e4ceOw\nePFiREREICMjA1dccQVGjBiBFStW4O2330ZGRgamTJkCAJgyZQpWr16Nu+++G3q9Hvfccw8AoEeP\nHhg/fjwWLlyIyMhI3HrrrZzSdYbNAhjTHI9xDR8REVFIEZK9SwAAp06d8ncIfqE8/1dg8Ahoxk2+\neOz9VwBtDDTXuPbbgz/wt9TgxucXvPjsghufX3Dr1q2by6/xe9EG+Ze0WSFYtEFERBTSmPA1kKUm\nf4fgH1aL4166AKd0iYiIQgwTvkZHf/B3BP5ha2WnDV0MYONOG0RERKGCCV8DeeSAv0PwD6ulRR8+\noYuB5JQuERFRyGDC10CG7QifFWi+04ZWxxE+IiKiEMKEr9HRg5CK4u8ofM9mBbStTOlyhI+IiChk\nMOFrFBsHnAuv1iyyrhaorwOiox2/oGXRBhERUShhwtdA9MmCPBJm07oN++i2aFDNKl0iIqKQwoSv\nUZ9MINwKN2zWlhW6gLqGj1O6REREIYMJXwORkRV+hRu2VnrwAWzLQkREFGKY8DXq3Q84eUxd1xYu\nrNbWE76oaECph6yr831MRERE5HFM+BoIrQ5ITQdOHPV3KL7TWtNlQF3Tp40BqjnKR0REFAqY8DUR\nboUbre6j24iFG0RERCGDCV9T4Va4YW19hA8ACzeIiIhCCBO+JsKucMNmUaduW8MRPiIiopDBhK+p\nbr0Acwmk1eLvSHzD2sq2ao20OiZ8REREIYIJXxMiMhLokQEcO+jvUHyjofFyq3Qs2iAiIgoVTPia\nCavCjTaqdAFA6GIgOcJHREQUEpjwNZeRCXk0TAo3rG00XgYa2rIw4SMiIgoFTPiaEX2ygDAp3JA2\nC9uyEBERhQEmfM2lpgPV1ZBlZn9H4n22Doo2uIaPiIgoJDDha0YIofbjC4dRvo6KNjjCR0REFBKY\n8LVCZGSGR+FGe2v4dGzLQkREFCqY8LVCbcAcBoUb7VTpci9dIiKi0MGErzV9+gNHD0JK6e9IvEZK\nqY7gtbHThtDFsi0LERFRiGDC1wqRkKyOfJ077e9QvKemBoiMVJtNt0bHvXSJiIhCBRO+Nqjr+EJ4\nWre9fXQBFm0QERGFECZ8bQn1Sl1rO+v3gIa9dLmGj4iIKBQw4WuDyMgK/RG+tlqyAA176XKEj4iI\nKBQw4WtL737AiaOQdXX+jsQ7bNYORvg4pUtERBQqmPC1Qehi1F03Th7zdyjeYWunBx+gTunWVEMq\niu9iIiIiIq9gwteOUC7ckFarmtS2QWg0QLQWqOE6PiIiomDHhK89GZlAqDZgbq/pciMWbhAREYUE\nJnztEH2yQneLtfb20W3E1ixEREQhgQlfe7r3Bs6fhbRZ/B2J57W3j24jrY7bqxEREYWANrZZcFRX\nV4e8vDwcPXoUtmZTfHfddZdXAgsEIjIS6NkHOHYYGDDY3+F4ls0CJBraP4cjfERERCHBqYRvzZo1\nOHbsGEaOHInExERvxxRQREYm5NEDEKGW8FmtQEwHI3y6WCZ8REREIcCphG/v3r1Ys2YN4uLivB1P\n4OmTBbl7h7+j8Dhps0LTwRo+odVBVlshfBQTEREReYdTa/hSUlJQW1vr7VgCksjIBEKxcKOjPnwA\np3SJiIhCRJsjfIWFhfaPJ06ciKeeegpXXXUVkpKSHM4bPDjEpjqbS+sK2KyQF0ohEpL9HY3ndLSX\nLsCiDSIiohDRZsK3du3aFsfefPNNh8+FEFizZo3nowogQgi1H9+Rg8DQ0f4Ox3PYloWIiChstJnw\nPfPMM76MI6CJPg2FG6GW8HVUtKGNAaou+CYeIiIi8hqn1vD95S9/afX4008/7dFgApXagDnEdtyw\nWTjCR0REFCacSviKiopcOh5yMjKBowchpfR3JB4hlXqgpkZdo9ceJnxEREQhod22LG+//TYAtfFy\n48eNzp49i9TUVO9FFkBEYjKg1QIlZ9QijmBnswI6nbo+sR1Cq4PCog0iIqKg127CZzKZAACKotg/\nbpSSkoLp06d7L7JAk6FO64qQSfg6mM4FOMJHREQUItpN+ObNmwcAyMrKwhVXXOGTgAKV6JMJHP0B\nGDvJ36F0ntXacQ8+gG1ZiIiIQoRTO20MGTIEZ8+ebXE8KioKSUlJ0GicWgrYJovFgueeew7Hjx+H\nEAJz585F165dsWLFCpSUlCAtLQ0LFy5EbKw6KvXiiy9iz5490Gq1uPPOO5GRkQEAyMvLw4YNGwAA\nN9xwAyZN8lxyJvpkQdnwmseu51fONF0GuLUaERFRiHAq4bv77rvb/JpGo8HIkSNx6623tmjK7KyX\nXnoJw4cPx6JFi1BfX4/q6mq8//77GDJkCK6//nps3LgRGzZswMyZM7F7926cPXsWq1atwg8//IB1\n69bh8ccfR2VlJd577z0sW7YMUkrcd999GD16tD1J7LTe/YATRyHr6iAinfq2BS5nmi4DgE4HVDPh\nIyIiCnZODc3dfvvtuPzyy7Fy5Uq88cYbWLlyJS6//HLceuutePrpp6EoCl544QW3ArBarSguLsbk\nyZMBABEREYiNjUV+fr59hC43Nxf5+fkAgJ07d9qPZ2ZmwmKxoKysDHv37kVOTg5iY2MRFxeHnJwc\n7Nmzx62YWiN0sYAhFTj1o8eu6TfOtGQBuIaPiIgoRDiV8K1fvx5z5sxBeno6IiMjkZ6ejttuuw3v\nvfceunfvjnnz5mHfvn1uBXD27Fno9Xo8++yzWLx4Mf7+97+juroa5eXl9hHDpKQklJeXAwDMZjOM\nRqP99QaDAWazuc3jHtWlu1qpG+SkzQrRUdNlQF3DZ7OGTDsaIiKicOXU3KSUEiUlJejevbv92Pnz\n56EoCgBAp9Ohvr7erQAURcGRI0cwe/Zs9OvXDy+//DI2btzo0jWEEC4lJUVFRQ49BKdPnw69Xt/h\n6yxdu0NTdQE6J84NZDapQNEnItaJ91GmiYBep4OIjvZBZK6Ljo526tlRYOLzC158dsGNzy/4rV+/\n3v5xdnY2srOz2z3fqYTv6quvxqOPPorc3FwYjUaYzWZs2bIFV199NQBg165dyMrKcitgg8EAo9GI\nfv36AQDGjRuHjRs3IikpCWVlZfb/JyYm2s9v2iLGZDIhOTkZRqPRIYkzmUwYPHhwq/ds7RtTUVHR\nYaxKfCJw+gRqnTg3kCllpUBEpFPvGTodKs6fg9Anej8wN+j1eufeBwUkPr/gxWcX3Pj8gpter3e5\nNZ5TU7rXX3895s6di7KyMuTn58NsNmPu3LmYNm0aAGDMmDG4//77XY8Y6nSt0WjEqVOnAAAFBQXo\n0aMHRo4ciby8PABq9e2oUaMAAKNGjcLWrVsBAAcOHEBcXBySkpIwdOhQFBQUwGKxoLKyEgUFBRg6\ndKhbMbVFGFMhTec8ek2/sDlZtAGo++lyHR8REVFQc7rcdNiwYRg2bJhXgrjllluwevVq1NXVoUuX\nLpg3bx4URcHy5cuxZcsWpKSkYNGiRQCAESNGYPfu3Zg/fz50Oh3mzp0LAIiPj8eNN96I++67D0II\n3HTTTYiLi/NsoIZUwHzes9f0B5sVSOvm3Lm6GFbqEhERBTmnEr66ujrk5eXh6NGjsNkcG/Hedddd\nnQ4iIyMDTzzxRIvjf/zjH1s9f/bs2a0ez83NRW5ubqfjaZMxFTCXeO/6vmJ1sg8f0FC4webLRERE\nwcyphG/NmjU4duwYRo4caV9LF5biEwGrBbKmGiJa6+9o3CZtVmicacsCsDULERFRCHAq4du7dy/W\nrFnj+SnSICM0GsCQoo7ypffwdzjus1oAZ9qyAJzSJSIiCgFOFW2kpKSgtrbW27EEB0MITOvarM41\nXgYgtDpITukSEREFNadG+CZOnIinnnoKV111VYvt09pqfRKq1ErdEgh/B9IZzu6lC3BKl4iIKAQ4\nlfBt2rR464pAAAAgAElEQVQJAPDmm286HBdCYM2aNZ6PKpCFQqWuq21ZOKVLREQU1JxK+J555hlv\nxxE8DKnAgaKOzwtkVuendDnCR0REFPycWsMHqK1Z9u/fj+3btwMAbDZbixYt4UAYUiGDeA2frK0F\nBCCiopx7gVYHVIffcyYiIgolTo3w/fjjj1i2bBmioqJgMpkwYcIE7Nu3D1u3bsXChQu9HWNgMaYF\nd9GGK+v3AI7wERERhQCnRvjWrVuHGTNmYMWKFYiMVHPEQYMGobi42KvBBaRkI1BqglQUf0fiHqvF\n+elcAEIXA9nJhE+eOAJZcaFT1yAiIiL3OZXwnThxApdffrnDMZ1Oh5qaGq8EFchEtFYteLhQ5u9Q\n3GNzLeHzRNGG8sE/Ib/Y0KlrEBERkfucSvhSU1Nx+PBhh2MHDx5Eenq6V4IKeMHci89mdb7pMuCZ\nKd0yM+R/vgreUVEiIqIg51TCN2PGDDz55JNYv3496urqsGHDBvztb3/DL37xC2/HF5iCeR2fKxW6\ngGeKNspLgdoa4OD+zl2HiIiI3OJUwjdy5EgsWbIEFy5cwKBBg1BSUoJ7770XQ4cO9XZ8ASmYK3Wl\nzQLhw6INqSjAhTKIyddA/mer29chIiIi9zlVpQsAffv2Rd++fe2fK4qCt99+GzNmzPBKYAHNmAKU\nnPV3FO6xutB0GQB0nRzhq7wAxMZBjJ8M5fFFkP/vNohIJ1vCEBERkUc43Yevufr6erz//vuejCVo\nBPMIn+tFG7GdW8NXZgYSkyFSugDpPYDCXe5fi4iIiNzidsIX1oJ5DZ+rRRvR0UBdHWR9vXv3Ky8F\nkgwAADF2EuS3X7l3HSIiInIbEz53BHuVrgtr+IQQDdO67o3yyTITRGKyeq2Rl0EWfgdps7h1LSIi\nInJPu2v4CgsL2/xaXV2dx4MJGvEJQE01ZLUNQqvzdzSucbHxMgC1F5/NCsTGu36/cjOQaAQACH0C\nkJkNuesbiAlTXL8WERERuaXdhG/t2rXtvjglJcWjwQQLIQSQ3DDK17Wnv8NxibRZoHGlaAPoXOFG\neSnQrZf9UzF2EuTX/wcw4SMiIvKZdhO+Z555xldxBB9jKmAKvoRPndJ1c4TPDbLMDM3AYfbPxdCx\nkK+vhSwvtU/1EhERkXdxDZ+bgrZS12pxaQ0fgM714isvBZokdkKrhRg6BnLnNveuR0RERC5jwucu\nQ8MIX7BxZ4RP14n9dMvMQJLR4ZAYO4lNmImIiHyICZ+7grVS12pxrS0LAKGNgXRjhK9xlw0kJjl+\nYeBQwHQO8uwpl69JRERErmPC5yZhDNIp3Wp3Rvh0gM2Noo3KC0BMbIudNUREBMToyznKR0RE5CNO\nJ3wVFRX46quv8MEHHwAAzGYzTCaT1wILeEE4wicVRU3cdC62knF3SrdJ0+XmGqd1pZSuX5eIiIhc\n4lTCt2/fPixYsADbtm3De++9BwA4c+YM1q1b59XgAlpyClBmglTc3IHCH2psQHQ0hCbCtddp3Rzh\na9hWrVV9sgCpAEcPun5dIiIicolTCd/LL7+MBQsW4IEHHkBEhJos9O/fH4cOHfJqcIFMREUBcXqg\nvMzfoTjP6sZ0LuB2la4sN0O0NcInBMTYXMj/5LkeDxEREbnEqYSvpKQEQ4YMcTgWGRmJenf3Vw0V\nwTat6+o+uo20bk7plpmBxNYTPqBhWnfnNvf36SUiIiKnOJXw9ejRA3v27HE4VlBQgF69erXxivAQ\ndL34bBY1eXOVu334ys1truEDAJHeXZ0a//6/rl+biIiInNbuThuNfvWrX2HZsmUYPnw4ampq8I9/\n/APfffcdfv/733s7vsBmTAVM5/wdhfOsFsDVbdUACF0MFHemdMtKoRk4tP1rj5sE+c1WiEHDXb4+\nEREROcephC8rKwtPPfUUtm3bBp1Oh5SUFCxduhRGo7HjF4cyQypw9qS/o3CezeLeGj6tm3vplrc/\npQsAYvREKB+9BVlTDRGtdf0eRERE1CGnEj4AMBgMuP76670ZS9ARhlQo+/f6OwynSZsVwp01fF6a\n0gWg7qebkQm5dyfE6MtcvwcRERF1qM2Eb/Xq1RBCdHiBu+66y6MBBRVjkG2vZrW6vo8u0FC04doI\nn32XjYQ22rI0IcZMUqt1mfARERF5RZtFG+np6ejSpQu6dOmC2NhY7Ny5E4qiwGAwQFEU7Ny5E7Gx\nbkwPhhJDKmAOojV87k7pujPCV1UB6GLU9jUdECPGAwcKIasqXI+NiIiIOtTmCN/Pf/5z+8ePP/44\n7rvvPgwcONB+rLi42N6EOWzF6YG6OkirBcKNYgifs1qAuHjXX+fOThsdtGRpSsTEQgwaDvnd1xAT\nr3Q9PiIiImqXU21ZDhw4gMzMTIdj/fv3x4EDB7wSVLAQQjSM8p33dyjOcWcfXQDQaoHqate2QXOi\nYKMpMW4S99YlIiLyEqcSvj59+uDNN99ETU0NAKCmpgZvvfUWMjIyvBlbcDAGUfNlq8WtxstCEwFE\nRbm0jk+Wtb3LRqsGjwRO/QgZTGsiiYiIgoRTVbrz5s3DqlWr8Jvf/Abx8fGorKxEv379cPfdd3s7\nvoAnDKmQpnPouLzF/6TNCo07RRvAxdYszr6+vLTtfXRbISKjIEZMgPz2K4irbnQvRiIiImqVUwlf\nWloa/vznP+P8+fMoLS1FcnIyUlJSvB1bcAim7dWsbhZtABcLN5xN4srMQNceLt1CjJ0E5Z9/B5jw\nEREReZRTU7oAUFlZiaKiIhQWFqKoqAiVlZXejCt4BFPCZ3Nvpw0ALu+n6/KULgD0HwRYqyBPHHXt\ndURERNQup4s25s+fjy+++ALHjh3Dl19+ifnz54d90QYACGNa8Oyna3OzaANwvTWLi0UbACA0GrUn\n37dfuRgcERERtcepKd2XX34Zt956Ky699FL7se3bt+Oll17CE0884bXggoIhJXiaL1st7jVeBhpa\ns7jQfNmJXTZaI0ZOgPL83yD/91dONf4mIiKijjk1wnf69GmMHz/e4di4ceNw5swZrwQVVJKNQHkp\nZH29vyPpWCdG+IRWB+nkCJ8ru2y00Ls/UFsNnD7u+muJiIioVU4lfOnp6di+fbvDsR07dqBLly5e\nCSqYiMgoQJ+gjmgFMFlXB9TXAdHR7l3AlSldF3bZaE4IATF8POSuHS6/loiIiFrn1JTurFmz8OST\nT+LTTz9FSkoKSkpKcPr0adx3333eji84GNPUwg1Dqr8jaVtD02W3p0ld2W3DjfV7TYnh46Gsfx64\ndobb1yAiIqKLnEr4BgwYgNWrV2PXrl0oLS3FyJEjMWLECMTHu7FNVwhSe/GVQPT3dyTt6Mz6PUCt\n0nV2hM+FbdValTkQKDVBlpyBSE13/zpEREQEwMmEDwDi4+MxceJEb8YSvAwpgd+apTMtWQBApwOq\nnGvFI8tLIVxoutyc0ERADBsLufsbiJ9Oc/s6REREpGoz4Xv88cfxwAMPAAAeeuihNqcCH3nkEY8E\noigKlixZAoPBgMWLF+PcuXNYuXIlKisr0adPH8yfPx8RERGoq6vDmjVrcPjwYej1eixcuNDeBHrD\nhg3YsmULIiIiMGvWLAwdOtQjsXXIkBr4RQZWa+dG+HQxzie1Ze5V6DYlho+H8sl6gAkfERFRp7WZ\n8E2aNMn+8ZQpU7weyCeffILu3bvDalWnDd944w1ce+21GD9+PNatW4fNmzfjJz/5CTZv3oz4+His\nWrUK27dvx+uvv44FCxbgxIkT2LFjB5YvXw6TyYTHHnsMq1at8klrD2FMg1K4y+v36RSbtXMjfNoY\nwOZkW5ZyM9DFtV02WrgkB3j+afcaOBMREZGDNqt0L7vsMvvHubm5bf7nCSaTCbt378bUqVPtxwoL\nCzF27FgAavK5c+dOAMDOnTvtyei4ceNQWFgIAMjPz8eECRMQERGBtLQ0dO3aFQcPHvRIfB0Kgt02\npM0CoXV/hE/oXGjL4oEkTURFQQweBbnnP526DhERETnZluXf//43Tpw4AQA4deoUHn74YTzyyCM4\nefKkR4J45ZVX8KtfXWy0W1FRgfj4eGg0anhGoxFms9r2xGw2w2g0qsFrNIiNjUVlZSXMZrPD/r4G\ng8H+Gq8LgoQP1s6u4XOhSrfM7Pyeu+0QI8ZD7v6m09chIiIKd04Vbbz99tt47LHHAACvvvoq+vXr\nB51Oh+effx4PP/xwpwLYtWsXEhMTkZGRgaKiIgCAlBJSSofzOpqabX5+e68pKiqy3wsApk+fDr1e\n72roF+8dH49yKREfISBiA7Ny2SYVyIRExLj5PuuSjbDW1jj1fSqvKEdc916I6MT3FADkuIkof2U1\n4gSgiW/9WtHR0Z16duRffH7Bi88uuPH5Bb/169fbP87OzkZ2dna75zuV8F24cAFJSUmoqanB999/\nj9/97neIiIjA7NmzOxctgOLiYuTn52P37t2oqamB1WrFyy+/DIvFAkVRoNFoYDKZkJysjhgZDAaY\nTCYYDAYoigKLxYL4+HgYjUacP3/eft2mr2mutW9MRUVF596IIRUVx45A9Mjo3HW8RCkvBSIiUefm\n+5SKhFJV2eH3SUoJWWZCVWQURGe/pwAwYAgqtm+BZvzkVr+s1+s7/+zIb/j8ghefXXDj8wtuer0e\n06dPd+k1Tk3pJiQk4MyZM9izZw/69euHqKgo1NbWuhVkczfffDPWrl2LNWvWYMGCBRg8eDDuvvtu\nZGdn45tv1Om8rVu3YtSoUQCAUaNGYevWrQDU3T4GDx5sP759+3bU1dXh3LlzOHPmDPr392FjPENq\nYO+p29kqXa3Oub10KysAbQxElJs7ejQjRnDXDSIios5yaoTvxhtvxOLFi6HRaLBw4UIAQEFBAXr3\n7u21wGbOnIkVK1bg7bffRkZGhr1SeMqUKVi9ejXuvvtu6PV63HPPPQCAHj16YPz48Vi4cCEiIyNx\n6623+qRCt5EwpEKaS+C7O7rIZgF0naicdXZrtXJTp1uyNCVyRkO++XfIahuEVuex6xIREYUTIVtb\n/NaK6upqAIBWqwUAlJeXQ0qJpKQk70XnQ6dOnerU65V/rQdsVmhu/I2HIvIs5bllwMgJ0Iy+3K3X\ny7paKHfNQMRz77d/XuEuKF9sRMTCR926T2vqlz8EzcQrIUZOaPE1TksENz6/4MVnF9z4/IJbt27d\nXH6N0ztt1NXV2bdWS05OxvDhw7m1WlPGNKAg399RtElWW6HRuV+lKyKj1OvU1kJERbV9n3IzRGe2\nVWvt3sPVad3WEj4iIiLqmFNr+AoLC3HnnXfi008/xcGDB7Fp0ybcddddKCgo8HZ8QUPdT/ecv8No\nW2f30gWcm9YtMwNJnW/J0pQYNhayMB/SQ+tGiYiIwo1TI3wvvPAC5syZgwkTLo6w7NixAy+88AJW\nrFjhteCCijEVMJ/v+Dx/sVmBmE4mfFqd2otPn9D2OZ7YZaMZkWQAuvUCiv8LDBnp0WsThTIpJSAl\nhMap3+2JKIQ59bdAaWkpxo0b53BszJgxKCsr80pQQSnRAFwog6yr83ckrbNagE5M6QJwaoRPlpdC\neHiED2iY1t3Nal0iV8gt/4Lc8Jq/wyCiAOBUwjdx4kRs2rTJ4djnn3+OiRMneiWoYCQiI4HEJHWE\nKxDZOrnTBuBca5Yys5r8epgYPg5yz38glXqPX5soZJ05AXnymL+jIKIA4NSU7pEjR/DFF1/gww8/\ntG9ZVl5ejszMTIedNh555BGvBRoUDKmA6ZxawBFApJTqyFwn9tIF4PwaPg9sq9acSE0Hko3AD/uB\nAYM9fn2iUCRNJUDJaX+HQUQBwKmEb+rUqZg6daq3Ywl6AduLr6YGiIhURyE7o4P9dKWUwIVSj/bh\na6pxWlcw4SNyjrkEKDkLqdRDaCL8HQ0R+ZFTGUBubq6XwwgRgbrbhs0DFboAhDYG0mZtO6GtrACi\ndR7bZaPF/UeMh7LyT5AzfNtUmyhomUqAyCig1BRwMw9E5FvtruF78cUXHT7fvHmzw+dPP/205yMK\nZoFaqWv1wPo9oOMp3XKz10b3AABdewLRWuDYQe/dgyhESEsVUF8H9O4LnOO0LlG4azfha9yzttFr\nrzlWe7EPnyN1SjcAe/FVWztfoQt0XLThpfV7jYQQ9ibMRNSB0vOAMQ0itSsk1/ERhb12Ez4nd12j\nRoE6peuJpstAhyN8aksWL47w4eKuG/zZJOqA6RxgSAHSugLnzvg7GiLys3YTPq6TcpFBndINuGTE\nEy1ZAEDX0QifySstWRxk9AdqqoHTx717H6IgJ80lEMY0gCN8RIQOijbq6+tRWFho/1xRlBaf00Ui\nNg7QaABLFRAXOPsMS6sVwhMjfNoYNXlsS3kp0MX1DZ1dIYSAGNGwt263Xl69F1FQM5UAhlSItHRI\njvARhb12E77ExESsXbvW/nl8fLzD5wkJ7WyxFa4MKepUSgAlfOq2ap4Y4YsFbG2P8MlyMzQ+aJki\nho+Hsv554NoZXr8XUdAyl6hbEaamAyWnIaXkrA1RGGs34XvmmWd8FUfoMKSqf9H26uvvSC6yWTrf\ndBmA0OmgtNOHD+WlXi3asMscCJSaIEvOAHq99+9HFISk6Rw0hlSI2HggKgqoKAMSfPDnk4gCEnfU\n9jBhVJsvBxRPtWXRdtCWxUvbqjUnNBEQw8ZC7v7G6/ciClrm8xd776WycIMo3DHh87TGEb5AYrN4\npi2LTtfmlK6U0vt9+Jpo3HWDiFqSdXXAhTL7L2AitSske/ERhTUmfJ4WiK1ZbFYgxkNtWdqa0q3y\n7i4bLVySA5z6EUqpyTf3IwomZSYgIenidopp6UAJR/iIwhkTPg8LxCldz1bptpHwebnpcnMiKgpi\n8CjU5n/ts3sSBQ1TibrzT6PUrtxtgyjMMeHzNC9P6coLZZC7trv2Io9N6bYzwlde6rPpXLthY1HL\nXTeIWpDmEgjDxYRPpKWzFx9RmGPC52mJBqDyAmRdrVcuL/d+C+XFFZCWSudf5KmijWgtUFsHqdS3\njKvMDOGDgo2mROZA1B/cF3iNron8zdzKCB+ndInCGhM+DxMREWrS5621ZaePA/X1kNu+cP41HtpL\nVwgBaLWtF274sGDDHk+SEYjWARy5IHJkOqfONjRKSAJqayAtVf6LiYj8igmfNxhSvDatK0+fgLjy\nRsjNH0PWtxxpa5XV6pm9dIG299P18Rq+RpGZAyEPf+/z+xIFMvu2ag2EEA0NmDnKRxSumPB5gTCk\nQnqrUvf0cYjxuepv73uc7ENns3imShdQCzda2U9XlpdC+HoNH4CIzEEAEz4iRw3bqjlIY2sWonDG\nhM8bvFS4Iattarf8lC7QXHEdlC8+6Pg1Sj1QU6NOfXpCWyN85b5putxcZP9BkIcP+Py+RIFKSqn+\n/dMs4RMNW6wRUXhiwucNxjTvTOmeOQGkdYPQRADDxgJlZsgjHSQ7Niug00FoPPSotbrWK3XLfL+G\nDwAi+mQCp3+ErK72+b2JAlJlBRAZCdG8UIuFG0RhjQmfF3hrSleePg7Rtad6j4gIiCnXQH75Ufsv\nslk9so+uXSsjfPZdNvywhk9Ea4GuvYAfD/n83kQByVwCGNJaHBac0iUKa0z4vMFbvfhOHQcaEj4A\nEJf9FLLwO8j2KoKtVs+0ZGm8py5GnVpuqqoCiNaqyZcfiL4DWLhB1Mh0zrElSyMWbRCFNSZ83mBU\nq3Q93R9Onj4B0a1JwhcbBzEuF3LLv9p+kc3iuQpdQJ3Sbb6Gr7zUL+v37JjwEdk1b7psZ0gBKsoh\na7j8gSgcMeHzAqGLBSKj1LU0nnT6OJDe0+GQmHot5LbP217D5qmmy41aK9rw0/q9RqLvAFbqEjVq\nvq1aA6GJUNcXnz/rh6CIyN+Y8HmLh6d1ZW2ter0uXR2Oi7RuQL9LIP+zpfUXVnuwBx/Q0Jal2Rq+\nct/vsuEgNR2oq4U0n/dfDBQw5MljHRczhTDZSoWuHad1icIWEz5vMXp4Hd+5U4AxFSIyqsWXNFdc\nB/nlR61OIUurRR1x9JS2Rvj8ULDRSAgB9B0AhPE/8qSSRw5A+ct9UP613t+h+I/pXOtTumDhBlE4\nY8LnJSI1HfLMSc9d8LRjwYaDAUOAiAigaHfLr9m8MKXbvGijvNSvU7oACzcIkAf3Q1n9GMQ104GT\nx/wdjv8030e3KfbiIwpbTPi8pVc/4Phhj11OnrrYkqU5IQTEFddB+b8PW37Rk9uqAa0Wbcgy/zRd\nbooJX3iT3xdCeXYpNL9dCHHFdcCFUkibxd9h+ZysqQasVUBC6yPuHOEjCl9M+LxE9OoHeeyg5y54\n5kTbI3wAxJiJwI+HIU8fd/yCzQdtWcrNftlWzUFGJnD8MGRdnX/jIJ+T+/dCee5JaG67F2LwCLU4\nIb0ncPJHf4fme+bzQHJK243W2XyZKGwx4fOWrt2B8lJIS5VHLidP/djmCB8AiKhoiElXtmzEbLN4\ntvFya21Z/LyGD4C6q0BKF+DkUb/GQb4lC7+Dsu5paObeBzFwqP246JEBGY7Tuu0VbADqnxFzCWR9\nve9iIqKAwITPS4QmAuiR4ZFpXVlfr667Se/R/j1zr4LM3wZZeeHiQY+3ZYl1SPjUXTb83IevAad1\nw4vc+y2UF1dAM+9+iKzBjl/s3hs4cdQvcfmTbKdgAwBEVJQ63euNxvDUIVltQ/39c8JyuQH5HxM+\nL1KndT2w5df5s4A+CULb/k4WIiEZYtg4yG2f249Jm9XDVbrN9tK1VAJR0R3G5hN9stiPL0zIXduh\nvLIamvkPQfQf2OLrokfvMB3hO6/22msPCzf85+gP6pR64S5/R0IN5N5vIfd+6+8wfIIJnzf17g94\nIuE7fRzo1supU8XUn0Fu/tfFtWw2CxDj4T58Tad0/dx0uSnR9xKO8IUBZec2KG88B82CP0H0yWz9\npO4ZwMljHt/tJuCZzqk7arSDhRv+Iw/uB/SJkHv+4+9QqIHy+UYo//gLlJ3b/B2K1zHh8yLRuy/k\nj50v3JCnj0N0bX86137PXn2BLt0gv/taPeDpKt3mbVnK/b9+z65rd3XrqIoLHZ9LQUnZsQXy7Reg\nWfgoRK9+bZ+YkAQIof58hhFpLoHocISPhRv+Ig/uh7h2BmTBdywwCwCytgY4dhCaRX+GfPsFKP/Z\n6u+QvIoJnzd17QWYz3d+vUZ7PfhaobniZ5BffqiObtgs6ro7T9HqAJvNPnIiywKgQreB0ESo1bpH\nOMoXipR/fwH5/ivQLHoUokdGu+cKIdQ1tCfCbFq3o6INACItHfIcEz5fk4oCHC6GGHkp0KUbcKDQ\n3yHRoWKgWy+IfpdAs+hRyHdfgrJ9s7+j8homfF4kIiLUxeM/HunUddrrwdeqnNFAVYW6ns3DjZdF\nRAQQFQnU1KgHAqRgo5How8KNUCMVBcpn70N+9CY0v3scwtnlDd3Dax2fVBSg9HyHU7rqCB+ndH3u\n9AkgTg+RmAwxbCyndQOA/L4Q4pIhAADRrZc60rfhNShff+nnyLyDCZ+Xid79IH90fx2flBI4cxJw\nckoXUEe6xNSfQX7xgbrezpMjfEDDfroNo5ZlZiApQKZ0wUrdUCPPnYLy1P2Qe7+F5vdPQKR3d/7F\n4Vape6EUiImDiO6ggCpN3U837NY3+pk8tB+i3yUAADF8HOTe//AZ+Jk8UACRNcT+uejaA5rf/Rny\ng39C+eozP0bmHUz4vK1Xv84VbpjPA7oYiNh4l14mLp0KWfxfQDa0YvCkJvvpynIzkGj07PU7o28W\ncPQHdbSDgpZUFChffgjlid9DjJwAzb1LIVK6uHQNtRffUe8EGIhMJR1X6AJq1b5WF3brG/3u4H6g\nX0NFeXoPIDIa+NFzuzGRa2RNtfpvc7Mqf5HeHZp7/wz5r/VQ8j71U3TewYTPyzo7wqdW6Lowndt4\nX10sxIQpnq3QbdSwjg8AUGaGCJSiDQBCnwjEJ6g7k1BQso/qfbcdmvueguaK69reOaI93XoBZ0+G\nTZNh6cT6Pbu0rgDX8fmUPFRsbyEkhIAYPhZyzzd+jiqMHf4e6N4bopWiRpHWDZp7H4fc9B6UzR/7\nITjvYMLnbd16AefPtNyOzEny9HGIDhout0VM/RnEoOFuvbZdTUb4UF4aMG1ZGnFaNzg5juqNh+b3\nSyG6dHP7ekKrU9eXnjvlwSgDmLmk3abLTYnUdEhW6vqMvFAGVJQ7/PIuho2F3M2Ez1/k94UQAwa3\n+XWRmq4mfV98AOXLD3wYmfdE+jsAk8mENWvWoKysDBqNBlOnTsXVV1+NyspKrFixAiUlJUhLS8PC\nhQsRG6uuRXvxxRexZ88eaLVa3HnnncjIyAAA5OXlYcOGDQCAG264AZMmTfLX27ITkVFqte6Jo0DD\n+g2XnD4O9Orr3r2NaRC33evWa9vV0JolkHbZcNB3gPrb22U/8Xck5CR57hSUl1cBUkJz31OdSvQc\n9MiAPHHMtaKnYGUqUUfunJHaFWAvPt85XAz0zVI7CTTqOwC4UAZZcgYiNd1/sfmJrKuF/CYPYsJU\n90bwO3v/7/8LzdXT2z1HpHSB5t6lUP76ABRFgean/+uj6LzD7yN8ERER+M1vfoPly5fj8ccfx2ef\nfYaTJ09i48aNGDJkCFauXIns7Gx7Ird7926cPXsWq1atwpw5c7Bu3ToAQGVlJd577z088cQTWLp0\nKd59911YLIGxfY3o1RfymHv9+NQefM5VJfqMVgdpswKWKiAyKjB22WiCI3zBw2FUb0TnR/WaE90z\nwqZwQ7owwqcWbjDh8xV5cD9Ev2ZrxTQRYV2tKz95B/L1ZyH/td73966uVtdPtrJLT3PCmArNvUsh\nt26C8ul7PojOe/ye8CUlJdlH6HQ6Hbp37w6TyYT8/Hz7CF1ubi7y8/MBADt37rQfz8zMhMViQVlZ\nGfbu3YucnBzExsYiLi4OOTk52LNnj1/eUwu9+wNurOOTUgKnjrtUoesLQhejbq9WFkBNl5vqkQGc\nP93bGgsAACAASURBVMv9KgOcPHcalY8uhPzu64a1etc7joB4gLrF2lGPXjNgOVm0AQAilbtt+FLT\n9XtNiaHhuY5PHjsEmfcpNEuegvxqE2Thd74N4HAx0COj1fV7rRGGFGh+vxRy+5dQPnoraKur/Z7w\nNXXu3DkcO3YMWVlZKC8vR1JSEgA1KSwvLwcAmM1mGI0Xq0INBgPMZnObxwOB6O3mnroVZYBGAPpE\nzwfVGY3bq5WbAm79HtAwjd6zD3DkB3+H0oIsNUHW1fo7jICgrH0SUUNHe3xUz0H33kC49OIzn3Ot\naINr+HxC1taqo0mtbQM4MAc4fiSsdgeStbVQXlwOMf23EL37Q3PbvVBeXAF5/qzvYjhQCJHV9vq9\n1ogkozrSt3sH5D//DqkEXzFYwCR8NpsNf/vb3zBr1izodDqXXiuECOyMu3tv4NwpdRsXV5w+AaT3\nVHcNCCQNRRuyrDSgKnSbCsRpXVlfD+WpJZCfbfB3KH4nTx8HKsuhvf5mj4/qOUjrClwoDfnRXmm1\nAHV1QLzeuRfEJwBKPWRVhXcDI+DYQSC9u9oOpxkRrQUGDoX8704/BOYf8qN/AmldIcbmAgBE1mCI\nK2+A8twy1/+NdDeG7wsgBgzp+MRmRGIyNL9/AvLMCSh//4vP4vUUvxdtAEB9fT3++te/YuLEiRg9\nejQAdVSvrKzM/v/ERHWUy2AwwGQy2V9rMpmQnJwMo9GIoqIih+ODB7eewRcVFTmcO336dOj1Tv5F\n6aaKbr0QYz6HSCfWDDSqNp9Dfe++iPVybK6yJSRCWqogbFWQaemI8WN80dHRrT67mkHDULPtc8QH\n0PeuZvtm2DQayK2bEH/Tr9WRyDBl3fQtMGEKtDqd1xdsV/TIQEyZCZGZrvXxCyb1ZedRldIFCQkJ\nTr+mIr07YqouIDLdvdHVtv7skSPbiSNQLslp8+/xmnG5qN25DXFXTvNpXP54fnU/7EPV9s1IWPY8\nNE1+VuUNv4Llx8MQ772M2Nt+59UYZLUN5T8ehn7YaKendB3o9ZAPPAXL2mVQVj+KuHsfhybOtT65\nnrJ+/cX1j9nZ2cjOzm73/IBI+NauXYsePXrg6quvth8bOXIk8vLyMG3aNOTl5WHUqFEAgFGjRuGz\nzz7DhAkTcODAAcTFxSEpKQlDhw7FW2+9BYvFAkVRUFBQgJkzZ7Z6v9a+MRUV3v1NV+megar9/4Wm\ni/Pr8ZQjB4G0dK/H5ipFaIAL5UBVJWBMQ50f49Pr9a1+f2TXXlAOFOHChQsBMUIqpYSy4XVops+G\n/HwjLuR9Bs1Y/1eR+4OUEsrXX0JzywLU1NR4/89eek9UHSiCJj10K3Xl8aNQko0ufS/rjWmoOnoI\nmjQXdi9poq0/e+SovmgPxKhL2/xeyazBUF5aiQvnz/u0AM7Xz0/WVEN5ZinEjNtQFREFNLu3nDkX\nytLfoXbTRmguneq9OPbvBXpkoLK2Dqh1//3L39wN+c6LuPDQXdDc8yeIZN9uQKDX6zF9evtVxs35\nfUq3uLgY27ZtQ2FhIf7whz9g8eLF2LNnD6ZNm4aCggLcc889KCgowLRp6m8/I0aMQFpaGubPn491\n69Zh9uzZAID4+HjceOONuO+++/DAAw/gpptuQlxcnD/fmqPe/V3uqh6QFbpAQ1sWK2RZYK7hA9RF\ntoiIBNxcFyLLTB2f5Iqi3YCiAENGQXPFzyD/7yPPXj+YHD8C1NYCfbJ8c7/uvYETob2OT5rOOV+h\n20CwNYvXSSmBQ/tbLdhoJOL06o5M+3f7MDLfkxtfh+jRB5rRl7X6dRETC80dSyDffQnSizuQyO8L\nXF6/1xqh0UBMnw0xLhfKssXqMpUA5/cRvksuuQRvv/12q1/74x//2OrxxiSvudzcXOTm5noqNI8S\nvfpC+ffnrr3o9ImAq9AFAKGNgWKzAhXlAbuGDwDQNwvy8Pcu97iSBd9BWf0oNEuegvBQUqJ8+i7E\nlTeq601zRgNvv6BW7rnTmzHIyfxtEGMu99nIq+jRG8reb31yL78xO1+ha5fWVd3ui7yn5LT6i2cH\nybgYPg5yz38gho3zUWC+JX/YB/ntV9A8vLrd80T3XhD/bw6U556E5oG/QXhhqlR+XwjNz2Z45FpC\nCIgrb4SSkAzl6QegmXd/QP+d7vcRvrDRsw9w5oRaseUEaalUW58kp3g5MDc0NF5GmTlgR/gAtXAD\nLhZuyKoKKK+ugZgwFcr6FzxSDCQPFQOmcxCjL1fj0kRATLk2LEf5pJSQ326DGHW5727aPQM4eSyw\nC7s6y+TCtmoN1N02OMLnTfKg2o6lo19uxLCxkHt3huQ2gLLaBuXlldDMnAuh73iNqWbMRIic0VBe\n+JvH90SX1dXA8cMX9zT2EM2EKdDccg+UZx6H3Bu4BThM+HxERGvV7vannJxa+v/t3Xlc1WX2B/DP\n+YKCiMiqCAgohju5kbjinksuo4mWo2lWU6Pt42jTlC06WmlqWU5jppWNqS1OqW2/BDVz3zcwcEFx\nYRMRkcX7Pb8/vnAVWe4Kd+G8Xy9fyuXe5z7yhcu5z/Occy5dAAJD7OL8WTlu7iVlWeywy8YdqJnp\nmbr8xb9BnbuDJk3Tgtr9Oyyeh/rj16D7/wRyuZ2NSj0GgI8fBGdnWjy+QzlzCqhTUjanpnh5A4oC\nXLOPMk3VgbMzQH6mBXxatw0pzVKtUk4a1WGJ/BoBPn7a/Z0Mf/0pqHlLUEfjVy/pwclAfh5483rr\nTqa0/p6baZVAjEHtOkN5+hWony+Fut3E3bwaIgFfDaJQ4+vx8cVU+20H5V4PyM4EXF2r5QfHasJa\nABfPGZ06r+7ZBj5/BjR6EkhxgRI3FepXqyxKveeLqcDpJFD3AWVuJ4/6oJg+4ITNZo/tiHjvb6Au\nNbedC2jbLk5/js+MFT74+Gm/VM3s8y0Mq6zgckWoQ4xFXTf42H6764/MiUfAB3eBxj9h0uPItQ6U\nv8wEJ/wAPmG9s43mlmMxFjWL1Mq2bF4PdePaMrsKrNOBszLAySeg7t0O9advoX65HLoP/wXdnBeg\ne/2ZaptXKQn4alJYBGBsAebLFwB7Dfjc3IGcLLte3QOgZbwFNjUqWYZzssBfLofy6PPaaiwAahUF\nNG0G/j/zt175x29A/R6oMPuO+j0A/u0XcFGh2eM7ElZV7fxeJYe2qxMFO2/HDb51C8jNAbxNyxIk\nRdHO/dlZkOAsOD8PyEwHQoxbzS5ts2bO0QNOPgF1+UKo7/wDfOmCyY+vDlyQD3XVe1AmTTPrLB75\n+EF5/EWoKxaBszKsM6ekY6CWlidsVIUaB0GZ9Tb4wO9QF/wDunkzoJsxBeq0sVDn/x3quk/A+3do\nR6J8A6Dc1xvKQ09AeWZ2tc4LsIOkjdqEwiKg7kow6r588TyUPtX7jWm20gKi9pywUaK0AHNVB2mZ\nGeqn74P6DAHdVQ1feXAK1PkzwD36gbxM+/9yVgb4yF4o//qo4rk1DgLC7wHv3grqNciksR1S8gnA\n0wsUZIPM8+Aw4NRxw/dzRNeyAS9vkKsZL+elHTdCwq0+rVovJQkIb2H8dWnaTMvkv5iqfb8aiXOv\nQv3oHShTnwfn5UJd+E8oz70GsvE15fUrQa2iQO27mD0GtWwPGjRKS+L4+3xQHfNrl1bX+b2KlBZo\nxolDQENvwCcAaOhj3s+oFckKX01q2hy4mKq9Izfkkv310NUrKVZJdpywoWdE4gZv/wm4ngsaWr6m\nETUOAsX0A//vvyY/Nf+yAdRzAMij8ne3pSVanDqhoIS2nVvzq3sAQCHhTrvCh6x0wNe85C5J3Kg+\nnHLSpIxNItJW+Q4a31uXdTqo/1mgvc5ERUPp3h8U9yjURa+a187TSvjYAfCxA6C4iitqmIIG/Qnw\n8QOvXW7ZQCknq+38XkWonod2HrxFG5BfgM2DPUACvhpFbu7aFoqBej1cWKD10fW3084Arq6Ai4vd\nb+kChluscfol8LeroUx9vtIfSHpgHPjgLvCFs0Y/L1/PBe+MBw0YUfUdW3fQ3tUnHjF6bEfEOh14\n/w59pnKNCwoFrqQ5ZxZkdoZ26N8cUouv2nBy1fX3KlK6rWv0c3z7OeDiCho+Xn+bcl9vKBOegrrk\nNZu0l+T8PKifLYXyyHSQh+W1cIkIyuRntSS3k4fNn1fSMVDLKIvn48gk4KthFBYBPpdc9Z0uXwAa\nBVVvj1ELEBHgVs+uS7LoNWoCFBZUWEiZVR3UlYtBw8ZWmSBD9T1Bw8ZBXf+J0StxvGWj9u7OwLkq\nIgINGA7V2Uu0JB0B/BqBGjWxydOTm7t2xi39ok2ev1qZk7BRgho1sbuD/s6AdTrgbLK2w2CKe9oC\nmVfA2YbPrPGBneB9v0F57MVyvyuoUzcok5+BunQOuIaPMvDaFaCoLqA2Ha02JnnUB/1pItRvPjN7\nN4RPHa3283v2TgK+mhZqOHFD67BhpwkbpdzdHeMMH1HJtu6pcp/jnzdo7477DTc8TuxgLTP56D6D\n9+WCm+CEzaD7Rxs3x659gZREsBOvtPDe32ySrFFGcJhJq7R34+vXoPv3fLBqZ6uE2RmAqSVZSgUE\nygpfdbhwBvD117pomIBcXEDtu4ANFArny2lQV38I5S8zK61tR1HRUB57EeqyeRatjJmCk09qmbAP\nTrH62NSlJ6C7BRzcafq8Cgu0Dj92XBS5JkjAV8MoLAKcauBsxcXz9puhW8qtnmOc4QNAJR037sQX\nzoB/+hbKlGe1bEVDY7i6Qhk7RVvlM3AGk7f9pB02bmxcU3pycwP1HAjestGo+9ck1umg/v6rRWcM\n+VaxVprBRuf3SlFwuEWlWXj3VmD/70DSMetNygrMaaum598IyMky7lyxMFppwWVzUMeqz/FxYQHU\nf88HjZxQLsms3FhtOkB5ahbU5QvAR/ebNR9T8NYfQf2Hg0rOeVsTKQqU0ZOgfrva9KMZKYlA02b2\nXUasBkjAV9OaNgcunK3yG5YvXQAF2XfAp8Q9CoRX/WJjL6h5S/CZ2wEfFxdDXbEI9OAU084+te8C\n+AaAt/5Y6V24uBj8y/9AQx40bY59h4J3xoNv5pv0uOrGe7eBVy4BW1JI9PghoElT84MSK6EQy0qz\n8M54oH0X7W97kp1pelu1EuRaRzuLm51u5UnVciknzc8GbdsJOHNKK+tyF2YGf/YBKDQC1Pt+o4aj\nyHZQpr0MdeVi8CHjE0JMxTeugw/vAXXrW23PgbadAC9v8M4tJj1M659bffX3HIUEfDWM6nlo7dIu\nV1Er6dJ5rX6cHaN2nfX16uxeeCRwLkUfZPP3a7TzZN37mTQMEUGJmwretBZ8o/yLMQDw7gQgKBQU\nFmHa2L4BoNb3gn//1aTHVSdWdeBN60HjpoK//dyoc0UVjmOj2nvllLRYMwdfTAVyc6BMmgY+vFsr\n8WAHmLkkS9eCYLqRJG5YG6eYnrBRitzcgch2Fa7IcfwmrSj/hKdMKl5OEa2gPDsb6ucfQt37m1nz\nMoR3xoPadwF5Gm6fZi4igjJ6Evj7NSYVxNcKLtfu83uABHw2QaHNK03c4OJi7UxOY9scbndG5FFf\n+4WYdlY7Y7Lj/7RioGZ0e6DgMFDHbuCNa8t9jlUd+KdvoAwZY948BwwHb9lo9f6R5uL9vwP1PUH9\nR4D6D4f6+Qcmb+1yUSH48F5Q5x7VNEsTNAoEcnPABaavovKueFDXWC0Jp3nLal0pMcmN61rHm3oe\nZg9BAZK4YU2cnQEUF2uBtJmoQ1fgrmxdTkkEb1wL5alZFRZyNzhmWAsoz78OXvsx1N9NWyEzhJm1\noyxGrjpagiJaAaER4HjjuhRxYQFw4WyN1N+zdxLw2UJYi8q7P6RfBPwCtK0WYTXUPBJ88jDUTxZp\nTbxNLKJcZqyRD4F3bQFfuSvj89BuoF59wNzWPRGttcfXwFkbQ1hVwZvWQRk2TsskHjwGuHbV5K0U\nHN2vFZ+1gwQfUly0s7FpqSY9jlUVvGurfquKYvqa/nWoLhZk6Oo1ksQNa+JkrX+uJe0D6d5orQxJ\ncbE2Zm4O1I/ehvLI0xZlulNIMygvvgn+9nMU7d5q9jjlpJwEWAUi21pvzCoooyaCf/wanH/D8J1T\nTgJNm5sVJDsbCfhsoKoVPq3gsn1v5zqk5i3BG74AtWgN6tTNoqHIywc0aDTUr1bqb2NmqJu/gjJ4\njNkv9LdLtHxn0fys4tAuwLUO0K4TgJKklcnPgr9aVWGJm8rw3u02T9a4k1kt1pKOAp4NQCXdD6hD\njHbGKifb+hM0VXaG2ef3SmnFl2WFz2pSEk0quFwR8vIBgkOBxCNa4tTyBaBufUH33mfx9KhJUyiP\nv4iCL/5jtbqUvO0nUK/7a6xHNgWHgtp1Bv+yweB9a6KdmqOQgM8WwiKA82crLO/AFx2gJIsDosj2\nQGAIaPzj1hlvwHAt+aa0YHLiEaCwAOjQ1bJxu/QELp4Hm3nWzBqYGerGtVAeGFfmBZxCm4NiB0Nd\nvcyorV0uuAk+cdDiANuqgsNMztTlnfGgbrfPe5KbG+jeruA926w9O5NpGbrmddnQc+AzfGr8Zqj/\neQfq5x9A/Wol1E3roMZvgrorAXx4L/iPE+ALZ7U2hzfza6SjjTkFlytCHWK03rr/Ww0QgUY+bIXZ\nlYwd2Q6KfyMt89xCfCMPfGhPmZ+RmkAjHgLHbwbnXq3yftr5PUnYACTgswny8AS8GgJ3bwkCWjKH\nBHxWR4HBcJm9pMo2ZyaNV6culDGPQF27Qivg/MNXoMFjjCrxUuW4rnVAsYPBtizEfGQvwAAqWE2g\nYXFaYVgjgh0+vAdo0aZaD3GbSsvUNT7g48IC8OHdoPt6lx2nW1/wLjvI1rXCCh/8A7VraidnR42l\nnWn7EojqolU/qN8AKLyp9aI9ug/q1h+gfvMp1OULoL41E+qMyVDfngXOqr6MZC64qb2Gh7WweCzq\n0BW8OwG8eyuUx/9m9UL8bmMmgTevt7iuJO+KB7XvXGk9wOpC/o1BMX3Am9ZXeh8uuKmd32teu+vv\nlbJ9c7daikIjwOdSyq3m8cVUKEYW7BU21rkH8OtG8JrlwOU0UNfehh9jBIq9H+orfwWPnlTjwVJl\nq3v6ubnW0Sr4v/cGuHVUlWch7W07FwAQEg6knQMzG7X9xAd3Ac1blT+D2LI9kHcdnHZOv9VrC5yd\nAWoWadEY5F4P8KgP5GSb3ZO3pnFRIdRVS6A89ITR32OsquCfv4U690UoE6eBOsZYf2JnTmn13urU\ntXgoahwEiooGDRgBatDQCpMry7VNB6BBQ60oetdYs8YoTdZQHv6LlWdnHBo6Fuqr08ADRoACAsvf\nISVRzu/dQVb4bCWsRbmOG6zTARmXgMAQG01KmEJfpiVhM2jQSKsl2pCXj7adY0ntO3MdPwAUFQJV\n/DKk8HtAPQZA/e9Hld6H8/OAU8e0bEM7Ql4+gKIA14w7f8e74kExfcqPoyigrrFWq8ln9lmqrAzr\n1DcMCNReexwEf/dfIDjMpDcUpChQBo/RatKt/Rjqfz8yqbSHUfOywvm9OylPzACZ2p7NSEQEZfg4\n8KZ15q/upiQCOh0QaZszcuTlDeo3DPzdmgo/L+VYypKAz0YorHn5jhuZV4AG3vJuxIFQs3ugTHsZ\n1GuwdcftP1w7n1KDHRBKV/doWJzBrWka8RCQlgrev6PisQ7uBlpGWaV5utUFh2nbPAZwTjZw5pSW\npFEBiumrbblZuiVWXAz1tengA7+b/mBL2qrdgQICHaa1H6ckgnfGQ3n4SbMeTxGtoLy6GHztKtR5\nM8CX06w4t5MgRyr/0boDUM8DMOd7DyXJGr0H1ViyRkVo4Cjw8QMVtk3kU8fk/N4dZEvXVkIjgPOn\nwap6+5frpfNAUKht5yVMVh2rWBTaHAhoDP54IdjHD1BcABcFcHEt+fcdfxTtDzWLNLngcxmJR4Ab\n10FdDNfMozp1ta3dZfOgRLYvd36H924D9Rhg/lyqkZapew7UrnOV9+M9W0EdYyp9A0bBoYCXN5B4\nFGjTwez58JaNgE4H9bs1UDrEGH0OlIuLgPw8wIISQ3qNmgAOkKnLxUVQV70HGv8EyMvb7HHIwxPK\nkzPBW3+A+tZM0LipUGIs6xDBqgqcTgKmPGvRODWJiKA8MB7q16ugdOpu0hlkLVljN5Sxj1bjDA2j\neh6goQ9C3bAaLtP/qb9dzu+VJyt8NkKeXoCHZ5nsOL50HtREtnOFRnnkGa2ulW+AluTjVk8L7lQd\nUJAP5F4DMtO1Q+KpKVAXzwafMr/Pq7rxS9DQOKMPh1NEK1B0b/CXy8vcztevAaeTQFHRZs+lWhmZ\nqcs740EGggCKsSx5g6/ngn/8Gsozr2rB/OE9xj84OxPw8bc4UQgAEOAYmbr83Rqtk40Rb0oMISIo\nfYZCeeFN8KZ1UD9ZrAUJ5rp0HqjfwKIanzbRrpNWgumuQs+G8K4EULtONZ6sURGKHQKcPwNOPnH7\nxpREIFTO791JAj5bCosou60rNfjEHahREyj9HoAycCSU+0dDGRYHZfh4KCMnQBn9CJSxU6CMfxzK\nw09CmTQdyhMzoP77LfDpJMOD34WTjgFXs8ploxqc46g/g8+eAt/xy4IP7NRa79lpo3IKaWawFh9f\nOKOtnhk4m0T39QYf3qNV8zcDf78GdF9vUGAIlGFxUDd+aXzpEEtbqt2BGlVftw2+nAbdP58CH9lr\n2ThnTmldcib8xapbiNS0GZR/LgKIoM59AXz+jHnzs6Cdmi1pZ/nGm/S9x8zg7TXTWcMYVKcuaMTD\nUL/+TP9/4KQjsp17Fwn4bIhCI8okbkgNPmEJan2vts26dA64sk4ulVA3rQUNHQtyMa30A7m5QXnk\naahfLNP3F+a920HRvUwap0YFhQJX0qpMlOCdCaCufQyfZWzoAzRvpWXzmogvXdC+Vg+M127o0FU7\nAH90n3GPz7ZSwgagT9qwdp06zr8B9YO5oKguUD99H+oO83pFc3ER1JVLQOMfr5YVNHJzhzLlWdCw\nOKjvvgI1frPpX4vkk47bvqt0Nd7YoPx0ktY+zo4CKurWR2s1eEzrVMRJx0A2SiaxVxLw2RDdscLH\nzMDlNEC2dIUFKCoayoSnoL73OviicS3EOPkkkH7J4PZlpc8Z2U7rL7xuhdaF4/xpfYcOe0RuboC3\nH3Cl4sP6rOrAu2+3UjM4Xkwfs7Z11a9XgYaM0W+JkaKAho2DunGtccFGlnUSNgBoNexAQN5164wH\n7euofrwQ1DoKStxUKH+bC/5+DdQfvjK9J/P3XwKBwdX+RkKJ6Qtl5lvg7T9ppYfuTqyrgrUKLtuC\n/izf98at8pX2zbVlssbdSHGB8qeJUL/5DHwzX87vVUACPlsKjQBSU7QfsOxMoF49qxUGFrUXde4O\nenAy1EWzwekVFPe+i7ppLWjIgyBX83O4aPQkcNJRqKuXge69zyp1yKpVcBUFmE8eAbx9jV5tN6fV\nGp88DFxMBfV9oOxYnbsBN/OBk4cMD5JthT66pc9LVJK4Yb1zfLzhC6CwABT3mPYcTZpqwdTureC1\nHxtdCoTP/AH+7RetB3YNBBgUGAzlpQWgdp2gvv8mdB/MNRj4ce5VLVh25B2aDl2BW8XAsQNV3o3z\n88AHd4G612xnDaN06ArUqQte8xEQFiHn9+4iAZ8NkZe3dhA/84qc3xNWpcT0BQ0fD/XdV6vsLMBn\n/gDSUkHd+1v0fOReD8ojTwOH94CirVOAujpRcHiliRu8c4vRq3tASau1DjHgPca1qWJVB3XdJ1DG\nPAKqU7Z2IykuoGFjoW5ca3icrHSQtVb4YN3SLOre7eA926A8ObPMGwny8YMyYx44NUXLQC8urnIc\nLi6GumoJaNxj5YtfVyOqUwdK/+FQ5n4EahVlOPBLTgQiWlongcZG9CvM36+pcpXvdrKG9YtBW4qI\noIx5REu4ahll6+nYHcf97nQWYRHAueSSDF0J+IT1KL3vBw0YAfXdV7St1gqom9aCBo8uF3iYg1rf\nC+Vv/wLaml+ipKZQSHiFiRtckA8+ss/krUPq1he8M8Go+/LOeMDdHejUveKxonsDOdlaIk1VsjMA\nXwvbqt3JSqVZODUF/N+PtPqUFQQFVN8TynOvg28VQ33/DW37rbKxNn4JNGpicjKRtVBdN6MCP2sX\nXLYV6twNKLhZ6QpzaWcN6jWohmdmPGrZHhQ7uHo6qTg4CfhsjEJLzvFdOi/n94TVKQNGaF0x3n1V\nK5dyB05NAc4lW/XFm1q2s3rPz2oRHAZUsKXLB3YC97QxvcZbZDsg/3qFxV/LjF9wE7xhNZS4qZVu\nT5KLi5Y8sKnyVT5WVeBqlnVboQUEaiV+LMC5OVA/nAdlwpOgps0qvR/VddNW/wKaQF3wD/C1q+XH\nOvsHePvPNbaVWxVDgZ/DFVyuhLbCHFf5Wb7TSUBxEdDKvlfPlD//VatlKsqQgM/GKEzrqaut8EnR\nZWF9ytCxoE7dtKCvJJMWANRN60CD/mT/5+2qQ6NAIDcHXFB2dYl3JUAxYTu3lL7VmoHkDf75W1Bk\ne4P9b6lrHyD9kpZQU5HcHKCeB6iu9c4oUasocEoi1BWLwNdzTX483yqG+u/5oJg+RrU8I8UF9Oen\nQPd2hfrWzDLnTbWt3PdAcY+CvH1Nnkt1qSzww/kzgIU9je0FRfcErucCSUfLfa60FIutA3BhHgn4\nbK20NMulC7LCJ6oNjZyg/YJa8hr4Zr6WsJB8EtTbui3hHAUpLtqZ2bTbmcycnan9LN57n3ljxvTV\nEhIqabXGV7PAWzaBRk80PJarK2jIg5Wv8lkxYUP/nP6Nobz2PuDZAOpr06HuSjApm5bXfgx4eIJG\nPGz8cxJBGfEQ6P7RUN/+B/hcsjbWprWAf2Mt8LVDZQO/e0E9+oPc69l6WlZBigtoaPlzpPpkjW52\nmKwhjCIBn42Rt69W5ZwA2OEhWOEciEhbLQltDvX9N6Bu+AI0cGStzmLTWqyd1X/Mu7dqGc5mEu/G\nSQAADo5JREFUrnhSUKjW5izxSIWf528/11ZH/Iw7d0fd+2v9is/8UX6srAzAyHFMQe71oIx7DMr0\nV8A/faO9Qci8YvBx6tYfwUnHoEx9wazEBSV2MJQJT0Jd8jrUX/4H3vYTlD/bfivXEC3we8Dsvr72\nirrGAtkZZTr38O6toDYdLWppJ2xLAj57ENocCGxq9y9uwrEREejhJ0H+jYE/joP6DLH1lGwrJFyf\nqcvMWnauhf1UqVufCpM3+FwK+MRB0JAHjR+rTh1t5auiVT5rFl2u6Lmb3QPl5XdBLdtDnfsC1J83\nVFqomk8dB//vCy1Jo56H+c/ZMQbKk7PAG78EjX0U5O1n9ljCMuRSdpWPmcFbf7SbzhrCPBLw2QEK\nv0dbHRCimpGigCY/A2X2eyB38385OwO6sxZf6mmgqBCwsHBuRa3WmBnq+k9Awx8yOSCiXgOBs8nl\n231lpVuv6HJlz+3qCmXIg1BmvQM+shfqvBnlOrhwVgbU/7yjrew1DrL8OSPbQlnwmVnnKIV1UUzf\n2+dIz5zSkjXsqLOGMJ0EfHaABo006lyPENZAigvIR1ZPEBIGXDirrV7sigd162txHTXy8gFatAYf\n3Hn7xsO7gevXQD0Hmj5eXTfQoFHlVvms2lbN0BwaB0F5cQ6ozxCoi2dD/fpTcFEhuLAA6odzQYNG\ngdp2tN7zWaFEkLAcubqChmrnSHnbj6Begxy6zqCQgM8ukLsHqH4DW09DiFqFvHwAFxftrNLurRZv\n5+rHjbm9rcu3iqGuXwVl7BST+xTrx4sdDJw6Dr4jwcSqbdWMmQMRlJ4Dobz2HpCVDvW1p3Hj3VdB\nQWGggSNrbB6iZlG3/sDFVPC+HRYXZxe2JwGfEKL2Cg4D/7wBCAi0ypYkAFCHrsDZU+CcLPDWH4GA\nxqB2nc0fz80dNHAkePO62zdau+iysXPx8oHyxAwo4x8HNfQFTfyrnD12YlSnDmjEBNB9vSVZwwlI\nwCeEqLUoJFw7jG6l1T2gZBu2Yww4fjN40zooYx+1fMy+Q8EnDoEvp2m1A28VA5622xWgqGjU/+ss\nq9YBFPZJ6dEfyqTptp6GsAIJ+IQQtVdwGICSYrNWRDF9wZvXgzrGgEqew6Lx3D1A/R8Ab14PZGUC\nvgGysiaEMIkEfEKIWota3wsaPh7k6WXdgSPbgbr1A400vgixIdTvAfDRveBTR61edFkI4fwk4BNC\n1Frk1wjKsDjrj6soUB59TksMsdaYHp6g2CHgDV+AajBhQwjhHCTgE0IIB0EDRgA6nazwCSFM5mrr\nCQghhDAOeXqBHnocFBJu66kIIRyMBHxCCOFAlB4DbD0FIYQDki1dIYQQQggnJwGfEEIIIYSTk4BP\nCCGEEMLJOd0ZvkOHDmHVqlVgZvTt2xejRo2y9ZSEEEIIIWzKqVb4VFXFihUr8PLLL2PhwoXYsWMH\n0tLSbD0tIYQQQgibcqqALzk5GU2aNEFAQABcXV3Ro0cP7N2719bTEkIIIYSwKacK+LKzs+Hn56f/\n2NfXF9nZ2TackRBCCCGE7TlVwFcRaTAuhBBCiNrOqZI2fH19kZmZqf84OzsbPj7le1keP34cx48f\n138cFxeHoKCgGpmjsL4GDRrYegrCAnL9HJdcO8cm18+xrVu3Tv/vtm3bom3btlXe36lW+Fq0aIHL\nly8jIyMDt27dwo4dO9ClS5dy92vbti3i4uL0f+78ognHItfOscn1c1xy7RybXD/Htm7dujJxjKFg\nD3CyFT5FUTB16lTMmTMHzIx+/fohJCTE1tMSQgghhLAppwr4AKBDhw5YsmSJrachhBBCCGE3nGpL\n11zGLIUK+yTXzrHJ9XNccu0cm1w/x2bO9SNm5mqYixBCCCGEsBOywieEEEII4eQk4BNCCCGEcHJO\nl7RhikOHDmHVqlVgZvTt2xejRo2y9ZREFZYtW4YDBw6gYcOGWLBgAQAgLy8PixcvRkZGBho1aoTn\nn38eHh4eNp6puFtWVhaWLl2KnJwcKIqC/v37Y+jQoXL9HERxcTFmz56NW7duQafTISYmBmPHjkV6\nejqWLFmCvLw8NGvWDE8//TRcXFxsPV1RAVVV8dJLL8HX1xczZ86Ua+dApk2bBg8PDxARXFxcMG/e\nPLNeO2vtGT5VVfHss8/i1VdfhY+PD1566SU899xzCA4OtvXURCUSExPh7u6OpUuX6gO+1atXo0GD\nBhg5ciQ2bNiAGzduYMKECTaeqbhbTk4OcnJyEB4ejoKCAsycORN///vfER8fL9fPQRQWFsLNzQ2q\nquKVV17B5MmTsXHjRsTExKBbt25Yvnw5wsPDMXDgQFtPVVRg48aNOH36NG7evImZM2di0aJFcu0c\nxPTp0zF//nx4enrqbzPnd1+t3dJNTk5GkyZNEBAQAFdXV/To0QN79+619bREFVq1aoX69euXuW3f\nvn2IjY0FAPTp00euoZ3y9vZGeHg4AMDd3R3BwcHIysqS6+dA3NzcAGirfTqdDkSE48ePo2vXrgCA\n2NhY7Nmzx5ZTFJXIysrCwYMH0b9/f/1tx44dk2vnIJgZd6/NmfPaWWu3dLOzs+Hn56f/2NfXF8nJ\nyTackTDHtWvX4O3tDUALKnJzc208I2FIeno6zp07h8jISLl+DkRVVcyaNQtXrlzB/fffj8aNG6N+\n/fpQFG3dwM/PD1evXrXxLEVFPv30U0ycOBH5+fkAgOvXr8PT01OunYMgIsydOxdEhAEDBqB///5m\nvXbW2oCvIkRk6ykI4dQKCgrw7rvvYvLkyXB3d7f1dIQJFEXB22+/jfz8fCxYsABpaWnl7iOvofan\n9NxzeHi4vod8RStGcu3s15w5c/RB3Zw5cxAUFGTWOLU24PP19UVmZqb+4+zsbPj4+NhwRsIc3t7e\nyMnJ0f/dsGFDW09JVEKn02HhwoXo3bs3oqOjAcj1c0QeHh5o06YNTp06hRs3bkBVVSiKgqysLHkN\ntUOJiYnYt28fDh48iKKiIty8eROrVq1Cfn6+XDsHUbqS5+XlhejoaCQnJ5v12llrz/C1aNECly9f\nRkZGBm7duoUdO3agS5cutp6WMODud6adO3dGQkICACAhIUGuoR1btmwZQkJCMHToUP1tcv0cQ25u\nrn47sKioCEePHkVISAjatm2LXbt2AQC2bt0q188OPfzww1i2bBmWLl2K5557Du3atcMzzzwj185B\nFBYWoqCgAIC2Q3LkyBGEhoaa9dpZa7N0Aa0sy8qVK8HM6Nevn5RlsXNLlizBiRMncP36dTRs2BBx\ncXGIjo7GokWLkJmZCX9/f7zwwgvlEjuE7SUmJmL27NkIDQ0FEYGI8NBDD6FFixZy/RxAamoqPvjg\nA6iqCmZG9+7dMXr0aKSnp2Px4sW4ceMGwsPD8fTTT8PVtdZuHNm9EydO4Pvvv9eXZZFrZ//S09Px\nzjvvgIig0+nQq1cvjBo1Cnl5eSa/dtbqgE8IIYQQojaotVu6QgghhBC1hQR8QgghhBBOTgI+IYQQ\nQggnJwGfEEIIIYSTk4BPCCGEEMLJScAnhBBCCOHkJOATQggr+u233zB37lyzHrt+/Xq8//77Vp6R\nEELU4tZqQggBANOmTcO1a9fg4uICZgYRITY2Fo8++qhZ4/Xs2RM9e/Y0ez7S01QIUR0k4BNC1Hqz\nZs1Cu3btbD0NIYSoNhLwCSFEBRISEvDrr7+iWbNm2LZtG3x8fDB16lR9YJiQkICvv/4aubm58PLy\nwrhx49CzZ08kJCRgy5YteOONNwAASUlJWLVqFS5fvowmTZpg8uTJiIyMBKC1Tfrwww9x5swZREZG\nokmTJmXmcOrUKXz++ee4cOECAgICMHnyZLRp06ZmvxBCCKcgZ/iEEKISycnJCAwMxCeffIKxY8di\nwYIFuHHjBgoLC7Fy5Uq8/PLL+PTTT/Hmm28iPDxc/7jSbdm8vDzMnz8fw4YNw4oVKzBs2DDMmzcP\neXl5AID33nsPERERWLFiBUaPHo2tW7fqx8jOzsZbb72FMWPGYOXKlZg4cSIWLlyI69ev1+jXQAjh\nHCTgE0LUeu+88w6mTJmi/7NlyxYAQMOGDTF06FAoioLu3bsjKCgIBw4cAAAoioLU1FQUFRXB29sb\nISEh5cY9cOAAgoKC0LNnTyiKgh49eiA4OBj79+9HZmYmUlJSMG7cOLi6uqJ169bo3Lmz/rHbt29H\nx44d0aFDBwBA+/bt0bx5cxw8eLAGviJCCGcjW7pCiFpvxowZ5c7wJSQkwNfXt8xt/v7+uHr1Ktzc\n3PD888/ju+++w7Jly9CyZUtMmjQJQUFBZe5/9epV+Pv7lxsjOzsbV69ehaenJ+rWrVvucwCQkZGB\nnTt3Yv/+/frP63Q6OWsohDCLBHxCCFGJ0uCrVFZWFqKjowEAUVFRiIqKQnFxMdasWYOPPvoIr7/+\nepn7+/j4ICMjo9wYHTt2hI+PD/Ly8lBUVKQP+jIzM6Eo2saLv78/YmNj8cQTT1TXf08IUYvIlq4Q\nQlTi2rVr+OGHH6DT6bBz506kpaWhY8eOuHbtGvbt24fCwkK4uLjA3d1dH6jdqVOnTrh06RJ27NgB\nVVXx+++/48KFC+jcuTP8/f0RERGBdevW4datW0hMTCyzmterVy/s378fhw8fhqqqKCoqwokTJ8oF\noUIIYQxiZrb1JIQQwlamTZuG3NxcKIqir8PXvn17dOnSBVu2bEF4eDi2bdsGb29vTJ06Fe3bt0dO\nTg4WL16Mc+fOAQDCw8Px2GOPITg4GAkJCYiPj9ev9iUlJWHlypW4cuUKAgMDMWXKlDJZuh988AHO\nnj2rz9LNz8/H9OnTAWhJI6tXr0ZqaipcXFwQERGBxx9/HH5+frb5YgkhHJYEfEIIUYG7AzchhHBk\nsqUrhBBCCOHkJOATQgghhHBysqUrhBBCCOHkZIVPCCGEEMLJScAnhBBCCOHkJOATQgghhHByEvAJ\nIYQQQjg5CfiEEEIIIZycBHxCCCGEEE7u/wFVjnLlnzB2twAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\ngg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\neKAAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "(,\n", + " ,\n", + " )" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plotting.plot_episode_stats(stats, smoothing_window=10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/PolicyGradient/README.md b/PolicyGradient/README.md index 1b6b0ebfb..f24635a30 100644 --- a/PolicyGradient/README.md +++ b/PolicyGradient/README.md @@ -3,10 +3,29 @@ ### Learning Goals -- Understand the difference between vlaue-based and policy-based RL +- Understand the difference between value-based and policy-based Reinforcement LEarning - Understand the REINFORCE Algorithm (Monte Carlo Policy Gradient) - Understand Actor-Critic (AC) algorithms - Understand Advantage Functions +- Understand Deterministic Policy Gradients (Optional) +- Understand how to scale up Policy Gradient methods using asynchronous actor critic and Neural Networks (Optional) + + +### Summary + +- Idea: Instead of parameterizing the value function and doing greedy policy improvement we parameterize the policy and do gradient descent into a direction that improves it. +- Sometimes the policy is easier to approximate than the value function. Also, we need a parameterized policy to deal with continuous action spaces and environment where we need to act stochastically. +- Policy Score Function `J(theta)`: Intuitively, it measures how good our policy is. For example, we can use the average value or average reward under a policy as our objective. +- Common choices for the policy function: Softmax for discrete actions, Gaussian parameters for continuous actions. +- Policy Gradient Theorem: `grad(J(theta)) = Ex[grad(log(pi(s, a))) * Q(s, a)]`. Basically, we move our policy into a direction of more reward. +- REINFORCE (Monte Carlo Policy Gradient): We substitute a samples return `g_t` form an episode for Q(s, a) to make an update. Unbiased but high variance. +- Baseline: Instead of measuring the absolute goodness of an action we want to know how much better than "average" it is to take an action given a state. E.g. some states are naturally bad and always give negative reward. This is called the advantage and is defined as `Q(s, a) - V(s)`. We use that for our policy update, e.g. `g_t - V(s)` for REINFORCE. +- Actor Critic: Instead of waiting until the end of an episode as in REINFORCE we use bootstrapping and make an update at each step. To do that we also train a Critic Q(theta) that approximates the value function. Now we have two function approximators: One of the policy, one for the critic. This is basically TD, but for Policy Gradients. +- A good estimate of the advantage function in the Actor Critic algorithm is the td error. Our update then becomes `grad(J(theta)) = Ex[grad(log(pi(s, a))) * td_error]`. +- Can use policy gradients with td-lambda, eligibility traces, and so on. +- Deterministic Policy Gradients: Useful for high-dimensional continuous action spaces where stochastic policy gradients are expensive to compute. The idea is to update the policy in the direction of the gradient of the action-value function. To ensure exploration we can use an off-policy actor critic algorithm with added noise in action selection. +- Deep Deterministic Policy Gradients: Apply tricks from DQN to Deterministic Policy Gradients ;) +- Asynchronous Advantage Actor Critic (A3C): Instead of using an experience replay buffer as in DQN use multiple agents on different threads to explore the state spaces and make decorrelated updates to the actor and the critic. ### Lectures & Readings @@ -18,11 +37,20 @@ **Optional:** - [Reinforcement Learning: An Introduction](https://www.dropbox.com/s/d6fyn4a5ag3atzk/bookdraft2016aug.pdf) - Chapter 11: Policy Gradient Methods (Under Construction) +- [Deterministic Policy Gradient Algorithms](http://jmlr.org/proceedings/papers/v32/silver14.pdf) +- [Deterministic Policy Gradient Algorithms (Talk)](http://techtalks.tv/talks/deterministic-policy-gradient-algorithms/61098/) +- [Continuous control with deep reinforcement learning](https://arxiv.org/abs/1509.02971) +- [Deep Deterministic Policy Gradients in TensorFlow](http://pemami4911.github.io/blog_posts/2016/08/21/ddpg-rl.html) - [Asynchronous Methods for Deep Reinforcement Learning](https://arxiv.org/abs/1602.01783) +- [Deep Reinforcement Learning: A Tutorial (Policy Gradient Section)](https://gym.openai.com/docs/rl#policy-gradients) + ### Exercises -- Implement the REINFORCE algorithms in Python -- Implement the Q-Learning Actor-Critic algorithm in Python -- Implement Policy Gradient method with function approximation to solve Pong \ No newline at end of file +- Implement REINFORCE with Baseline (Exercise, [Solution](CliffWalk REINFORCE with Baseline Solution.ipynb)) +- Implement Actor Critic with Baseline (Exercise, [Solution](CliffWalk Actor Critic Solution.ipynb)) +- Implement Actor Critic with Baseline for Continuous Action Space (Exercise, [Solution](Continuous MountainCar Actor Critic Solution.ipynb)) +- Implement Deterministic Policy Gradients for Continuous Action Spaces (WIP) +- Implement Deep Deterministic Policy Gradients (WIP) +- Implement synchronous Advantage Actor Critic (A3C) (WIP) diff --git a/TD/Q-Learning Solution.ipynb b/TD/Q-Learning Solution.ipynb index 81f3790af..426988870 100644 --- a/TD/Q-Learning Solution.ipynb +++ b/TD/Q-Learning Solution.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { "collapsed": false }, @@ -17,6 +17,7 @@ "import pandas as pd\n", "import sys\n", "\n", + "\n", "if \"../\" not in sys.path:\n", " sys.path.append(\"../\") \n", "\n",