8.3_裁剪替代目标函数简介

回顾:策略目标函数

让我们回忆一下什么是强化学习中的目标优化:
Reinforce

这个想法是,通过在此函数上采取梯度上升这一步(相当于将该函数负向梯度下降),我们推动我们的智能体采取动作,从而导致更高的奖励并避免有害动作。

但是,问题在步长上:

在PPO中,我们的想法是使用一个名为裁剪替代目标函数的新目标函数来约束我们的策略更新,这将使用一个裁剪(clip)将策略变化约束在一个小范围内。

这个新的函数旨在避免破坏性的大权重更新

PPO surrogate function

让我们学习其每一个部分并去理解他的运行原理。

比率函数

Ratio

这个比率的计算方式如下:

Ratio

它是当前策略在状态 \( s_t \) 下选择动作 \( a_t \) 的概率与先前策略在相同状态下选择动作的概率之比。

正如我们所看到的,\( r_t(\theta) \) 表示当前策略和旧策略之间的概率比率:

所以概率比率是一个非常简单的方式去估计当下策略与旧策略的不同。

裁剪替代目标函数中的未裁剪部分

PPO

这个比率**可以替代我们在策略目标函数中的概率对数。**这给了我们新目标函数的剩下部分:将比率乘以优势。

PPO
近端优先策略优化算法

然而,如果没有约束条件,如果我们当前策略下选择的动作在概率上比旧策略更可能,这将导致一个重要的策略梯度步骤,从而导致过度的策略更新。

裁剪替代目标函数的裁剪部分

PPO

因此,我们需要通过惩罚那些导致比率偏离 1 的变化来限制这个目标函数(在论文中,比率只能从 0.8 到 1.2 变化)。

通过裁剪比率,我们确保策略更新不会太大,因为当前策略不能与旧策略相差太大。

为了做到这一点,我们有两个解决方案:

PPO

这个裁剪部分是 rt(theta) 在 \( [1 - \epsilon, 1 + \epsilon] \) 范围内被裁剪的版本。

使用裁剪替代目标函数,我们有两个概率比率,一个非裁剪的,一个在范围内裁剪的(在 \( [1 - \epsilon, 1 + \epsilon] \)之间,epsilon 是一个超参数,帮助我们定义这个裁剪范围(在论文中 \( \epsilon = 0.2 \))。

然后,我们取裁剪和非裁剪目标的最小值,因此最终目标是非裁剪目标的一个下限(悲观下限)。

取裁剪和非裁剪目标的最小值意味着我们将根据比率和优势情况选择裁剪或非裁剪目标。