首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用两台计算机训练深度强化学习模型

用两台计算机训练深度强化学习模型
EN

Data Science用户
提问于 2018-11-05 15:16:27
回答 1查看 1.1K关注 0票数 2

我想知道是否有办法用两台不同的计算机来训练一个深层次的rl模型。第一台将执行游戏并将请购单发送到第二台计算机,该计算机将存储和训练模型本身。

计算机不在同一个局域网里。

谢谢!!

EN

回答 1

Data Science用户

回答已采纳

发布于 2018-11-05 16:29:26

分布式RL是一件非常重要的事情。谷歌已经为此创建了一个名为黑斑羚的分布式安装程序,如果您进行搜索,会有多个A3C、PPO等实例可用。我对IMPALA不太了解,但是可伸缩策略梯度方法的基本思想是运行多个环境,在每个服务器上收集梯度,然后将它们整理在一起,每隔几步创建一个改进的策略和价值网络。

基于数据共享阶段的策略有几个变化--观测或梯度。梯度计算是CPU密集型的,因此在一定规模以上的分布式设备上发生的梯度计算是值得的,这取决于首先收集经验的强度。

计算机不在同一个局域网里。

除非机器之间的带宽很高,否则这可能会阻止您通过低级别观察或梯度共享来实现任何东西。

在这种情况下,使用两台计算机的最简单方法是执行基本的超参数搜索,方法是在每台计算机上运行不同的测试,并跟踪哪台计算机进行了哪些实验。

第一台将执行游戏并将请购单发送到第二台计算机,该计算机将存储和训练模型本身。

这可以使用基于非策略值的方法,例如DQN。在这两台机器之间仍然需要一个合理的带宽,特别是在观测空间很大的情况下。DQN是一个合理的选择,因为您不需要环境--运行机器来遵循当前的最优策略--尽管有时您仍然希望在第一台计算机上更新策略。

为了支持这种分布,DQN的基本算法不需要太多的修改。只需注释掉或附加条件的几个部分:

  • 在第一台机器上:
    • 注释掉或逻辑上阻止从经验表中抽取和学习
    • 维护“行为驱动”q值网络而不是学习网络,以便运行\epsilon-greedy策略。
    • 将经验发送到第二台机器,而不是存储在本地体验回放表中(这是带宽密集型部分)。
    • 异步接收行为驱动q值网络的更新。

  • 在第二台机器上:
    • 注释掉或逻辑上阻止与环境的交互。
    • 异步从第一台机器接收经验并添加到体验重放表中。
    • 每隔这么多小批,将更新的当前网络发送到第二台机器。

您将需要一些处理多线程或多进程代码的经验,以涵盖更新的异步性质。如果这看起来太难了,那么您可以让这两台机器同步更新,或者通过排队机制进行更新。这样做的缺点是,一台或另一台机器可能会闲置,等待它的合作伙伴完成它的部分工作。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/40752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档