2.0 KiB
2.0 KiB
Asynchronous Methods for Deep Reinforcement Learning
本文贡献在于提出一种异步梯度优化框架,在各类型rl算法上都有较好效果,其中效果最好的就是(asynchronous advantage actor-critic, A3C)。
- Motivation(Why):基于经验回放的drl算法在一些任务上效果较差,可以采用其他的方式来使用数据训练网络
- Main Idea(What):使用异步并行的方式让多个agent与环境进行交互,当某一个agent交互完计算梯度后就交给global进行更新,更新完再同步给这个agent,其他agent做同样的操作。
这里给张李宏毅老师的讲解图:
框架思想较为简单,但优点很多:
-
适用范围广,on/off policy、离散/连续型任务均可使用
-
多个agent采样数据减少数据相关性,训练更稳定
-
不需要经验回放,让框架不局限于off-policy,同时减少内存算力消耗
-
相较分布式所需资源更少,不用gpu,使用一台多核cpu机器时间更短
本文使用hogwild! 方法来更新梯度,不清楚的可参考知乎讲解,下图来源此文:
这里举个栗子:假设网络有100个参数,worker i传来的梯度更新了40个参数后worker j就开始更新了,当$i$更新完后前面的一些参数被j更新了(被覆盖掉了),但不要紧,i更新完了照样把当前global参数同步给i,这就是Asynchronous的意思。
A3C:
实验结果:



