强化学习(9):TRPO、PPO以及DPPO算法:/zuzhiang/article/details/103650805
DPPO深度强化学习算法实现思路(分布式多进程加速): /weixin_43145941/article/details/116764574
[DPPO]:再看我的影分身之术(附代码及代码分析):/p/111346592
PPO
TRPO
PPO(Proximal Policy Optimization) 是一种解决 PG 算法中学习率不好确定的问题的算法,因为如果学习率过大,则学出来的策略不易收敛, 反之,如果学习率太小,则会花费较长的时间。PPO 算法利用新策略和旧策略的比例,从而限制了新策略的更新幅度,让 PG 算法对于稍微大一点的学习率不那么敏感。
TRPO 与 PPO 之间的区别在于 TRPO 使用了 KL 散度作为约束条件, PPO 在原目标函数的基础上添加了 KL 散度部分
PPO2 在 PPO 的基础上去除了 KL 散度损失函数,但是引入了 Clip 损失函数
DPPO(Distributed Proximal Policy Optimization)简单来说就是多线程并行版的 PPO。
那么A3C就是worker又与环境交互又更新局部梯度,然后推送到全局梯度,再将worker的梯度更新;而DPPO就是worker只与环境交互,由global更新梯度.
在A3C,我们需要跑数据并且计算好梯度,再更新全局网络。这是因为AC是一个在线的算法,所以在更新的时候,产生数据的策略和更新的策略需要时同一个网络。所以我们不能把worker产出的数据,直接给全局网络计算梯度用。
但PPO解决了离线更新策略的问题,所以DPPO的工人只需要提供数据给全局网络,由全局网络从数据中直接学习。
DPPO