深度强化学习课程文档

引入截断替代目标函数

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

引入截断替代目标函数

回顾:策略目标函数

我们来回顾一下强化学习中要优化的目标是什么

Reinforce

其思想是,通过对这个函数进行梯度上升步骤(相当于对这个函数的负值进行梯度下降),我们将**推动我们的智能体采取能带来更高奖励的行动,并避免有害的行动。**

然而,问题出在步长上

  • 太小,**训练过程太慢**
  • 太高,**训练中变异性太大**

对于 PPO,其思想是使用一个称为*截断替代目标函数*的新目标函数来约束我们的策略更新,该函数将**使用一个截断限制策略变化的范围。**

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

PPO surrogate function

让我们研究一下每个部分,以了解它是如何工作的。

比率函数

Ratio

该比率计算如下

Ratio

这是采取行动的概率at a_t 在状态st s_t 在当前策略中,除以旧策略的相同值。

正如我们所见,rt(θ) r_t(\theta) 表示当前策略与旧策略之间的概率比

  • 如果rt(θ)>1 r_t(\theta) > 1 ,则**动作at a_t 在状态st s_t 在当前策略中比在旧策略中更有可能。**
  • 如果rt(θ) r_t(\theta) 在 0 和 1 之间,**当前策略的动作比旧策略的动作可能性小**。

因此,这个概率比是**估计旧策略和当前策略之间差异的简单方法。**

截断替代目标函数的未截断部分

PPO

该比率**可以替代我们在策略目标函数中使用的对数概率**。这为我们提供了新目标函数的左半部分:将比率乘以优势。

PPO
近端策略优化算法

然而,如果没有约束,如果所采取的行动在当前策略中比在旧策略中更有可能,**这将导致显著的策略梯度步长**,从而导致**过度的策略更新。**

截断替代目标函数的截断部分

PPO

因此,我们需要通过惩罚导致比率远离 1 的变化来约束这个目标函数(在论文中,比率只能在 0.8 到 1.2 之间变化)。

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

为此,我们有两种解决方案

  • TRPO(信任区域策略优化)在目标函数之外使用 KL 散度约束来约束策略更新。但这种方法**实现复杂且计算时间较长。**
  • PPO 通过**截断替代目标函数**直接在目标函数中截断概率比。
PPO

这个截断部分是一个版本,其中rt(θ) r_t(\theta) 被截断在[1ϵ,1+ϵ] [1 - \epsilon, 1 + \epsilon] .

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

然后,我们取截断目标和未截断目标的最小值,**因此最终目标是未截断目标的下界(悲观界)。**

取截断目标和未截断目标的最小值意味着**我们将根据比率和优势情况选择截断目标或未截断目标**。

< > 在 GitHub 上更新