Files
easy-rl/docs/errata.md
qiwang067 39aeb84e93 update
2022-04-25 23:07:46 +08:00

111 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 纸质版勘误表
如何使用勘误?首先找到你的书的印次,接下来对着下表索引印次,该印次之后所有的勘误都是你的书中所要注意的勘误,印次前的所有勘误在当印次和之后印次均已印刷修正。
## 第1版第1次印刷2022.03
* 2页2.1.2节的标题:马尔可夫过程/马尔可夫链 → 马尔可夫链
* 34页2.1.2节的标题:马尔可夫过程/马尔可夫链 → 马尔可夫链
* 35页的图2.2 和 41页的图2.5a替换成下图
![](res/Markov_chain.png ':size=350')
* 47页2.3.5节的第3行称为备份图backup diagram → 称为备份图backup diagram或回溯图
* 62页式(2.55) 前第2行$H$ 是迭代次数 → $H$ 是让 $V(s)$ 收敛所需的迭代次数
* 62页式(2.57) 改为
$$
\pi(s)=\underset{a}{\arg \max } \left[R(s, a)+\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s, a\right) V_{H+1}\left(s^{\prime}\right)\right]
$$
* 76页式(3.1) 中 $G$ 和 $r$ 后面的数字改为下标,即
$$
\begin{array}{l}
G_{13}=0 \\
G_{12}=r_{13}+\gamma G_{13}=-1+0.6 \times 0=-1 \\
G_{11}=r_{12}+\gamma G_{12}=-1+0.6 \times(-1)=-1.6 \\
G_{10}=r_{11}+\gamma G_{11}=-1+0.6 \times(-1.6)=-1.96 \\
G_9=r_{10}+\gamma G_{10}=-1+0.6 \times(-1.96)=-2.176 \approx-2.18 \\
G_8=r_9+\gamma G_9=-1+0.6 \times(-2.176)=-2.3056 \approx-2.3
\end{array}
$$
* 101页中间一段下面的代码和102页最上面的代码的缩进有问题改为
```python
rewards = []
ma_rewards = [] # 滑动平均奖励
for i_ep in range(cfg.train_eps):
ep_reward = 0 # 记录每个回合的奖励
state = env.reset() # 重置环境, 重新开始(开始一个新的回合)
while True:
action = agent.choose_action(state) # 根据算法选择一个动作
next_state, reward, done, _ = env.step(action) # 与环境进行一次动作交互
agent.update(state, action, reward, next_state, done) # Q学习算法更新
state = next_state # 存储上一个观察值
ep_reward += reward
if done:
break
rewards.append(ep_reward)
if ma_rewards:
ma_rewards.append(ma_rewards[-1]*0.9+ep_reward*0.1)
else:
ma_rewards.append(ep_reward)
```
* 103页图3.37上面一段:具体可以查看 GitHub 上的源码 → 具体可以查看本书配套代码
* 140页6.1节上面添加以下文字:
    深度 Q 网络算法的核心是维护 Q 函数并使用其进行决策。$Q_{\pi}(s,a)$ 为在该策略 $\pi$ 下的动作价值函数,每次到达一个状态 $s_t$ 之后,遍历整个动作空间,使用让 $Q_{\pi}(s,a)$ 最大的动作作为策略:
$$
a_{t}=\underset{a}{\arg \max } ~Q_{\pi}\left(s_{t}, a\right) \tag{6.2}
$$
    深度 Q 网络采用贝尔曼方程来迭代更新 $Q_{\pi}(s,a)$
$$
Q_{\pi}\left(s_{t}, a_{t}\right) \leftarrow Q_{\pi}\left(s_{t}, a_{t}\right)+\alpha\left(r_{t}+\gamma \max _{a} Q_{\pi}\left(s_{t+1}, a\right)-Q_{\pi}\left(s_{t}, a_{t}\right)\right) \tag{6.3}
$$
    通常在简单任务上使用全连接神经网络fully connected neural network来拟合 $Q_{\pi}$,但是在较为复杂的任务上(如玩雅达利游戏),会使用卷积神经网络来拟合从图像到价值函数的映射。由于深度 Q 网络的这种表达形式只能处理有限个动作值,因此其通常用于处理离散动作空间的任务。
* 140页后的公式编号需要进行更新。
* 149页式(6.15) 改为
$$
\begin{aligned}
V^{\pi}(s) &\le Q^{\pi}(s,\pi'(s)) \\
&=E\left[r_{t}+V^{\pi}\left(s_{t+1}\right) | s_{t}=s, a_{t}=\pi^{\prime}\left(s_{t}\right)\right]\\
&\le E\left[r_{t}+Q^{\pi}\left(s_{t+1}, \pi^{\prime}\left(s_{t+1}\right)\right) | s_{t}=s, a_{t}=\pi^{\prime}\left(s_{t}\right)\right] \\
&=E\left[r_{t}+r_{t+1}+V^{\pi}\left(s_{t+2}\right) |s_{t}=s, a_{t}=\pi^{\prime}\left(s_{t}\right)\right] \\
& \le E\left[r_{t}+r_{t+1}+Q^{\pi}\left(s_{t+2},\pi'(s_{t+2}\right) | s_{t}=s, a_{t}=\pi^{\prime}\left(s_{t}\right)\right] \\
& = E\left[r_{t}+r_{t+1}+r_{t+2}+V^{\pi}\left(s_{t+3}\right) |s_{t}=s, a_{t}=\pi^{\prime}\left(s_{t}\right)\right] \\
& \le \cdots\\
& \le E\left[r_{t}+r_{t+1}+r_{t+2}+\cdots | s_{t}=s, a_{t}=\pi^{\prime}\left(s_{t}\right)\right] \\
& = V^{\pi'}(s)
\end{aligned}
$$
* 176页第1行全连接网络 → 全连接神经网络
* 176页第1行下面的代码块初始化 Q 网络,为全连接网络 → 初始化 Q 网络为全连接神经网络
* 190页9.5节第2段的第3行也是不好实现的。我们可以实现优势演员-评论员算法就可以。 → 不好实现异步优势演员-评论员算法,但可以实现优势演员-评论员算法。
* 191页第4和第5行要用梯度去更新参数......就把梯度传 → 要用梯度去更新全局网络的参数。每个进程算出梯度以后,要把梯度传
* 191页图9.6的上面一段的倒数第1行变成 $\theta_2$了 → 变成$\theta_2$ 了(其他进程也会更新模型)
* 191页图9.6的上面一段的末尾添加文字虽然A3C看起来属于异策略算法但它其实是一种同策略算法。因为A3C的演员和评论员只使用当前策略采样的数据来计算梯度。因此A3C不存储历史数据其主要通过平行探索parallel exploration来保持训练的稳定性。
* 191页图9.6替换成下图:
![](res/A3C.png ':size=450')
* 191页图9.6加参考文献Arthur Juliani的文章“Simple Reinforcement Learning with Tensorflow Part 8: Asynchronous Actor-Critic Agents (A3C)”
* 200页第6行它的目标是要让每一场表演都获得观众尽可能多的欢呼声与掌声也就是要最大化未来的总奖励 → 评论员的最终目标是让演员的表演获得观众尽可能多的欢呼声和掌声,从而最大化未来的总收益
* 201页图10.7的上面一段的倒数第1行均方差 → 均方误差mean squared errorMSE
* 201页图10.7的下面一段的第3行之间的一个均方差 → 之间的均方误差
* 203页式(10.1)上面一段的第2行均方差 → 均方误差
* 229页第2行很强的序列 → 很长的序列
* 242页13.4.3节上面一段的第1行均方差损失 → 均方误差损失