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

进阶篇—PPO代码逐行分析

一、TRPO、PPO、DPPO

PG (Policy gradient) 最常用的策略梯度估计其表达形式如下 TRPO(Trust Region Policy Optimization) 这是一种具有单调递增性质的PG算法,构造了一个带有约束的目标函数 使用一个惩罚项来替代TRPO的约束项,从而把约束优化问题转换为无约束优化问题 PPO(Proximal Policy Optimization) PPO有两种版本,一是使用Clipped Surrogate Objective 另一种是Adaptive KL Penalty Coefficient 值得注意的是这里的超参数初始值并不重要,因为其会很快的自适应调整。 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_ heta(s_t)-V_t^{targ})^2 (Vθ(st)−Vttarg)2 A3C在每一次迭代中,都要采集T个samples(T远远小于回合长度),计算T个n-step return,然后使用这T个数据更新评价网络: PPO也使用了相同的思路,但是使用GAE实现 最后,整个算法流程如下

三、代码

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

经验分享 程序员 微信小程序 职场和发展