{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import copy\n", "import torch\n", "import torch.nn as nn\n", "import torch.nn.functional as F\n", "import torch.optim as optim\n", "from utils import Lottery, plot_values\n", "\n", "\n", "torch.manual_seed(12046)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# 收集数据\n", "states = []\n", "rewards = []\n", "game = Lottery()\n", "for _ in range(1000):\n", " s = game.reset()\n", " done = False\n", " one_game_state = []\n", " one_game_reward = []\n", " while not done:\n", " # 游戏策略是一直抽奖\n", " action = 1\n", " next_s, r = game.step(action)\n", " one_game_state.append(s)\n", " one_game_reward.append(r)\n", " s = next_s\n", " if next_s == 't':\n", " done = True\n", " states.append(one_game_state)\n", " rewards.append(one_game_reward)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor(10.0801)" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def compute_cum_rewards(r, gamma):\n", " '''\n", " 计算游戏得分\n", " '''\n", " cum_rewards = 0\n", " for j in reversed(r):\n", " cum_rewards = j + cum_rewards * gamma\n", " return cum_rewards\n", "\n", "compute_cum_rewards(torch.normal(1, 1, (100,)), 0.9)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# MC学习和TD学习的超参数\n", "gamma = 0.9\n", "alpha = 0.01\n", "# 神经网络的超参数\n", "learning_rate = 0.01\n", "lambda_ = 0.95" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# MC学习\n", "# 定义初始的值函数\n", "v = [{'w': 0.0, 'l': 0.0}]\n", "\n", "for s, r in zip(states, rewards):\n", " if len(s) == 0:\n", " continue\n", " # 将一个回合拆分成n个回合\n", " for i in range(len(s)):\n", " values = copy.deepcopy(v[-1])\n", " # 此处可以加上首次出现(Exploring Starts)的筛选\n", " # 游戏得分\n", " G = compute_cum_rewards(r[i:], gamma)\n", " # 计算优势函数\n", " advantage = G - values[s[i]]\n", " vt = values[s[i]]\n", " # 迭代更新\n", " values[s[i]] = vt + alpha * advantage\n", " v.append(values)\n", "\n", "fig = plot_values(v)\n", "fig.savefig('mc_learning.png', dpi=200)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# TD学习\n", "# 定义初始的值函数\n", "v = [{'w': 0.0, 'l': 0.0}]\n", "\n", "for s, r in zip(states, rewards):\n", " if len(s) == 0:\n", " continue\n", " for i in range(len(s)):\n", " values = copy.deepcopy(v[-1])\n", " vt_next = values[s[i + 1]] if i < len(s) - 1 else 0\n", " # 预估游戏得分\n", " G = r[i] + gamma * vt_next\n", " # 计算优势函数\n", " advantage = G - values[s[i]]\n", " vt = values[s[i]]\n", " # 迭代更新\n", " values[s[i]] = vt + alpha * advantage\n", " v.append(values)\n", "\n", "fig = plot_values(v)\n", "fig.savefig('td_learning.png', dpi=200)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "class VQN(nn.Module):\n", " \n", " def __init__(self):\n", " super().__init__()\n", " self.emb = nn.Embedding(2, 4)\n", " self.ln = nn.Linear(4, 1)\n", " # 为了方便对比,固定初始化参数初始化\n", " for p in self.parameters():\n", " if p.ndimension() != 2:\n", " torch.nn.init.zeros_(p)\n", " else:\n", " torch.nn.init.eye_(p)\n", "\n", " def forward(self, x):\n", " '''\n", " 向前传播\n", " 参数\n", " ----\n", " x :str,只有两个取值,分别是w和l\n", " 返回\n", " ----\n", " out :torch.FloatTensor,值函数\n", " '''\n", " ref = {'w': 0, 'l': 1}\n", " x = torch.tensor(ref[x])\n", " x = F.relu(self.emb(x))\n", " out = self.ln(x)\n", " return out" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# MC学习与神经网络的结合\n", "model = VQN()\n", "optimizer = optim.AdamW(model.parameters(), lr=learning_rate)\n", "v = []\n", "\n", "for s, r in zip(states, rewards):\n", " if len(s) == 0:\n", " continue\n", " loss = 0.0\n", " optimizer.zero_grad()\n", " for i in range(len(s)):\n", " # 此处可以加上首次出现(Exploring Starts)的筛选\n", " with torch.no_grad():\n", " G = compute_cum_rewards(r[i:], gamma)\n", " # 利用神经网络预估优势函数\n", " advantage = G - model(s[i])\n", " vt = model(s[i])\n", " # 定义模型损失\n", " loss += -advantage * vt\n", " # 上面对loss的定义等价于:loss = 0.5 * (G - vt) ** 2\n", " loss /= len(s)\n", " loss.backward()\n", " optimizer.step()\n", " # 记录模型效果\n", " v.append({'w': model('w').item(), 'l': model('l').item()})\n", "\n", "fig = plot_values(v)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgkAAAH4CAYAAADARH7ZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAA9hAAAPYQGoP6dpAABVdklEQVR4nO3dd3zV1f3H8dfJHmQACYS9lxCWDEFR3FvcFtfPPWu1rba1rVWr1WpbV6vWjTjqqAvrwImKInvvTSCMkJBBdnLP749zAwFvIAk3+d4k7+fjcR/35nu/9+aTL9x73/d8zzDWWkRERET2F+Z1ASIiIhKaFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkoAYNCcaYVGNMhjFmfID7zjfGLDPGFBljphhjUhuyFhEREambBgsJxphY4C2gc4D7JvjvywbuBLr6fxYREZEQYRpigSdjTAowBegGdASOtdZO898XBqwBdgOjrLUlxpiOwDrgAmvth0EvSEREROqsoVoSLgEqgLMC3JcO9ACetNaWAFhrM4FPgAkNVI+IiIjUUUQDPe8U4F9AlwD3DfRfT99v+yLgtJqe0BgTDUTvt7kNkFPPGkVERFqyBCDTHuCUQoOEBGvtegBjTKC7k/3XG/bbnkXgUFHlTuDuQyxNRERE9uoMbKnpzoZqSTiQquRQvN/2ElyqqcmDwCPVfk4ANmdkZJCYmBjE8kRERJq3/Px8unTpAlBwoP28CAklgMX1h/BV22746emEPay1pUDpnp39rRSJiYkKCSIiIg3Ai8mUtuECQaf9tqdwkEQjIiIijceLkLDYfz1mv+3DcQFCREREQkCjhwRr7SZgIXC98Z8zMMa0BU4FpjV2PSIiIhKYV2s3PAiMB541xpwCfAjEAM95VI+IiIjsx4uOi1hr3zTGdAP+AlyD65B4k7V2nhf1iIiIyE81aEiw1m5g75DH/e972BjzGjAEWGitrXGcpoiIiDQ+T1oSqviDgcKBiIhICPKqT4KIiIiEOIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQURERAJSSBAREZGAFBJEREQkIIUEERERCUghQUSkBdmYXUhBSbnXZUgTEeF1ASIi0vB+WLuTxz5fzawNOXRIiuHpSw9naJdkr8uSEGestV7XUC/GmEQgLy8vj8TERK/LEREJSSXlldz74TL+M2vTT+5L75RE73at6JkST5tWUSTFRnLywDQiw9XI3Nzl5+eTlJQEkGStza9pP7UkiIg0UwsycvndO4tYsa0AY+CS0V257Iju/Pubtby/YAuLt+SxeEvePo9pnxjN2F4pdEqOJSEmgglDO5GWFOPRXyBeU0uCiDRZ1lreX7CFZ79dT1REGEf3SaG4rJJNOUV7LuHGkJoYTZu4KCLDw2gVE0FMZDjd2sTRpU0sZw3pRGxUuNd/SlBt3lXEw5+uZMrCTABSWkXx2EXDOKpPyp59duSXMHN9Dhm7ili+tYDdJeXMz8glt2jf/gpREWFcMrorN47vRbsEhYXmorYtCQoJIiGmvNLH7pIKWsdHeV1KSMsrLuf37y7mo8VbD+l5fnF8H351Yt8gVRV8FZU+3l+QyefLtjGwYxLXjOtBXFTgRuCdu0t59tt1TPphA2UVPoyBc4d15ren9KNd4sE/4EvKK5m1PodFm3PZUVDKos15LMjIBcAYSEuM4bqje3LlkT2C+SeKBxQSRJqYorIK3pm7mX9+tYas3aW8ed0YRvVo43VZIcdayw9rs/nNfxexJbeYiDDDVUf1ICk2kszcYmIjw+ncOpZubePp2jYOgKyCUnIKyyiv9FFQUsHu0grmbNjFF8u30z8tgU9vO9rjv2pflT7Lym0FzFyfzeQZG1m/s3DPfR2SYpgwtBMDOiSQvbuMrXnFZOaVsDW3mCVb8imr9AEwpmdb/nD6AAZ1Sqp3HdZapq/ZyT8+W7UnLADccEwvbj+pLxHqu9BkKSSINBEl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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# TD学习与神经网络的结合\n", "model = VQN()\n", "optimizer = optim.AdamW(model.parameters(), lr=learning_rate)\n", "v = []\n", "\n", "for s, r in zip(states, rewards):\n", " if len(s) == 0:\n", " continue\n", " loss = 0.0\n", " optimizer.zero_grad()\n", " for i in range(len(s)):\n", " with torch.no_grad():\n", " # 利用神经网络预估游戏得分和优势函数\n", " vt_next = model(s[i + 1]) if i < len(s) - 1 else 0\n", " G = r[i] + gamma * vt_next\n", " advantage = G - model(s[i])\n", " vt = model(s[i])\n", " # 定义模型损失\n", " loss += -advantage * vt\n", " # 上面对loss的定义等价于:loss = 0.5 * (G - vt) ** 2\n", " loss /= len(s)\n", " loss.backward()\n", " optimizer.step()\n", " # 记录模型效果\n", " v.append({'w': model('w').item(), 'l': model('l').item()})\n", "\n", "fig = plot_values(v)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "class GAE:\n", "\n", " def __init__(self, gamma, lambda_):\n", " self.gamma = gamma\n", " self.lambda_ = lambda_\n", "\n", " def __call__(self, rewards, values):\n", " # 优势函数\n", " advantages = []\n", " last_advantage = 0\n", " vt_next = 0\n", " for r, vt in zip(reversed(rewards), reversed(values)):\n", " delta = r + self.gamma * vt_next - vt\n", " last_advantage = delta + self.gamma * self.lambda_ * last_advantage\n", " advantages.insert(0, last_advantage)\n", " vt_next = vt\n", "\n", " return advantages" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor([True, True, True, True, True, True, True, True, True])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 示例数据\n", "s = states[-1]\n", "r = rewards[-1]\n", "values = [model(i).item() for i in s]\n", "# 验证lambda_=1时,gae等同于MC学习\n", "mc_advantage = []\n", "for i in range(len(r)):\n", " G = compute_cum_rewards(r[i:], gamma)\n", " mc_advantage.append(G - values[i])\n", "gae = GAE(gamma, 1)\n", "gae_advantage = torch.tensor(gae(r, values))\n", "torch.abs(torch.tensor(mc_advantage) - gae_advantage) < 1e-4" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor([True, True, True, True, True, True, True, True, True])" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 验证lambda_=0时,gae等同于TD学习\n", "vt_next = values[:-1] + [0.0]\n", "td_advantage = torch.tensor(r) + gamma * torch.tensor(vt_next) - torch.tensor(values)\n", "gae = GAE(gamma, 0)\n", "gae_advantage = torch.tensor(gae(r, values))\n", "torch.abs(td_advantage - gae_advantage) < 1e-4" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 使用GAE进行值函数学习\n", "model = VQN()\n", "optimizer = optim.AdamW(model.parameters(), lr=learning_rate)\n", "v = []\n", "gae = GAE(gamma, lambda_)\n", "\n", "for s, r in zip(states, rewards):\n", " if len(s) == 0:\n", " continue\n", " optimizer.zero_grad()\n", " with torch.no_grad():\n", " values = [model(_state).item() for _state in s]\n", " # 预估优势函数\n", " advantages = torch.tensor(gae(r, values))\n", " vpred = torch.concat([model(_state) for _state in s], dim=0)\n", " # 定义模型损失\n", " loss = torch.mean(-advantages * vpred)\n", " loss.backward()\n", " optimizer.step()\n", " # 记录模型效果\n", " v.append({'w': model('w').item(), 'l': model('l').item()})\n", " \n", "fig = plot_values(v)" ] } ], "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.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }