返回介绍

数学基础

统计学习

深度学习

工具

Scala

1.2 PPO

发布于 2023-07-17 23:38:23 字数 55425 浏览 0 评论 0 收藏 0

1.2.1 Clipped Surrogate Objective

  1. rt(θ)$ r_t(\theta) $ 为 probability ratio

    (13)rt(θ)=πθ(atst)ππold(atst)

    则有r(θold)=1$ r(\theta_\text{old}) = 1 $ 。

    因此 TRPO 最大化一个 surrogate objective

    (14)LCPI(θ)=E^t[πθ(atst)πθold(atst)A^t]=E^t[rt(θ)A^t]

    上标 CPI 指的是保守的策略迭代 conservative policy iteration: CPI《Approximately optimal approximate reinforcement learning》)。

  2. 如果没有约束,最大化LCPI(θ)$ \mathcal L^\text{CPI}(\theta) $ 会导致过度的 large policy update 。因此,我们现在考虑如何修改目标从而惩罚那些使rt(θ)$ r_t (\theta) $ 远离 1 的策略更新。我们提出的主要目标函数为:

    (15)r~t(θ)=clip(rt(θ),1ϵ,1+ϵ)LCLIP(θ)=E^t[min(rt(θ)A^t,r~t(θ)A^t)]

    其中ϵ$ \epsilon $ 为一个超参数,如ϵ=0.2$ \epsilon = 0.2 $ 。

    这个目标函数的动机如下。min 函数内的第一个项是LCPI(θ)$ \mathcal L^\text{CPI}(\theta) $ ,第二项是clip(rt(θ),1ϵ,1+ϵ)A^t$ \text{clip}\left(r_t(\theta), 1-\epsilon, 1+\epsilon\right)\hat A_t $ 。因此,通过裁剪 probability ratio 从而修改 surrogate objectiveLCLIP(θ)$ \text{L}^\text{CLIP}(\theta) $ 消除了将rt(θ)$ r_t(\theta) $ 移出区间[1ϵ,1+ϵ]$ [1-\epsilon, 1+\epsilon] $ 的动机。最后,我们取 clipped objectiveunclipped objective 的最小值,所以最终的目标函数是 unclipped objective 的下限(即,悲观的下界)。

    注意:

    • θ$ \theta $ 在θold$ \theta_\text{old} $ 附近的一阶展开时(其中rt(θ)=1$ r_t(\theta) = 1 $ ),LCLIP(θ)=LCPI(θ)$ \mathcal L^\text{CLIP}(\theta) = \mathcal L^\text{CPI}(\theta) $ 。
    • 然而,当θ$ \theta $ 远离θold$ \theta_\text{old} $ 时,LCLIP(θ)$ \mathcal L^\text{CLIP}(\theta) $ 和LCPI(θ)$ \mathcal L^\text{CPI}(\theta) $ 变得不同。

    下图描绘了LCLIP(θ)$ \mathcal L^\text{CLIP}(\theta) $ 中固定单个t$ t $ 值时,目标函数随着r$ r $ 的变化。注意 probability ratior$ r $ 被截断在1ϵ$ 1-\epsilon $ 或1+ϵ$ 1+\epsilon $ ,取决于 advantageA$ A $ (这里指的是 advantage function ,而不是 Action )是正还是负。

  3. 下图提供了关于 surrogate objectiveLCLIP(θ)$ \mathcal L^\text{CLIP}(\theta) $ 的另一个直观来源。它显示了当我们沿着策略更新方向插值时,几个目标是如何变化的,这是由 continuous control problem 上的 proximal policy optimization (我们很快将介绍的算法)得到的。我们可以看到,LCLIP(θ)$ \mathcal L^\text{CLIP}(\theta) $ 是LCPI(θ)$ \mathcal L^\text{CPI}(\theta) $ 的下限,针对策略更新过大带有惩罚。

1.2.2 Adaptive KL Penalty Coefficient

  1. 另一种方法,可以作为 clipped surrogate objective 的替代品,或者作为它的补充,是使用作用在 KL 散度上的惩罚,并调整惩罚系数从而使我们在每次策略更新时达到 KL 散度的某个目标值dtarg$ d_\text{targ} $ 。在我们的实验中,我们发现 KL 惩罚的表现比 clipped surrogate objective 更差。然而,我们在这里包括它,因为它是一个重要的 baseline

  2. 在这个算法的最简单的实现中,我们在每次策略更新中执行以下步骤:

    • 执行 minibatch SGD 若干个 epoch 从而优化 KL-penalized objective

      (16)LKLPEN(θ)=E^t[πθ(atst)πθold(atst)A^tβ×KL[πθold(st),πθ(st)]]
    • 计算d=E^t[KL[πθold(st),πθ(st)]]$ d = \hat{\mathbb E}_t\left[\text{KL}[\pi_{\theta_\text{old}}(\cdot\mid s_t),\pi_\theta(\cdot\mid s_t)]\right] $ :

      • 如果d<dtarg/1.5$ d\lt d_\text{targ}/1.5 $ ,则ββ/2$ \beta\leftarrow \beta/2 $ 。
      • 如果d>dtarg×1.5$ d\gt d_\text{targ}\times 1.5 $ ,则ββ×2$ \beta\leftarrow \beta\times 2 $ 。

    更新后的β$ \beta $ 值用于下一次策略更新。有了这个方案,我们偶尔会看到当 KL 散度与dtarg$ d_\text{targ} $ 明显不同时,策略发生更新。然而,策略更新是罕见的,因为β$ \beta $ 会迅速调整从而使得 KL 散度靠近dtarg$ d_\text{targ} $ 。

    上面的超参数 1.52 是启发式选择的,但该算法对它们并不十分敏感。β$ \beta $ 的初始值是另一个超参数,但在实践中并不重要,因为算法会迅速调整β$ \beta $ 。

