update ch5

This commit is contained in:
qiwang067
2022-09-17 11:31:43 +08:00
parent 5144cb325d
commit 6000fa031e

View File

@@ -129,7 +129,7 @@ $$
我们可以通过重要性采样把同策略换成异策略,但重要性采样有一个问题:如果 $p_{\theta}\left(a_{t} | s_{t}\right)$ 与 $p_{\theta'}\left(a_{t} | s_{t}\right)$ 相差太多,即这两个分布相差太多,重要性采样的结果就会不好。 我们可以通过重要性采样把同策略换成异策略,但重要性采样有一个问题:如果 $p_{\theta}\left(a_{t} | s_{t}\right)$ 与 $p_{\theta'}\left(a_{t} | s_{t}\right)$ 相差太多,即这两个分布相差太多,重要性采样的结果就会不好。
怎么避免它们相差太多呢这就是PPO要做的事情。 怎么避免它们相差太多呢这就是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} \begin{aligned}