深度强化学习课程文档
Clipped Surrogate 目标函数简介
并获得增强的文档体验
开始使用
Clipped Surrogate 目标函数简介
回顾:策略目标函数
让我们回顾一下在 Reinforce 中要优化的目标

其思想是通过对这个函数执行梯度上升步骤(等同于对这个函数的负数执行梯度下降),我们将推动我们的智能体采取导致更高奖励的行动,并避免有害的行动。
然而,问题来自于步长
- 步长太小,训练过程太慢
- 步长太大,训练中的变异性太强
使用 PPO,其思想是通过一个新的目标函数(称为Clipped surrogate 目标函数)来约束我们的策略更新,这个函数将使用剪裁将策略更改限制在一个小范围内。
这个新函数旨在避免破坏性的大权重更新

让我们研究每个部分,以了解它是如何工作的。
比率函数

这个比率的计算方式如下

它是采取行动的概率在状态在当前策略中,除以之前策略中的相同值。
正如我们所见,表示当前策略和旧策略之间的概率比率
- 如果,则动作在状态在当前策略中比旧策略更可能发生。
- 如果介于 0 和 1 之间,该动作在当前策略中比旧策略更不可能发生。
因此,这个概率比率是估计旧策略和当前策略之间差异的简单方法。
Clipped Surrogate 目标函数中未剪裁的部分

这个比率可以替换我们在策略目标函数中使用的对数概率。这给了我们新目标函数的左侧部分:将比率乘以优势函数。

然而,如果没有约束,如果采取的动作在当前策略中比在之前的策略中更有可能,这将导致显着的策略梯度步长,因此,策略更新过度。
Clipped Surrogate 目标函数中剪裁的部分

因此,我们需要通过惩罚导致比率远离 1 的变化来约束这个目标函数(在论文中,比率只能在 0.8 到 1.2 之间变化)。
通过剪裁比率,我们确保我们不会有太大的策略更新,因为当前策略不能与旧策略相差太远。
为了做到这一点,我们有两种解决方案
- TRPO (Trust Region Policy Optimization) 在目标函数之外使用 KL 散度约束来约束策略更新。但是这种方法实现起来很复杂,并且需要更多的计算时间。
- PPO 使用其 Clipped surrogate 目标函数直接在目标函数中剪裁概率比率。

这个剪裁部分是一个版本,其中被剪裁在.
使用 Clipped Surrogate 目标函数,我们有两个概率比率,一个未剪裁,一个剪裁在之间的范围内,epsilon 是一个超参数,可以帮助我们定义这个剪裁范围(在论文中.).
然后,我们取剪裁目标和未剪裁目标的最小值,因此最终目标是未剪裁目标的下界(悲观界)。
取剪裁目标和未剪裁目标的最小值意味着我们将根据比率和优势情况选择剪裁目标或未剪裁目标。
< > 在 GitHub 上更新