NanNan 这位朋友已经说得比较清晰了,有理有据。我没有太多同步和异步的经验,按照自己理解简单补充一下。
- 同步优点是容易控制,也就是训练稳定性强,有些算法如果是同步更新的话,也更容易复现些。缺点就是效率低、训练耗时长,一大堆数据要同时转移很影响时间,有的actor跑得飞快就要等其他慢的actor,这是很影响学习效率的。
- 异步优点是效率高,大家各干各的互不耽误,充分利用计算资源,缺点就是相互之间可能“学废”,比如分布式中,一个learner模型更新的飞快,势必会导致它的模型和其他模型的差异性太大,训练波动大。
- 关于RL在这方面的东西,可以看一下IMPALA算法。