1 Star 3 Fork 3

ssdreamC / YutaroOgawa-Deep-Reinforcement-Learning-Book

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

边做边学深度强化学习:PyTorch程序设计实践
作者:[日] 小川雄太郎
ISBN:9787111650140

作者的GitHub:https://github.com/YutaroOgawa/Deep-Reinforcement-Learning-Book.git

前两章介绍

第一章主要内容是强化学习概述:

  • 机器学习的分类(监督学习、非监督学习、强化学习
  • 强化学习、深度强化学习的历史
  • 深度强化学习的一些应用实例

第二章主要使用走迷宫任务介绍一些基本的强化学习方法。

2.2.1 对应原书第 2.2~2.4 部分内容

  • 详细介绍了迷宫任务,状态、动作、策略等
  • 随机生成策略求解迷宫路径并可视化路径
  • 使用 softmax 函数演示了策略梯度法求得策略并可视化路径
  • softmax 函数如下: $$ P(\theta_i) = \frac{exp(\beta\theta_i)}{\sum_{j=1}^{N_a}exp(\beta\theta_j)} $$
  • 策略梯度法所用更新公式如下: $$ new~\theta_{s_i,a_j} = old~\theta_{s_i,a_j} + \eta\cdot\Delta\theta_{s,a_j} $$ $$ \Delta\theta_{s,a_j}={N(s_i,a_j)-P(s_i,a_j)N(s_i,a)}/T $$

2.5 对应第 2.5 部分内容

  • 用 $\epsilon$-贪婪法实现了一种 Sarsa 算法
  • Sarsa 算法是一种价值迭代算法
  • 介绍了贝尔曼方程如下: $$ Q(s_t,a_t) = R_{t+1}+\gamma Q(S_{t+1},a_{t+1}) $$
  • Sarsa 算法更新公式如下: $$ Q(s_t,a_t) = Q(s_t,a_t)+\eta*TD \\ TD = R_{t+1}+\gamma Q(s_{t+1},a_{t+1})-Q(s_t,a_t) $$

2.6 对应第 2.6 部分内容

  • 使用 Q学习法(Qlearning),与 Sarsa 不同
  • Qlearning 更新公式对比如下: $$ \text{QLearning: } Q(s_t,a_t)=Q(s_t,a_t) + \eta * (R_{t+1}+\gamma \max_a Q(s_{t+1},a) - Q(s_t,a_t)) \\ \text{Sara: } Q(s_t,a_t)=Q(s_t,a_t) + \eta * (R_{t+1}+\gamma Q(s_{t+1},a_{t+1}) - Q(s_t,a_t)) $$
  • Sarsa 更新时需要求取下一步动作 $a_{t+1}$,这样的特征称为 策略依赖型(ON)特征
  • QLearning 使用在状态 $s_{t+1}$ 下动作的最大价值进行更新,策略关闭型(OFF)

第三章

主要使用复杂一些的倒立摆任务

详细内容见笔记

书中使用的一些包版本较低:gym==0.9.7,pyglet==1.2.4

经测试(2020年8月24日),最新版gym==0.17.2,以及较高版本pyglet==1.5.0可用。

原书中可视化的代码已做修改。

第四章

简要介绍了使用 PyTorch 实现深度学习

  1. 简述了神经网络和深度学习的历史

  2. 深度学习的计算方法

  3. 使用 PyTorch 实现 MNIST 手写数字分类任务

    书中为了完整展示深度学习的过程,使用了 scikit-learn,但库版本较低

    # 使用了新版本,所以
    from sklearn.datasets import fetch_mldata
    # 改为了
    from sklearn.datasets import fetch_openml

    实际上,该部分展示的是监督学习。

第五章

介绍 DQN,Q学习与深度学习的结合,使用深度学习的神经网络替代 Q 表格(本章是 2013 版的 DQN)

第六章

深度强化学习的改进版

  • 6.1 介绍了深度强化学习算法的发展
  • 6.2 介绍了DDQN
    • 2015 Nature 版 DQN 采用了目标 Q 网络 以训练 主 Q 网络: $$ Q_m(s_t, a_t)=Q_m(s_t,a_t) + \eta*(R_{t+1}+\gamma\max_a{Q_t(s_{t+1}, a)}-Q_m(s_t,a_t)) $$
    • DDQN 中使用: $$ a_m = \arg \max_a Q_m(s_{t+1},a) \\ Q_m(s_t, a_t)=Q_m(s_t,a_t) + \eta*(R_{t+1}+\gamma Q_t(s_{t+1}, a_m)-Q_m(s_t,a_t)) $$

空文件

简介

《边做边学深度强化学习:PyTorch程序设计实践》 作者:[日] 小川雄太郎 ISBN:9787111650140 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/ssdreamc/yutaro-ogawa-deep-reinforcement-learning-book.git
git@gitee.com:ssdreamc/yutaro-ogawa-deep-reinforcement-learning-book.git
ssdreamc
yutaro-ogawa-deep-reinforcement-learning-book
YutaroOgawa-Deep-Reinforcement-Learning-Book
master

搜索帮助