深度强化学习课程文档

可视化裁剪的替代目标函数

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

这相当复杂。花时间通过查看表格和图表来理解这些情况。你必须理解为什么这有道理。 如果你想更深入地了解,最好的资源是 Daniel Bick 的文章“Towards Delivering a Coherent Self-Contained Explanation of Proximal Policy Optimization”,特别是第 3.4 部分

< > 在 GitHub 上更新