进阶篇---PPO代码逐行分析

进阶篇—PPO代码逐行分析

一、TRPO、PPO、DPPO

PG (Policy gradient)
最常用的策略梯度估计其表达形式如下
在这里插入图片描述
TRPO(Trust Region Policy Optimization)
这是一种具有单调递增性质的PG算法,构造了一个带有约束的目标函数
进阶篇---PPO代码逐行分析_第1张图片
使用一个惩罚项来替代TRPO的约束项,从而把约束优化问题转换为无约束优化问题
在这里插入图片描述
PPO(Proximal Policy Optimization)
PPO有两种版本,一是使用Clipped Surrogate Objective
在这里插入图片描述
在这里插入图片描述
另一种是Adaptive KL Penalty Coefficient
进阶篇---PPO代码逐行分析_第2张图片
值得注意的是这里的超参数初始值并不重要,因为其会很快的自适应调整。
DPPO(Distributed Proximal Policy Optimization)
DPPO是一种同步并行PPO算法。DPPO把网络参数存在到一个服务器上,并且会在每一个gradient step后同步地更新workers的参数。

二、算法流程

首先是一个类似AC中的多任务损失函数
在这里插入图片描述
S S S为交叉熵损失,用来提高策略探索能力, L t V F L_t^{VF} LtVF ( V θ ( s t ) − V t t a r g ) 2 (V_ \theta(s_t)-V_t^{targ})^2 (Vθ(st)Vttarg)2
A3C在每一次迭代中,都要采集T个samples(T远远小于回合长度),计算T个n-step return,然后使用这T个数据更新评价网络:
在这里插入图片描述
PPO也使用了相同的思路,但是使用GAE实现
在这里插入图片描述
最后,整个算法流程如下
进阶篇---PPO代码逐行分析_第3张图片

三、代码

逐行分析写在注释上了,有需要的自取我的GitHub。

你可能感兴趣的:(RL)