深度强化学习课程文档

可视化截断替代目标函数

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 上更新