深度强化学习课程文档

可视化剪裁代理目标函数

Hugging Face's logo
加入 Hugging Face 社区

并获得增强文档体验的访问权限

开始使用

可视化剪裁代理目标函数

不用担心。如果现在处理起来很复杂是正常的。但我们将看看这个剪裁代理目标函数的样子,这将有助于您更好地可视化正在发生的事情。

PPO
来自 Daniel Bick 的“Towards Delivering a Coherent Self-Contained Explanation of Proximal Policy Optimization”的表格

我们有六种不同的情况。首先要记住的是,我们取剪裁和未剪裁目标之间的最小值。

情况 1 和 2:比率在范围内

在情况 1 和 2 中,剪裁不适用,因为比率在范围内[1ϵ,1+ϵ] [1 - \epsilon, 1 + \epsilon]

在情况 1 中,我们有一个正优势:动作比该状态下所有动作的平均值更好。因此,我们应该鼓励当前策略增加在该状态下采取该动作的概率。

由于比率在区间内,我们可以增加策略在该状态下采取该动作的概率

在情况 2 中,我们有一个负优势:动作比该状态下所有动作的平均值更差。因此,我们应该阻止当前策略在该状态下采取该动作。

由于比率在区间内,我们可以降低策略在该状态下采取该动作的概率

情况 3 和 4:比率低于范围

PPO
来自 Daniel Bick 的“Towards Delivering a Coherent Self-Contained Explanation of Proximal Policy Optimization”的表格

如果概率比率低于[1ϵ] [1 - \epsilon] ,则在该状态下采取该动作的概率比旧策略低得多。

如果,像情况 3 一样,优势估计是正的 (A>0),那么您希望增加在该状态下采取该动作的概率

但是,如果,像情况 4 一样,优势估计是负的,我们不想进一步降低在该状态下采取该动作的概率。因此,梯度 = 0(因为我们位于一条平坦线上),所以我们不会更新权重。

情况 5 和 6:比率高于范围

PPO
来自 Daniel Bick 的“Towards Delivering a Coherent Self-Contained Explanation of Proximal Policy Optimization”的表格

如果概率比率高于[1+ϵ] [1 + \epsilon] ,则当前策略在该状态下采取该动作的概率比以前策略的概率高得多

如果,像情况 5 一样,优势是正的,我们不想贪得无厌。我们已经比以前策略具有更高的概率在该状态下采取该动作。因此,梯度 = 0(因为我们位于一条平坦线上),所以我们不会更新权重。

如果,像情况 6 一样,优势是负的,我们希望降低在该状态下采取该动作的概率。

所以,回顾一下,我们只使用未剪裁目标部分来更新策略。当最小值为剪裁目标部分时,我们不会更新策略权重,因为梯度将等于 0。

因此,我们只在以下情况下更新策略:

  • 我们的比率在范围内[1ϵ,1+ϵ] [1 - \epsilon, 1 + \epsilon]
  • 我们的比率超出了范围,但优势会导致更接近范围
    • 低于比率,但优势 > 0
    • 高于比率,但优势 < 0

您可能想知道,当最小值为剪裁比率时,为什么梯度为 0。当比率被剪裁时,在这种情况下,导数将不是rt(θ)At r_t(\theta) * A_t 但无论是(1ϵ)At (1 - \epsilon)* A_t还是(1+ϵ)At (1 + \epsilon)* A_t的导数都等于 0。

总而言之,由于这种裁剪的代理目标,我们限制了当前策略与旧策略之间变化范围。 因为我们消除了概率比偏离区间之外的动机,因为裁剪强制梯度为零。如果比值大于1+ϵ 1 + \epsilon 或小于1ϵ 1 - \epsilon 梯度将等于 0。

PPO Actor-Critic 样式的最终裁剪代理目标损失如下所示,它是裁剪代理目标函数、价值损失函数和熵奖励的组合

PPO objective

这相当复杂。花点时间通过查看表格和图表来理解这些情况。你必须理解为什么这样做是合理的。 如果你想深入了解,最好的资源是文章 “Towards Delivering a Coherent Self-Contained Explanation of Proximal Policy Optimization” by Daniel Bick, especially part 3.4

< > 在 GitHub 上更新