From 12ddb705207e8658cb897cd7bd821b4b46b2a3c3 Mon Sep 17 00:00:00 2001 From: Ritwik <rm02120@surrey.ac.uk> Date: Sat, 17 May 2025 03:32:52 +0100 Subject: [PATCH] added deep Q learning notebook --- notebooks/reinforcement learning/DQN_RL.ipynb | 387 ++++++++++++++++++ 1 file changed, 387 insertions(+) create mode 100644 notebooks/reinforcement learning/DQN_RL.ipynb diff --git a/notebooks/reinforcement learning/DQN_RL.ipynb b/notebooks/reinforcement learning/DQN_RL.ipynb new file mode 100644 index 0000000..f932065 --- /dev/null +++ b/notebooks/reinforcement learning/DQN_RL.ipynb @@ -0,0 +1,387 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "9r9Lm8rxyVq2", + "outputId": "6163ada4-1013-431c-bd96-dc8c1286a1c8" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: gymnasium in /usr/local/lib/python3.11/dist-packages (1.1.1)\n", + "Requirement already satisfied: pygame in /usr/local/lib/python3.11/dist-packages (2.6.1)\n", + "Requirement already satisfied: box2d in /usr/local/lib/python3.11/dist-packages (2.3.10)\n", + "Requirement already satisfied: numpy>=1.21.0 in /usr/local/lib/python3.11/dist-packages (from gymnasium) (2.0.2)\n", + "Requirement already satisfied: cloudpickle>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from gymnasium) (3.1.1)\n", + "Requirement already satisfied: typing-extensions>=4.3.0 in /usr/local/lib/python3.11/dist-packages (from gymnasium) (4.13.2)\n", + "Requirement already satisfied: farama-notifications>=0.0.1 in /usr/local/lib/python3.11/dist-packages (from gymnasium) (0.0.4)\n" + ] + } + ], + "source": [ + "!pip install gymnasium pygame box2d" + ] + }, + { + "cell_type": "code", + "source": [ + "import gymnasium as gym\n", + "import numpy as np\n", + "import random\n", + "import torch\n", + "import torch.nn as nn\n", + "import torch.optim as optim\n", + "from collections import deque\n", + "import matplotlib.pyplot as plt" + ], + "metadata": { + "id": "KdefCKr3yYWb" + }, + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Set random seed for reproducibility\n", + "SEED = 42\n", + "\n", + "random.seed(SEED)\n", + "np.random.seed(SEED)\n", + "torch.manual_seed(SEED)\n", + "torch.cuda.manual_seed_all(SEED)\n", + "torch.backends.cudnn.deterministic = True\n", + "torch.backends.cudnn.benchmark = False" + ], + "metadata": { + "id": "3_EwD55kypRy" + }, + "execution_count": 3, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Q-network\n", + "class QNetwork(nn.Module):\n", + " def __init__(self, state_size, action_size):\n", + " super(QNetwork, self).__init__()\n", + " self.fc1 = nn.Linear(state_size, 64)\n", + " self.fc2 = nn.Linear(64, 64)\n", + " self.out = nn.Linear(64, action_size)\n", + "\n", + " def forward(self, x):\n", + " x = torch.relu(self.fc1(x))\n", + " x = torch.relu(self.fc2(x))\n", + " return self.out(x)" + ], + "metadata": { + "id": "8m3IJVddyvha" + }, + "execution_count": 4, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "env = gym.make(\"LunarLander-v3\") # For training\n", + "state_size = env.observation_space.shape[0]\n", + "action_size = env.action_space.n\n", + "\n", + "# Hyperparameters\n", + "episodes = 100\n", + "gamma = 0.99\n", + "lr = 1e-3\n", + "epsilon = 1.0\n", + "epsilon_min = 0.01\n", + "epsilon_decay = 0.995\n", + "batch_size = 64\n", + "buffer_size = 100_000\n", + "target_update_freq = 5" + ], + "metadata": { + "id": "FdnjNQ_PyvaT" + }, + "execution_count": 9, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "policy_net = QNetwork(state_size, action_size)\n", + "target_net = QNetwork(state_size, action_size)\n", + "target_net.load_state_dict(policy_net.state_dict())\n", + "\n", + "optimizer = optim.Adam(policy_net.parameters(), lr=lr)\n", + "memory = deque(maxlen=buffer_size)\n", + "\n", + "def get_action(state, epsilon):\n", + " if random.random() < epsilon:\n", + " return env.action_space.sample()\n", + " with torch.no_grad():\n", + " state_tensor = torch.FloatTensor(state).unsqueeze(0)\n", + " return policy_net(state_tensor).argmax().item()\n" + ], + "metadata": { + "id": "ZTe_e5NyyvX5" + }, + "execution_count": 10, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "reward_history = []\n", + "\n", + "for episode in range(episodes):\n", + " state, _ = env.reset()\n", + " total_reward = 0\n", + " done = False\n", + "\n", + " while not done:\n", + " action = get_action(state, epsilon)\n", + " next_state, reward, done, truncated, _ = env.step(action)\n", + " memory.append((state, action, reward, next_state, done))\n", + " state = next_state\n", + " total_reward += reward\n", + "\n", + " if len(memory) >= batch_size:\n", + " batch = random.sample(memory, batch_size)\n", + " states, actions, rewards, next_states, dones = zip(*batch)\n", + "\n", + " states = torch.FloatTensor(np.array(states))\n", + " actions = torch.LongTensor(actions).unsqueeze(1)\n", + " rewards = torch.FloatTensor(rewards)\n", + " next_states = torch.FloatTensor(np.array(next_states))\n", + " dones = torch.FloatTensor(dones)\n", + "\n", + " current_q = policy_net(states).gather(1, actions).squeeze()\n", + "\n", + " with torch.no_grad():\n", + " next_q = target_net(next_states).max(1)[0]\n", + " target_q = rewards + gamma * next_q * (1 - dones)\n", + "\n", + " loss = nn.MSELoss()(current_q, target_q)\n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " optimizer.step()\n", + "\n", + " epsilon = max(epsilon_min, epsilon * epsilon_decay)\n", + " reward_history.append(total_reward)\n", + "\n", + " if episode % target_update_freq == 0:\n", + " target_net.load_state_dict(policy_net.state_dict())\n", + "\n", + " if episode % 20 == 0:\n", + " print(f\"Episode {episode}, Reward: {total_reward:.2f}, Epsilon: {epsilon:.3f}\")\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "jw9mcSBvyvVA", + "outputId": "030193ba-5a9d-4874-9430-5ce63bf2977f" + }, + "execution_count": 11, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Episode 0, Reward: -193.98, Epsilon: 0.995\n", + "Episode 20, Reward: -166.44, Epsilon: 0.900\n", + "Episode 40, Reward: -133.91, Epsilon: 0.814\n", + "Episode 60, Reward: -95.28, Epsilon: 0.737\n", + "Episode 80, Reward: -22.42, Epsilon: 0.666\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### 🧠Training Progress Overview\n", + "\n", + "The agent is showing consistent improvement over training episodes, as indicated by increasingly less negative rewards. This trend suggests successful learning and better policy development as exploration decreases.\n", + "\n", + "| Episode | Reward | Epsilon |\n", + "|---------|------------|---------|\n", + "| 0 | -193.98 | 0.995 |\n", + "| 20 | -166.44 | 0.900 |\n", + "| 40 | -133.91 | 0.814 |\n", + "| 60 | -95.28 | 0.737 |\n", + "| 80 | -22.42 | 0.666 |\n", + "\n", + "- 🔻 **Reward is improving** steadily, showing effective learning.\n", + "- 🔠**Epsilon is decaying** as expected, shifting the policy from exploration to exploitation.\n", + "- 📈 The jump in performance between episodes 60 and 80 suggests the agent discovered a more optimal strategy or policy adjustment.\n", + "\n" + ], + "metadata": { + "id": "qjAmRRTxDS0k" + } + }, + { + "cell_type": "code", + "source": [ + "plt.plot(reward_history)\n", + "plt.xlabel(\"Episode\")\n", + "plt.ylabel(\"Total Reward\")\n", + "plt.title(\"DQN Training on LunarLander-v3\")\n", + "plt.grid(True)\n", + "plt.show()\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 472 + }, + "id": "6LG65sxxyvRb", + "outputId": "079e3a5b-8fe0-470e-fc63-6314947fb1f7" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ], + "image/png": "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LtTc3tfXh/3792PTpk249957sWzZMpxxxhlWNx8xmCi1dEUQpSJdWo1RW1srH3PMMbIsy/Lq1atlAPIVV1yR9nVnzJghNzQ08L9ZWq29vV1+/fXXZQDyPffcw++3I63G0iY1NTXyvn37NI+NxWIp6bWOjg65ublZ/t73vqe5HYB84403pqxd/7gvf/nL8rBhwzS3jR8/XrMmtn3nz58vJxIJfvtVV10lu91uubOzU5ZlWW5ra5M9Ho987rnnal7vpptukgFkTB8+88wzMgD51ltv1dz+1a9+VZYkSd64caPm8/l8Ps1tH330kQxA/u1vf5v2faykpszSRa+++qoMQH711Vf5baeddpoMQH700Uf5beFwWB4xYoT8la98hd9m9ftLtw9YTavpU76yLMsLFy6UJ02apLlt/PjxMgD53//+N79t3759st/vl6+55hp+25VXXikDkN99913N42prazXbqaenR66rq5Mvuugizfu0tbXJtbW1mtu/+93vygDk6667Lu1nkWVZvv7662Wv1ysfPHiQ3xYOh+W6urqUfVqWZfn73/++DEAGILtcLvmrX/2q5rnE0IGUI4JIQ1VVFa9aY/+vrq5O+5zq6mrTSrc5c+Zg3rx5BVOPvvKVr6CxsVFzm9vths/nA6Ckrw4ePIhYLIbjjjsOH374oaXXveSSSzR/z549GwcOHEB3d3fG51588cWQJEnz3Hg8jm3btgEAXn75ZcRiMfz3f/+35nk/+MEPLK1t6dKlcLvduPzyyzW3X3PNNZBlWaPCAMD8+fNxyCGH8L9nzJiBmpoabN682dL72UlVVRW+9a1v8b99Ph9OOOEEzVqy/f6M9gGrVFRU8H93dXVh//79OO2007B582Z0dXVpHjtt2jTMnj2b/93Y2IgpU6Zo1r506VKcdNJJOOGEEzSP06fBWltb0dnZia9//evYv38//8/tduPEE080TAFfeumlGT/P+eefj2g0iqeffprftnz5cnR2duL8889PefyVV16J1tZWPPLII/jCF76AeDyOSCSS8X2IwQcFRwSRht7eXh4Msf+nK/Fn9zc1NZnef9NNN6GtrQ3333+/fQtNYpbue+SRRzBjxgwEAgEMGzYMjY2NeP7551NOeGaMGzdO83d9fT0AJS2U73NZkHTooYdqHtfQ0MAfm45t27Zh1KhRKUHr4Ycfrnl9s/Ww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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### 📈 DQN Training Progress on LunarLander-v3\n", + "\n", + "The plot shows the total episode rewards over 100 episodes of training using a Deep Q-Network (DQN) on the LunarLander-v3 environment.\n", + "\n", + "#### 🔠Observations:\n", + "- **High Variance**: Rewards fluctuate significantly between episodes, ranging from below -400 to above 0.\n", + "- **Instability**: The agent's performance is inconsistent, which is expected in early stages of training when exploration dominates.\n", + "- **Occasional Successes**: Some high-reward episodes indicate the agent is occasionally discovering effective strategies.\n", + "- **No Clear Upward Trend Yet**: The learning signal is still noisy, and a consistent improvement pattern hasn't stabilized.\n", + "\n", + "#### ✅ Suggestions:\n", + "- Apply a **moving average** to smooth the reward curve and better visualize trends.\n", + "- Continue training for **more episodes (e.g., 500–1000)** to allow the policy to converge.\n", + "- Monitor the **average reward over recent episodes** as a more stable performance indicator.\n", + "- Ensure proper **epsilon decay** to balance exploration and exploitation effectively.\n", + "- Start **saving model checkpoints** when significant improvements are observed.\n", + "\n", + "Overall, the agent is learning, but more training and analysis are needed to evaluate long-term progress.\n" + ], + "metadata": { + "id": "PQbaZQGWDiiS" + } + }, + { + "cell_type": "code", + "source": [ + "import gymnasium as gym\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Create environment with image output\n", + "env = gym.make(\"LunarLander-v3\", render_mode=\"rgb_array\")\n", + "state, _ = env.reset()\n", + "\n", + "# Get the first frame\n", + "frame = env.render() # This returns an image (RGB numpy array)\n", + "\n", + "# Show and save the image\n", + "plt.imshow(frame)\n", + "plt.axis(\"off\")\n", + "plt.title(\"LunarLander-v3 - Initial Frame\")\n", + "plt.savefig(\"lunarlander_frame.png\")\n", + "plt.show()\n", + "\n", + "env.close()\n", + "\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 389 + }, + "id": "xQbwYg7gyvOm", + "outputId": "9b8af943-58b4-4bbc-b32b-05de24e7f255" + }, + "execution_count": 15, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ], + "image/png": "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wxEDAAAYjhgAAMBwxAAAAIYjBgAAMBwxAACA4YgBAAAMRwwAAGA4YgAAAMMRAwAAGI4YAADAcMQAAACGIwYAADAcMQAAgOGIAQAADEcMAABgOGIAAADDEQMAABiOGAAAwHDEAAAAhiMGAAAwHDEAAIDhiAEAAAxHDAAAYDhiAAAAwxEDAAAYjhgAAMBwxAAAAIYjBgAAMBwxAACA4YgBAAAMRwwAAGA4YgAAAMMRAwAAGI4YAADAcMQAAACGIwYAADAcMQAAgOGIAQAADEcMAABgOGIAAADDEQMAABiOGAAAwHDEAAAAhiMGAAAwHDEAAIDhiAEAAAxHDAAAYDhiAAAAwxEDAAAYjhgAAMBwxAAAAIYjBgAAMBwxAACA4YgBAAAMRwwAAGA4YgAAAMMRAwAAGI4YAADAcMQAAACGIwYAADAcMQAAgOGIAQAADEcMAABgOGIAAADDEQMAABiOGAAAwHDEAAAAhiMGAAAwHDEAAIDhiAEAAAxHDAAAYDhiAAAAwxEDAAAYjhgAAMBwxAAAAIYjBgAAMBwxAACA4YgBAAAMRwwAAGA4YgAAAMMRAwAAGI4YAADAcMQAAACGIwYAADAcMQAAgOGIAQAADEcMAABgOGIAAADDEQMAABiOGAAAwHDEAAAAhiMGAAAwHDEAAIDhiAEAAAxHDAAAYDhiAAAAwxEDAAAYjhgAAMBwxAAAAIYjBgAAMBwxAACA4YgBAAAMRwwAAGA4YgAAAMMRAwAAGI4YAADAcMQAAACGIwYAADAcMQAAgOGIAQAADEcMAABgOGIAAADDEQMAABiOGAAAwHDEAAAAhiMGAAAwHDEAAIDhiAEAAAxHDAAAYDhiAAAAwxEDAAAYjhgAAMBwxAAAAIYjBgAAMBwxAACA4YgBAAAMRwwAAGA4YgAAAMMRAwAAGI4YAADAcMQAAACGIwYAADAcMQAAgOGIAQAADEcMAABgOGIAAADDEQMAABiOGAAAwHDEAAAAhiMGAAAwHDEAAIDhiAEAAAxHDAAAYDhiAAAAwxEDAAAYjhgAAMBwxAAAAIYjBgAAMBwxAACA4YgBAAAMRwwAAGA4YgAAAMMRAwAAGI4YAADAcMQAAACGIwYAADAcMQAAgOGIAQAADEcMAABgOGIAAADDEQMAABiOGAAAwHDEAAAAhiMGAAAwHDEAAIDhiAEAAAxHDAAAYDhi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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "import gymnasium as gym\n", + "from gymnasium.wrappers import RecordVideo\n", + "\n", + "# Create environment with video recording enabled\n", + "env = RecordVideo(\n", + " gym.make(\"LunarLander-v3\", render_mode=\"rgb_array\"),\n", + " video_folder=\"videos\",\n", + " episode_trigger=lambda ep: True # Record every episode\n", + ")\n", + "\n", + "# Run a single episode using trained agent\n", + "state, _ = env.reset()\n", + "done = False\n", + "\n", + "while not done:\n", + " action = get_action(state, epsilon=0) # Use trained policy\n", + " state, reward, done, truncated, _ = env.step(action)\n", + "\n", + "env.close()\n" + ], + "metadata": { + "id": "W9Wl--z6CHuZ" + }, + "execution_count": 16, + "outputs": [] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "TnUOWtOiEVGr" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file -- GitLab