介绍:

PPO:Proximal Policy Optimization Algorithms

在强化学习中,经常会面临梯度更新过大,导致训练不稳定,甚至崩溃的问题。为了解决该问题,诞生了TPRO(Trust Region Policy Optimization,TRPO)算法。

TPRO算法实现起来比较复杂,需要二阶优化,并且与包括噪声(诸如丢弃)或参数共享(在策略和值函数之间,或与辅助任务)的架构不兼容。针对这些问题,本论文提出了PPO算法。

TPRO:

        在常规的policy gradient方法中,我们用gradient asent方法来最大化目标函数:

\widehat{g}=\widehat{\mathbb{E}}[\nabla_\theta log\pi_\theta (a_t|s_t)\widehat{A}_t]

        其中\pi_\theta是一个随机的策略,\widehat{A}是在step t的优势函数。这个过程中,如果梯度变化太大,会直接导致训练崩溃。因此,我们将目标函数进行约束,避免其过度更新,就有了一个“代目标”函数:

        \theta_{old}是更新前的策略参数。这里我们需要在对目标进行线性近似和对约束(KL离散度)进行二阶近似和共轭梯度,实现起来更为复杂。

        如果将约束转换为惩罚,则其形式变为:

惩罚形式虽然从二次近似变成了一次近似,但是实验中表明其参数\beta需要动态调整才能保证约束。

PPO:

        让我们设定:

        则PTRO中的“代目标”函数就变为:

        CPI表示保守政策迭代(conservative policy iteration),在没有约束的情况下,我们最大化该“代目标”可能会引起策略参数更新过大,导致策略崩溃。因此,我们给出一个带惩罚的“代目标”:

  •         其中\epsilon是超惨,0.2是最为常见的一个值。
  •         clip(r_t(\theta),1-\epsilon,1+\epsilon)表示将r_t(\theta)限制在区间[1-\epsilon,1+\epsilon]内;

        该“代目标”函数起到的作用是:

  •         限制策略更新幅度:通过截断r_t(\theta),防止策略在一次更新中发生过大的变化。
  •         保留优化灵活性:当优势\widehat{A}为正时,允许r_t(\theta)增加,但不超过1+\epsilon ;当\widehat{A}为负时,允许r_t(\theta)减少,但不低于1-\epsilon 。
  •         提高数据利用率:由于有了稳定的目标函数,可以对同一批数据进行多次更新,而不会导致策略崩溃。

自适应的KL惩罚系数:

        另外一种替代clip的惩罚方法,是KL离散度进行系数惩罚方法

通过自适应的调制超参\beta来控制策略更新的幅度。

自适应调整方法:

这样,会根据策略更新的情况,自适应地调整,维持策略变化在合适的范围内。

        这里d_{targ}d是KL离散度的期望值,也就是说起范围是在[0,1]之间。因此,这里而KL离散度表示的是新旧两个策略的相似度,越接近1,就越相似;越接近0,就差异越大。

        因此d_{targ}实际上是在侧面的控制策略更新的幅度。所以选择一个固定的d_{targ},通过系数\beta来控制策略的更新幅度。

在实验中表明,clip的方式比KL离散度方式表现更好。

算法:

        假设我们用一个共享参数神经网络来同时输出policy和q-value(一个共享的backbone,两个输出头),则,“代目标”函数可写成:

其中:

  •         S是entropy
  •         L^{VF}是q-value的loss,(V_\theta(s_t)-V^{targ}_t)^2
  •         L^{CLIP}就是前文的截断“代目标”
  •         c_1,c_2是系数

注意:

  •         policy gradient通常是要用梯度上升,最大化目标
  •         value gradient通常是要用梯度下降,最小化目标
  •         所以这里是L^{CLIP}-L^{VF},在L^{VF}前面加了一符号,变成统一用梯度上升方法。当然也可以反过来统一用梯度下降方法。

伪代码:

算法中构造了一个N个线程并行环境。在每个迭代中,每个actor都手机T步数据,构建一个NT步的累计loss,然后做K个epoch的SGD,来更新参数,并将得到的新参数复制给\theta_{old}

Logo

更多推荐