PPO相较于TRPO,不是利用KL-Divergence限制策略的更新幅度,而是直接clipping的方式。在PPO论文中表明直接clipping的方式使其性能超越TRPO。然而,Logan等人表明,不是clipping导致PPO算法性能优越,而是代码级的优化使其性能优越,这些代码级优化限制策略在可信区域更新。

PPO算法实现中包含了如下优化:

  • 价值函数clipping: 与基于MSE作为损失函数的价值函数训练不一样,以式(1)为损失函数

$$
\begin{aligned}
L^V=min[(V_{\theta_t}-V_{targ})^2,(clip(V_{\theta_t},V_{\theta_{t-1}}-\xi,V_{\theta_{t-1}}+\xi)-V_{targ})^2]
\end{aligned}\tag{1}
$$

  • 奖励缩放: 奖励按照算法1缩放。
  • 正交初始化:策略网络与价值网络使用正交初始化,且随着层数的增加缩放初始化取值范围。梯度爆炸与梯度消失,是由于权重系数连乘造成的,那么正交初始化有利于权重矩阵有范数保持性,从而降低误差传播过程中梯度爆炸和梯度消失的现象。
  • Adam学习率衰退: 根据不同的任务决定学习率衰退。
图1 奖励缩放算法

其它的优化

  • 奖励裁剪
  • 观测正则化
  • 观测裁剪
  • tanh作为激活函数
  • 全局梯度裁剪

对于PPO算法更多的实现细节,可见 ppo-implementation-details

标签: RL关键点

版权: 本篇博文采用《CC BY-NC-ND 4.0》,转载必须注明作者和本文链接

添加新评论