Description
-
notebooks/algos文件夹下DQN和DQN进阶算法的代码中,class Policy的update()函数定义中注释有错别字:
“ # 从经验回放中随机采样一个批量的呀恶女本”,应该是“样本”。在多个DQN算法代码中都有这个问题,建议几个文件都检查一下。 -
docs/ch8/main.md中“8.2 Dueling DQN 算法”部分,”如图
$\text{8-2}$ 所示,一个是优势层($\text{advantage layer}$),用于估计每个动作带来的优势,输出维度为动作数一个是价值层($\text{value layer}$),用于估计每个状态的价值,输出维度为$1$ 。“这句中在“输出维度为动作数”与“一个是价值层”之间少一个分号或者逗号 -
“8.2 Dueling DQN 算法”部分,“去掉这里的价值层即优势层就是普通的
$Q$ 网络了”,这句在文中的语境应该是“价值层及优势层”,可能是错别字 -
“8.4 PER DQN 算法”部分中,“每个叶节点的值就是对应样本的
$\text{TD}$ 误差(例如途中的)。”,应该是“例如图中的” -
“9.2 策略梯度算法”部分,“要计算该轨迹产生的概率,我们可以拆分一下在这条轨迹产生的过程中出现了那些概率事件,首先是环境初始化产生状态
$s_0$ ,接着是智能体采取动作$a_0$ ,然后环境转移到状态$s_1$ ,即整个过程有三个概率事件,那么根据条件概率的乘法公式,该轨迹出现的概率应该为 环境初始化产生状态$s_0$ 的概率$p(s_0)$ 乘以智能体采取动作$a_0$ 的概率$\pi_{\theta}(a_0|s_0)$ 乘以环境转移到状态$s_1$ 的概率$p(s_1|s_0,a_0)$ ,即$P_{\theta}(\tau_0) = \pi_{\theta}(a_0|s_0)p(s_1|s_0,a_0)$ 。依此类推,对于任意轨迹$\tau$ ,其产生的概率如式$\text(9.2)$ 所示。”,这一段中公式有误,少乘了$p(s_0)$,应改为$P_{\theta}(\tau_0) = p(s_0)\pi_{\theta}(a_0|s_0)p(s_1|s_0,a_0)$ -
“9.4.1 平稳分布”中,“同理,第二代人的比例也可以求出,即
$\pi_2 = \pi_1 P = \pi_0 P^2$ ,依次类推,第n代人的比例为$\pi_n = \pi_0 P^n$。既然这本书同时也是教大家如何代码实战的,这里我们$\text{Python}$ 代码来求出前$10$ 代人的比例,如代码清单$\text{9-1}$ 所示。”。前文中提到pi_0是第一代,在这段中,pi_2应该是第三代人,pi_n应该是第n+1代。文中“代码清单9-1”代码也是这个问题 -
"10.3 DDPG 算法的优缺点"部分,"适用于连续动作空间"这一段中,“因为它不需要进行动作采样,h缓解了在连续动作空间中的高方差问题”这句有误,多了个'h'
-
“10.4 TD3 算法”部分,第一段中,“三是 躁声正则”有误,应该是噪声
-
“10.4.3 躁声正则”节标题有误