Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save RobertArbon/0c9cbef4f74366be15a1939842f2b69b to your computer and use it in GitHub Desktop.
Save RobertArbon/0c9cbef4f74366be15a1939842f2b69b to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Mountain Car v0 - Q Learning - Modified Reward"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import ipympl\n",
"import matplotlib.pyplot as plt\n",
"import gym\n",
"import numpy as np\n",
"from tqdm import tqdm, trange\n",
"import pandas as pd\n",
"import torch\n",
"import torch.nn as nn\n",
"import torch.optim as optim\n",
"import torch.nn.functional as F\n",
"from torch.autograd import Variable\n",
"from tensorboardX import SummaryWriter\n",
"from datetime import datetime\n",
"import glob, os\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[33mWARN: gym.spaces.Box autodetected dtype as <class 'numpy.float32'>. Please provide explicit dtype.\u001b[0m\n"
]
}
],
"source": [
"env = gym.make('MountainCar-v0')\n",
"env.seed(1); torch.manual_seed(1); np.random.seed(1)\n",
"PATH = glob.glob(os.path.expanduser('~/tboardlogs/'))[0]\n",
"writer = SummaryWriter('{}{}'.format(PATH, datetime.now().strftime('%b%d_%H-%M-%S')))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Running the environment with random actions produces no successful episodes in a run of 1000 episodes. The agent receives a reward of -1 for every step that does not end in a successful completion of the episode but we can modify the policy learning to reward progress and encourage the agent to move further and further to the right of the environment."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Furthest Position: -0.164068288377174\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc1917f8dd8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"successful episodes: 0\n"
]
}
],
"source": [
"max_position = -.4\n",
"positions = np.ndarray([0,2])\n",
"rewards = []\n",
"successful = []\n",
"for episode in range(1000):\n",
" running_reward = 0\n",
" env.reset()\n",
" done = False\n",
" for i in range(200):\n",
" state, reward, done, _ = env.step(np.random.randint(0,3))\n",
" # Give a reward for reaching a new maximum position\n",
" if state[0] > max_position:\n",
" max_position = state[0]\n",
" positions = np.append(positions, [[episode, max_position]], axis=0)\n",
" running_reward += 10\n",
" else:\n",
" running_reward += reward\n",
" if done: \n",
" if state[0] >= 0.5:\n",
" successful.append(episode)\n",
" rewards.append(running_reward)\n",
" break\n",
"\n",
"print('Furthest Position: {}'.format(max_position))\n",
"plt.figure(1, figsize=[10,5])\n",
"plt.subplot(211)\n",
"plt.plot(positions[:,0], positions[:,1])\n",
"plt.xlabel('Episode')\n",
"plt.ylabel('Furthest Position')\n",
"plt.subplot(212)\n",
"plt.plot(rewards)\n",
"plt.xlabel('Episode')\n",
"plt.ylabel('Reward')\n",
"plt.show()\n",
"print('successful episodes: {}'.format(np.count_nonzero(successful)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Policy\n",
"We'll use a small neural network with 100 hidden units to learn our policy."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# I tried different weight initializations but found they did not perform well.\n",
"def weights_init(m):\n",
" classname = m.__class__.__name__\n",
" if classname.find('Linear') != -1:\n",
" nn.init.normal_(m.weight, 0, 1)\n",
"\n",
"class Policy(nn.Module):\n",
" def __init__(self):\n",
" super(Policy, self).__init__()\n",
" self.state_space = env.observation_space.shape[0]\n",
" self.action_space = env.action_space.n\n",
" self.hidden = 100\n",
" self.l1 = nn.Linear(self.state_space, self.hidden, bias=False)\n",
" self.l2 = nn.Linear(self.hidden, self.action_space, bias=False)\n",
" \n",
" def forward(self, x): \n",
" model = torch.nn.Sequential(\n",
" self.l1,\n",
" self.l2,\n",
" )\n",
" return model(x)\n",
" \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will use the Q-Learning update equation to update our action value function based on the reward for the agent's action and the maximum future action value function one step in the future. The portion inside the brackets becomes the loss function for our neural network where $Q(s_t,a_t)$ is the output of our network and $ r_t + \\gamma \\max\\limits_{a} Q(s_{t+1},a_{t+1}) $ is the target Q value as well as the label for our neural net turning the problem into a supervised learning problem.\n",
"\n",
"$$Q(s_t,a_t) \\leftarrow Q(s_t,a_t) + \\alpha \\big[r_t + \\gamma \\max\\limits_{a} Q(s_{t+1},a_{t+1}) - Q(s_t,a_t)\\big] \\tag{Q-Learning}$$"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████| 1000/1000 [00:59<00:00, 16.74it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"successful episodes: 651 - 65.1000%\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"# Parameters\n",
"steps = 200\n",
"state = env.reset()\n",
"epsilon = 0.3\n",
"gamma = 0.99\n",
"loss_history = []\n",
"reward_history = []\n",
"episodes = 1000\n",
"max_position = -0.4\n",
"learning_rate = 0.001\n",
"successes = 0\n",
"position = []\n",
"\n",
"# Initialize Policy\n",
"policy = Policy()\n",
"#policy.apply(weights_init)\n",
"loss_fn = nn.MSELoss()\n",
"optimizer = optim.SGD(policy.parameters(), lr=learning_rate)\n",
"scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=1, gamma=0.9)\n",
"\n",
"for episode in trange(episodes):\n",
" episode_loss = 0\n",
" episode_reward = 0\n",
" state = env.reset()\n",
"\n",
" for s in range(steps):\n",
" # Uncomment to render environment\n",
" #if episode % 100 == 0 and episode > 0:\n",
" # env.render()\n",
" \n",
" # Get first action value function\n",
" Q = policy(Variable(torch.from_numpy(state).type(torch.FloatTensor)))\n",
" \n",
" # Choose epsilon-greedy action\n",
" if np.random.rand(1) < epsilon:\n",
" action = np.random.randint(0,3)\n",
" else:\n",
" _, action = torch.max(Q, -1)\n",
" action = action.item()\n",
" \n",
" # Step forward and receive next state and reward\n",
" state_1, reward, done, _ = env.step(action)\n",
" \n",
" # Adjust reward based on car position\n",
" reward = state_1[0] + 0.5\n",
" \n",
" # Keep track of max position\n",
" if state_1[0] > max_position:\n",
" max_position = state_1[0]\n",
" writer.add_scalar('data/max_position', max_position, episode)\n",
" \n",
" # Adjust reward for task completion\n",
" if state_1[0] >= 0.5:\n",
" reward += 1\n",
" \n",
" # Find max Q for t+1 state\n",
" Q1 = policy(Variable(torch.from_numpy(state_1).type(torch.FloatTensor)))\n",
" maxQ1, _ = torch.max(Q1, -1)\n",
" \n",
" # Create target Q value for training the policy\n",
" Q_target = Q.clone()\n",
" Q_target = Variable(Q_target)\n",
" Q_target[action] = reward + torch.mul(maxQ1.detach(), gamma)\n",
" \n",
" # Calculate loss\n",
" loss = loss_fn(Q, Q_target)\n",
" \n",
" # Update policy\n",
" policy.zero_grad()\n",
" loss.backward()\n",
" optimizer.step()\n",
"\n",
" episode_loss += loss.item()\n",
" episode_reward += reward\n",
" \n",
" if done:\n",
" if state_1[0] >= 0.5:\n",
" # On successful epsisodes, adjust the following parameters\n",
"\n",
" # Adjust epsilon\n",
" epsilon *= .95\n",
" writer.add_scalar('data/epsilon', epsilon, episode)\n",
"\n",
" # Adjust learning rate\n",
" scheduler.step()\n",
" #optimizer.param_groups[0]['lr'] = max(optimizer.param_groups[0]['lr'], 1.0e-4)\n",
" writer.add_scalar('data/learning_rate', optimizer.param_groups[0]['lr'], episode)\n",
"\n",
" # Record successful episode\n",
" successes += 1\n",
" writer.add_scalar('data/cumulative_success', successes, episode)\n",
" writer.add_scalar('data/success', 1, episode)\n",
" \n",
" elif state_1[0] < 0.5:\n",
" writer.add_scalar('data/success', 0, episode)\n",
" \n",
" # Record history\n",
" loss_history.append(episode_loss)\n",
" reward_history.append(episode_reward)\n",
" writer.add_scalar('data/episode_loss', episode_loss, episode)\n",
" writer.add_scalar('data/episode_reward', episode_reward, episode)\n",
" weights = np.sum(np.abs(policy.l2.weight.data.numpy()))+np.sum(np.abs(policy.l1.weight.data.numpy()))\n",
" writer.add_scalar('data/weights', weights, episode)\n",
" writer.add_scalar('data/position', state_1[0], episode)\n",
" position.append(state_1[0])\n",
"\n",
" break\n",
" else:\n",
" state = state_1\n",
" \n",
"writer.close()\n",
"print('successful episodes: {:d} - {:.4f}%'.format(successes, successes/episodes*100))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plot Results\n",
"Around episode 330 the agent begins to successfully complete episodes, and around episode 370, the agent completes almost every episode successfully."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc1e82e58d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(2, figsize=[10,5])\n",
"p = pd.Series(position)\n",
"ma = p.rolling(10).mean()\n",
"plt.plot(p, alpha=0.8)\n",
"plt.plot(ma)\n",
"plt.xlabel('Episode')\n",
"plt.ylabel('Position')\n",
"plt.title('Car Final Position')\n",
"plt.savefig('Final Position - Modified.png')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<iframe width=\"900\" position=\"800\" frameborder=\"0\" scrolling=\"no\" src=\"//plot.ly/~ts1829/22.embed\"></iframe>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualize Policy\n",
"The learned policy can be clearly visualized in the plot below. The agent learns to move left when the car's velocity is negative and then switch directions when the car's velocity becomes positive with a few position and velocity combinations on the far left of the environment where the agent will do nothing."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"X = np.random.uniform(-1.2, 0.6, 10000)\n",
"Y = np.random.uniform(-0.07, 0.07, 10000)\n",
"Z = []\n",
"for i in range(len(X)):\n",
" _, temp = torch.max(policy(Variable(torch.from_numpy(np.array([X[i],Y[i]]))).type(torch.FloatTensor)), dim =-1)\n",
" z = temp.item()\n",
" Z.append(z)\n",
"Z = pd.Series(Z)\n",
"colors = {0:'blue',1:'lime',2:'red'}\n",
"colors = Z.apply(lambda x:colors[x])\n",
"labels = ['Left','Right','Nothing']"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc17f7de160>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.patches as mpatches\n",
"from matplotlib.colors import ListedColormap\n",
"fig = plt.figure(5, figsize=[7,7])\n",
"ax = fig.gca()\n",
"plt.set_cmap('brg')\n",
"surf = ax.scatter(X,Y, c=Z)\n",
"ax.set_xlabel('Position')\n",
"ax.set_ylabel('Velocity')\n",
"ax.set_title('Policy')\n",
"recs = []\n",
"for i in range(0,3):\n",
" recs.append(mpatches.Rectangle((0,0),1,1,fc=sorted(colors.unique())[i]))\n",
"plt.legend(recs,labels,loc=4,ncol=3)\n",
"fig.savefig('Policy - Modified.png')\n",
"plt.show()"
]
}
],
"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.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment