同时培训DDQN

时间:2019-05-15 15:51:59

标签: neural-network reinforcement-learning

我和我的朋友正在训练DDQN以学习2D足球。我训练了该模型约40.000集,但花了6天。有没有办法同时训练该模型?

例如,我有4个核心和4个线程,每个线程同时训练模型10.000次。因此,像for循环的并行性一样,训练40.000集的时间从6天减少到1.5天。

编辑:如果我们分别在4个线程中训练一个10.000集的模型,则将形成一个由这些训练后的模型的平均值组成的新模型,从而产生40.000集的训练效果,或者它是一个训练了10.000集的模型,但是更好的一个?

1 个答案:

答案 0 :(得分:0)

我认为本文回答了您的问题: https://arxiv.org/pdf/1507.04296.pdf

本文运行一个中央学习器,具有中央重放记忆。另外,还有PS C:\Users\user> $reg = "^.*(?<![-_])\.(?![-_]).*$" PS C:\Users\user> $str = "aaa . aaa" PS C:\Users\user> PS C:\Users\user> $str -match $reg True PS C:\Users\user> $reg = "^.*(?<![-_])\.(?![-_]).*$" PS C:\Users\user> $str = "aaa ._ aaa" PS C:\Users\user> PS C:\Users\user> $str -match $reg False 个工作程序,它们是中央学习器的副本,每个工作程序都有自己的重播内存。每个工作人员都会填充自己的重播内存,并且在每个训练步骤中都可以使用自己的重播内存(如果足够大)或使用中央重播内存。在每个动作选择之前,将网络的权重与服务器同步,并且在每个训练步骤之后,将梯度发送回服务器。

还要考虑: https://arxiv.org/pdf/1602.01783.pdf

提出A3C的

,后来提出的A2C是A3C的简单版本。关键是,由于A3C的性能,异步Q学习算法并未引起太多关注。基本上,使用分布式DQN算法效率不高,因为重放内存需要将大量数据从不同的工作程序来回移动到服务器。实际上,提出了A3C来解决重播内存的问题,该内存运行模型的一个实例并在每个工作程序中包含env,并且仅异步更新权重。

我希望这能回答您的问题。

Afshin