Skip to content

Instantly share code, notes, and snippets.

@dqii
Forked from awjuliani/Q-Net Learning Clean.ipynb
Created September 17, 2017 21:57
Show Gist options
  • Save dqii/ee7be7997b50d0e1188ee53bc6bbd32c to your computer and use it in GitHub Desktop.
Save dqii/ee7be7997b50d0e1188ee53bc6bbd32c to your computer and use it in GitHub Desktop.
Basic Q-Learning algorithm using Tensorflow
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Q-Network Learning"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import gym\n",
"import numpy as np\n",
"import random\n",
"import tensorflow as tf\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Load the environment"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:gym.envs.registration:Making new env: FrozenLake-v0\n",
"[2016-08-25 11:47:05,546] Making new env: FrozenLake-v0\n"
]
}
],
"source": [
"env = gym.make('FrozenLake-v0')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Q-Network Approach"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Implementing the network itself"
]
},
{
"cell_type": "code",
"execution_count": 381,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"tf.reset_default_graph()"
]
},
{
"cell_type": "code",
"execution_count": 382,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#These lines establish the feed-forward part of the network used to choose actions\n",
"inputs1 = tf.placeholder(shape=[1,16],dtype=tf.float32)\n",
"W = tf.Variable(tf.random_uniform([16,4],0,0.01))\n",
"Qout = tf.matmul(inputs1,W)\n",
"predict = tf.argmax(Qout,1)\n",
"\n",
"#Below we obtain the loss by taking the sum of squares difference between the target and prediction Q values.\n",
"nextQ = tf.placeholder(shape=[1,4],dtype=tf.float32)\n",
"loss = tf.reduce_sum(tf.square(nextQ - Qout))\n",
"trainer = tf.train.GradientDescentOptimizer(learning_rate=0.1)\n",
"updateModel = trainer.minimize(loss)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Training the network"
]
},
{
"cell_type": "code",
"execution_count": 383,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Percent of succesful episodes: 0.352%\n"
]
}
],
"source": [
"init = tf.initialize_all_variables()\n",
"\n",
"# Set learning parameters\n",
"y = .99\n",
"e = 0.1\n",
"num_episodes = 2000\n",
"#create lists to contain total rewards and steps per episode\n",
"jList = []\n",
"rList = []\n",
"with tf.Session() as sess:\n",
" sess.run(init)\n",
" for i in range(num_episodes):\n",
" #Reset environment and get first new observation\n",
" s = env.reset()\n",
" rAll = 0\n",
" d = False\n",
" j = 0\n",
" #The Q-Network\n",
" while j < 99:\n",
" j+=1\n",
" #Choose an action by greedily (with e chance of random action) from the Q-network\n",
" a,allQ = sess.run([predict,Qout],feed_dict={inputs1:np.identity(16)[s:s+1]})\n",
" if np.random.rand(1) < e:\n",
" a[0] = env.action_space.sample()\n",
" #Get new state and reward from environment\n",
" s1,r,d,_ = env.step(a[0])\n",
" #Obtain the Q' values by feeding the new state through our network\n",
" Q1 = sess.run(Qout,feed_dict={inputs1:np.identity(16)[s1:s1+1]})\n",
" #Obtain maxQ' and set our target value for chosen action.\n",
" maxQ1 = np.max(Q1)\n",
" targetQ = allQ\n",
" targetQ[0,a[0]] = r + y*maxQ1\n",
" #Train our network using target and predicted Q values\n",
" _,W1 = sess.run([updateModel,W],feed_dict={inputs1:np.identity(16)[s:s+1],nextQ:targetQ})\n",
" rAll += r\n",
" s = s1\n",
" if d == True:\n",
" #Reduce chance of random action as we train the model.\n",
" e = 1./((i/50) + 10)\n",
" break\n",
" jList.append(j)\n",
" rList.append(rAll)\n",
"print \"Percent of succesful episodes: \" + str(sum(rList)/num_episodes) + \"%\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Some statistics on network performance"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see that the network beings to consistly reach the goal around the 750 episode mark."
]
},
{
"cell_type": "code",
"execution_count": 384,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x11a81e610>]"
]
},
"execution_count": 384,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nbAPBAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11c226450>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(rList)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It also begins to progress through the environment for longer than chance aroudn the 750 mark as well."
]
},
{
"cell_type": "code",
"execution_count": 385,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x119bd5dd0>]"
]
},
"execution_count": 385,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11a1d16d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(jList)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment