diff --git a/docs/chapter5/chapter5.md b/docs/chapter5/chapter5.md index ada02d9..f63e35d 100644 --- a/docs/chapter5/chapter5.md +++ b/docs/chapter5/chapter5.md @@ -129,7 +129,7 @@ $$ 我们可以通过重要性采样把同策略换成异策略,但重要性采样有一个问题:如果 $p_{\theta}\left(a_{t} | s_{t}\right)$ 与 $p_{\theta'}\left(a_{t} | s_{t}\right)$ 相差太多,即这两个分布相差太多,重要性采样的结果就会不好。 怎么避免它们相差太多呢?这就是PPO要做的事情。 -\textbf{注意,由于在 PPO 中 $\theta'$ 是 $\theta_{\text{old}}$,即行为策略也是 $\pi_{\theta}$,因此 PPO 是同策略的算法。}如式(5.6)所示,PPO 实际上做的事情就是这样,在异策略的方法里优化目标函数 $J^{\theta^{\prime}}(\theta)$。但是这个目标函数又牵涉到重要性采样。在做重要性采样的时候,$p_{\theta}\left(a_{t} | s_{t}\right)$ 不能与 $p_{\theta'}\left(a_{t} | s_{t}\right)$相差太多。做示范的模型不能与真正的模型相差太多,相差太多,重要性采样的结果就会不好。我们在训练的时候,应多加一个约束(constrain)。这个约束是 $\theta$ 与 $\theta'$ 输出的动作的 KL 散度(KL divergence),这一项用于衡量 $\theta$ 与 $\theta'$ 的相似程度。我们希望在训练的过程中,学习出的 $\theta$ 与 $\theta'$ 越相似越好。因为如果 $\theta$ 与 $\theta'$ 不相似,最后的结果就会不好。所以在 PPO 里面有两项:一项是优化本来要优化的$J^{\theta^{\prime}}(\theta)$,另一项是一个约束。这个约束就好像正则化(regularization)的项(term) 一样,它所做的就是希望最后学习出的 $\theta$ 与 $\theta'$ 相差不大。 +**注意,由于在 PPO 中 $\theta'$ 是 $\theta_{\text{old}}$,即行为策略也是 $\pi_{\theta}$,因此 PPO 是同策略的算法。** 如式(5.6)所示,PPO 实际上做的事情就是这样,在异策略的方法里优化目标函数 $J^{\theta^{\prime}}(\theta)$。但是这个目标函数又牵涉到重要性采样。在做重要性采样的时候,$p_{\theta}\left(a_{t} | s_{t}\right)$ 不能与 $p_{\theta'}\left(a_{t} | s_{t}\right)$相差太多。做示范的模型不能与真正的模型相差太多,相差太多,重要性采样的结果就会不好。我们在训练的时候,应多加一个约束(constrain)。这个约束是 $\theta$ 与 $\theta'$ 输出的动作的 KL 散度(KL divergence),这一项用于衡量 $\theta$ 与 $\theta'$ 的相似程度。我们希望在训练的过程中,学习出的 $\theta$ 与 $\theta'$ 越相似越好。因为如果 $\theta$ 与 $\theta'$ 不相似,最后的结果就会不好。所以在 PPO 里面有两项:一项是优化本来要优化的$J^{\theta^{\prime}}(\theta)$,另一项是一个约束。这个约束就好像正则化(regularization)的项(term) 一样,它所做的就是希望最后学习出的 $\theta$ 与 $\theta'$ 相差不大。 $$ \begin{aligned}