1.2.3 PPO

  1. 前面几节的 surrogate loss 可以通过对典型的策略梯度进行的微小改变来计算和微分。对于使用自动微分的实现方式,我们只需构建损失LCLIP(θ)$ \mathcal L^\text{CLIP}(\theta) $ 或LKLPEN(θ)$ \mathcal L^\text{KLPEN}(\theta) $ 来代替LPG(θ)$ \mathcal L^\text{PG}(\theta) $ ,并对新的目标进行多步随机梯度上升。

    大多数用于方差缩减 variance-reducedadvantage-function estimators 的技术都使用了学到的状态价值函数 state-value functionV(s)$ V(s) $ ,例如,generalized advantage estimation《High-dimensional continuous control using generalized advantage estimation》)、或者 《Asynchronous methods for deep reinforcement learning》中的 inite-horizon estimators 。如果使用一个在策略函数和价值函数之间共享参数的神经网络架构,我们必须使用一个损失函数来结合 policy surrogatevalue function error 。这个目标函数可以通过增加熵奖励 entropy bonus 来进一步增强,从而确保充分的探索,正如过去的工作 《Asynchronous methods for deep reinforcement learning》《Simple statistical gradient-following algorithms for connectionist reinforcement learning》 所建议的。结合这些项,我们得到以下目标,它在每轮迭代中都被最大化(或被近似地最大化):

    (17)LtCLIP+VF+S(θ)=E^t[min(rt(θ)A^t,r~t(θ)A^t)LCLIPc1×(Vθ(st)Vttarg)2LVF+c2S[πθ](st)]

    这里有两个函数:策略函数πθ()$ \pi_\theta(\cdot) $ 、价值函数Vθ()$ V_\theta(\cdot) $ ,它们共享相同的神经网络架构,因此具有相同的参数θ$ \theta $ 。此外,Vttarg$ V_t^\text{targ} $ 是t$ t $ 时刻的目标价值(例如,来自于一个独立训练的价值网络)。

    其中:

    • c1,c2$ c_1,c_2 $ 都是作为系数的超参数。

    • 第一项对应于LCLIP$ \mathcal L^\text{CLIP} $ ,第二项对应于均方误差(作用于价值函数),第三项中S$ S $ 定义了 entropy bonus (鼓励πθ(s)$ \pi_\theta(\cdot\mid s) $ 的分布尽可能分散)。

      S[πθ](st)=aAπθ(ast)×logπθ(ast)$ S[\pi_\theta](s_t) = \sum_{a\in \mathcal A} -\pi_\theta(a\mid s_t)\times \log \pi_\theta(a\mid s_t) $ 。

  2. 有一种策略梯度的实现方式,在 《Asynchronous methods for deep reinforcement learning》 中得到了推广并且很适合用于 RNN网络:在T$ T $ 个时间步中执行策略(其中T$ T $ 远小于 episode 长度),并使用收集的样本进行更新,这个时间段被称作 trajectory segment 。这种方式需要一个 advantage estimator ,该estimator 不会查看超出时间步T$ T $ 的信息。 《Asynchronous methods for deep reinforcement learning》 中使用的 estimator 为:

    (18)A^t=V(st)+r˘t+γr˘t+1++γTt+1r˘T1+γTtV(sT)

    其中:r˘t$ \breve r_t $ 为t$ t $ 时刻的奖励;t$ t $ 指定了在给定的长度为T$ T $ 的 trajectory segment 中位于 [0, T] 之间的时间索引。

    γr˘t+1++γTt+1r˘T1+γTtV(sT)$ \gamma \breve r_{t+1} +\cdots+\gamma^{T-t+1}\breve r_{T-1} + \gamma^{T-t}V(s_T) $ 作为Q(st,at)$ Q(s_t,a_t) $ 的估计,可以理解为:t$ t $ 时刻的动作导致后续的一连串收益。

    推广这一选择,我们可以使用 generalized advantage estimation 的截断版本:

    (19)A^t=δt+(γλ)δt+1++(γλ)Tt+1δT1

    其中δt=r˘t+γV(st+1)V(st)$ \delta_t = \breve r_t + \gamma V(s_{t+1}) - V(s_t) $ 。

    λ=1$ \lambda=1 $ 时,这个generalized advantage estimation 就简化回原始的形式。

    一个使用固定长度 trajectory segment (长度为T$ T $ )的近似策略优化proximal policy optimization: PPO 算法如下所示。每次迭代,N$ N $ 个(并行的)actors 中的每一个都收集 T timesteps 的数据。然后,我们在这 NT timesteps 的数据上构建 surrogate loss ,并用 minibatch SGD (或者通常为了更好的性能,用 Adam)对其进行优化K$ K $ 个 epochs

  3. PPO Actor-Critic Style

    • 输入:

      • 初始的策略πθold$ \pi_{\theta_\text{old}} $ 。
      • 外层迭代次数O$ O $ ,actor 数量N$ N $ ,内层 trajectory segment 长度T$ T $ ,外层 minibatch sizeM$ M $ 。
    • 输出:更新后的策略πθ$ \pi_\theta $

    • 算法步骤:

      • 外层迭代:iteration=1,2,...O

        • 内层迭代:actor = 1,2,..., N

          在环境中执行策略πθold$ \pi_{\theta_\text{old}} $ ,指定 T timesteps

          计算 advantage estimatesA^1,,A^T$ \hat A_1,\cdots,\hat A_T $ 。

        关于θ$ \theta $ 优化 surrogate loss ,一共优化K$ K $ 个 epoch ,其中 minibatch sizeMNT$ M\le NT $ 。

        θoldθ$ \theta_\text{old}\leftarrow \theta $ 。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文