diff --git a/docs/README.md b/docs/README.md
index 62ce261..5f48f7b 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -16,6 +16,24 @@
购买链接:[京东](https://item.jd.com/13075567.html) | [当当](http://product.dangdang.com/29374163.html)
+
+
+
+
+
+
+ 京东扫码购买
+ |
+
+ 
+ 当当扫码购买
+ |
+
+
+
+
+
+
勘误修订表:https://datawhalechina.github.io/easy-rl/#/errata
## 在线阅读(内容实时更新)
@@ -26,9 +44,9 @@
地址:https://github.com/datawhalechina/easy-rl/releases
-国内地址(推荐国内读者使用):https://pan.baidu.com/s/1y6WLaLM5ChMhK1zZ9RoceQ 提取码: tyxb
+国内地址(推荐国内读者使用):https://pan.baidu.com/s/1AqdaaGWmMTBWRaYsO2h9Dw 提取码: ffuu
-压缩版(推荐网速较差的读者使用,文件小,图片分辨率较低):https://pan.baidu.com/s/1DM84K1ckN16jwHU3-3oxGw 提取码: an48
+压缩版(推荐网速较差的读者使用,文件小,图片分辨率较低):https://pan.baidu.com/s/1aAZ5pDj2LJ2Q2OjXU2Pi3g 提取码: s3yj
## 纸质版和PDF版的区别
@@ -65,22 +83,23 @@ PDF版本是全书初稿,人民邮电出版社的编辑老师们对初稿进

Qi Wang
- 教程设计(第1~12章) 中国科学院大学
+ 教程设计(第1~12章) 中国科学院大学硕士
|

Yiyuan Yang
- 习题设计&第13章 清华大学
+ 习题设计&第13章 清华大学硕士
|

John Jim
- 算法实战 北京大学
+ 算法实战 北京大学硕士
|
+
## 引用信息
```
diff --git a/docs/chapter2/chapter2.md b/docs/chapter2/chapter2.md
index 18706b9..fc4b065 100644
--- a/docs/chapter2/chapter2.md
+++ b/docs/chapter2/chapter2.md
@@ -347,7 +347,7 @@ $$
这里我们另外引入了一个 `Q 函数(Q-function)`。Q 函数也被称为 `action-value function`。**Q 函数定义的是在某一个状态采取某一个动作,它有可能得到的这个 return 的一个期望**,如式 (4) 所示:
$$
-q^{\pi}(s, a)=\mathbb{E}_{\pi}\left[G_{t} \mid s_{t}=s, A_{t}=a\right] \tag{4}
+q^{\pi}(s, a)=\mathbb{E}_{\pi}\left[G_{t} \mid s_{t}=s, a_{t}=a\right] \tag{4}
$$
这里期望其实也是 over policy function。所以你需要对这个 policy function 进行一个加和,然后得到它的这个价值。
**对 Q 函数中的动作函数进行加和,就可以得到价值函数**,如式 (5) 所示:
@@ -380,7 +380,7 @@ v^{\pi}(s)=E_{\pi}\left[R_{t+1}+\gamma v^{\pi}\left(s_{t+1}\right) \mid s_{t}=s\
$$
对于 Q 函数,我们也可以做类似的分解,也可以得到 Q 函数的 Bellman Expectation Equation,如式 (7) 所示:
$$
-q^{\pi}(s, a)=E_{\pi}\left[R_{t+1}+\gamma q^{\pi}\left(s_{t+1}, A_{t+1}\right) \mid s_{t}=s, A_{t}=a\right] \tag{7}
+q^{\pi}(s, a)=E_{\pi}\left[R_{t+1}+\gamma q^{\pi}\left(s_{t+1}, a_{t+1}\right) \mid s_{t}=s, a_{t}=a\right] \tag{7}
$$
**Bellman expectation equation 定义了你当前状态跟未来状态之间的一个关联。**
diff --git a/docs/chapter3/chapter3.md b/docs/chapter3/chapter3.md
index a5d7e00..8be9142 100644
--- a/docs/chapter3/chapter3.md
+++ b/docs/chapter3/chapter3.md
@@ -1,14 +1,12 @@
# 第 3 章表格型方法
-本章我们通过最简单的**表格型方法(tabular method)**来讲解如何使用基于价值的方法求解强化学习问题。
+策略最简单的表示是查找表(look-up table),即表格型策略(tabular policy)。使用查找表的强化学习方法称为**表格型方法(tabular method)**,如蒙特卡洛、Q学习和Sarsa。本章通过最简单的表格型方法来讲解如何使用基于价值的方法求解强化学习问题。
## 3.1 马尔可夫决策过程
-强化学习是一个与时间相关的序列决策的问题。
-例如,如图 3.1 所示,在 $t-1$ 时刻,我看到熊对我招手,下意识的动作就是逃跑。熊看到有人逃跑,就可能觉得发现了猎物,并开始发动攻击。而在 $t$ 时刻,我如果选择装死的动作,可能熊咬咬我、摔几下就觉得挺无趣的,可能会走开。这个时候我再逃跑,可能就成功了,这就是一个序列决策过程。
+强化学习是一个与时间相关的序列决策的问题。例如,如图 3.1 所示,在 $t-1$ 时刻,我看到熊对我招手,下意识的动作就是逃跑。熊看到有人逃跑,就可能觉得发现了猎物,并开始发动攻击。而在 $t$ 时刻,我如果选择装死的动作,可能熊咬咬我、摔几下就觉得挺无趣的,可能会走开。这个时候我再逃跑,可能就成功了,这就是一个序列决策过程。
-在输出每一个动作之前,我们可以选择不同的动作。比如在 $t$ 时刻,我选择逃跑的时候,可能熊已经追上来了。如果在 $t$ 时刻,我没有选择装死,而是选择逃跑,这个时候熊已经追上来了,那么我就会转移到不同的状态。有一定的概率我会逃跑成功,也有一定的概率我会逃跑失败。我们用状态转移概率 $p\left[s_{t+1}, r_{t} \mid s_{t}, a_{t}\right]$ 来表示在状态 $s_t$ 选择动作 $a_t$ 的时候,转移到转态 $s_{t+1}$ ,而且得到奖励 $r_t$ 的概率是多少。状态转移概率是具有**马尔可夫性质**的(系统下一时刻的状态仅由当前时刻的状态决定,不依赖于以往任何状态)。因为在这个过程中,下一时刻的状态取决于当前的状态 $s_t$,它和之前的 $s_{t-1}$ 和 $s_{t-2}$ 没有关系。再加上这个过程也取决于智能体与环境交互的 $a_t$ ,所以包含了决策的过程,我们称这样的过程为马尔可夫决策过程。
-马尔可夫决策过程就是序列决策的经典的表现方式。马尔可夫决策过程也是强化学习里面一个非常基本的学习框架。状态、动作、状态转移概率和奖励 $(S$、$A$、$P$、$R)$,这4个合集就构成了强化学习马尔可夫决策过程的四元组,后面也可能会再加上折扣因子构成五元组。
+在输出每一个动作之前,我们可以选择不同的动作。比如在 $t$ 时刻,我选择逃跑的时候,可能熊已经追上来了。如果在 $t$ 时刻,我没有选择装死,而是选择逃跑,这个时候熊已经追上来了,那么我就会转移到不同的状态。有一定的概率我会逃跑成功,也有一定的概率我会逃跑失败。我们用状态转移概率 $p\left[s_{t+1}, r_{t} \mid s_{t}, a_{t}\right]$ 来表示在状态 $s_t$ 选择动作 $a_t$ 的时候,转移到转态 $s_{t+1}$ ,而且得到奖励 $r_t$ 的概率是多少。状态转移概率是具有**马尔可夫性质**的(系统下一时刻的状态仅由当前时刻的状态决定,不依赖于以往任何状态)。因为在这个过程中,下一时刻的状态取决于当前的状态 $s_t$,它和之前的 $s_{t-1}$ 和 $s_{t-2}$ 没有关系。再加上这个过程也取决于智能体与环境交互的 $a_t$ ,所以包含了决策的过程,我们称这样的过程为马尔可夫决策过程。马尔可夫决策过程就是序列决策的经典的表现方式。马尔可夫决策过程也是强化学习里面一个非常基本的学习框架。状态、动作、状态转移概率和奖励 $(S$、$A$、$P$、$R)$,这4个合集就构成了强化学习马尔可夫决策过程的四元组,后面也可能会再加上折扣因子构成五元组。
@@ -153,8 +151,7 @@ $$
V_{\pi}(s)=\mathbb{E}_{\tau \sim \pi}\left[G_{t} \mid s_{t}=s\right]
$$
-蒙特卡洛仿真是指我们可以采样大量的轨迹,计算所有轨迹的真实回报,然后计算平均值。
-蒙特卡洛方法使用经验平均回报(empirical mean return)的方法来估计,它不需要马尔可夫决策过程的状态转移函数和奖励函数,并且不需要像动态规划那样用自举的方法。此外,蒙特卡洛方法有一定的局限性,它只能用在有终止的马尔可夫决策过程中。
+蒙特卡洛仿真是指我们可以采样大量的轨迹,计算所有轨迹的真实回报,然后计算平均值。蒙特卡洛方法使用经验平均回报(empirical mean return)的方法来估计,它不需要马尔可夫决策过程的状态转移函数和奖励函数,并且不需要像动态规划那样用自举的方法。此外,蒙特卡洛方法有一定的局限性,它只能用在有终止的马尔可夫决策过程中。
接下来,我们对蒙特卡洛方法进行总结。为了得到评估 $V(s)$,我们采取了如下的步骤。
@@ -200,9 +197,7 @@ $$
$$
其中,$\alpha$ 代表更新的速率,我们可以对其进行设置。
-我们再来看一下动态规划方法和蒙特卡洛方法的差异。
-动态规划也是常用的估计价值函数的方法。在动态规划方法里面,我们使用了自举的思想。自举就是我们基于之前估计的量来估计一个量。
-此外,动态规划方法使用贝尔曼期望备份(Bellman expectation backup),通过上一时刻的值 $V_{i-1}(s')$ 来更新当前时刻的值 $V_i(s)$ ,即
+我们再来看一下动态规划方法和蒙特卡洛方法的差异。动态规划也是常用的估计价值函数的方法。在动态规划方法里面,我们使用了自举的思想。自举就是我们基于之前估计的量来估计一个量。此外,动态规划方法使用贝尔曼期望备份(Bellman expectation backup),通过上一时刻的值 $V_{i-1}(s')$ 来更新当前时刻的值 $V_i(s)$ ,即
$$
V_{i}(s) \leftarrow \sum_{a \in A} \pi(a \mid s)\left(R(s, a)+\gamma \sum_{s^{\prime} \in S} P\left(s^{\prime} \mid s, a\right) V_{i-1}\left(s^{\prime}\right)\right)
diff --git a/docs/errata.md b/docs/errata.md
index cadabdc..0afe22c 100644
--- a/docs/errata.md
+++ b/docs/errata.md
@@ -2,7 +2,16 @@
**如何使用勘误?首先找到你的书的印次,接下来对着下表索引印次,该印次之后所有的勘误都是你的书中所要注意的勘误,印次前的所有勘误在当印次和之后印次均已印刷修正。为方便读者,所有修订内容都列举在此。其中部分修订是为了更便于读者理解,并非原文有误。**
+## 第1版第3次印刷(2022.07)
+* 前勒口作者简介:
+ * 王琦:中国科学院大学硕士在读 → 中国科学院大学硕士
+ * 杨毅远:清华大学硕士在读 → 清华大学硕士
+ * 江季:北京大学硕士在读 → 北京大学硕士
+* 134页,式(5.16)下面一段第2行:最大化式 (5.16) → 最大化式 (5.15)
+
+
## 第1版第2次印刷(2022.06)
+
* 1页,图1.1删除参考文献:SUTTON R S, BARTO A G. Reinforcement learning: An introduction (second edition)[M]. London: The MIT Press, 2018
* 7页的图1.9和8页的图1.10加参考文献:Sergey Levine的课程“Deep Reinforcement Learning”
* 19页,图1.19删除参考文献:David Silver 的课程“UCL Course on RL”
diff --git a/docs/res/qrcode_dangdang.png b/docs/res/qrcode_dangdang.png
new file mode 100644
index 0000000..15db672
Binary files /dev/null and b/docs/res/qrcode_dangdang.png differ
diff --git a/docs/res/qrcode_jingdong.png b/docs/res/qrcode_jingdong.png
new file mode 100644
index 0000000..6be018d
Binary files /dev/null and b/docs/res/qrcode_jingdong.png differ