加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 金华站长网 (https://www.0579zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

集合三大类无模型强化学习算法,BAIR开源RL代码库rlpyt

发布时间:2019-10-18 17:34:54 所属栏目:建站 来源:机器之心编译
导读:副标题#e# 近日,BAIR 开源强化学习研究代码库 rlpyt,首次包含三大类无模型强化学习算法,并提出一种新型数据结构。 2013 年有研究者提出使用深度强化学习玩游戏,之后不久深度强化学习又被应用于模拟机器人控制,自此以后大量新算法层出不穷。其中大部分

在目前已经介绍的配置中,采样器和优化器都是在同一个 Python 进程中顺序运行的。而在某些案例中,异步运行优化和采样可以实现更好的硬件利用率,因为这使得优化和采样连续运行。BAIR 在复现 R2D2 时就是这样,基于真实机器人学习也是这样的模式。

在异步模式下,运行训练和采样的是两个单独的 Python 进程,之后 replay buffer 基于共享内存将二者连接起来。采样的运行过程不受干扰,因为数据批次使用了双缓冲。而另一个 Python 进程在写锁模式下将分批数据复制到主缓冲区,详见下图。优化器和采样器可以独立并行,它们使用不同数量的 GPU,以实现最好的整体利用率和速度。

集合三大类无模型强化学习算法,BAIR开源RL代码库rlpyt

异步采样/优化模式。两个单独的 Python 进程通过共享内存的 replay buffer 来运行优化和采样(读写锁模式下)。内存复制器进程将分批数据写入 replay buffer,使得采样器可以即刻处理分批数据。

哪种配置最好?

对于创建或修改智能体、模型、算法和环境而言,串行模式最易于 debug。当串行程序流畅运行时,探索更复杂的基础架构就很轻松了,如并行采样、多 GPU 优化和异步采样,因为它们大致上是基于相同的接口构建的。最优配置取决于具体的学习问题、可用的计算机硬件和运行实验的数量。rlpyt 中包含的并行模式仅限于单节点,尽管其组件可作为分布式框架的构造块。

性能案例分析:R2D2

BAIR 展示了在 Atari 领域中复现 R2D2 结果的学习曲线,在以前只有使用分布式计算才会出现这样的学习曲线。该基准包括使用约 100 亿样本(400 亿帧)基于 replay buffer 训练得到的循环智能体。R2D1(非分布式 R2D2)使用 rlpyt 中多个更先进的基础架构组件来实现它,即使用 alternating-GPU 采样器的多 GPU 异步采样模式。下图展示了复现过程中的学习曲线,其中多个超过了之前的算法。我们需要注意,这些结果并未在所有游戏上完美复现,例如 Gravitar 游戏在比较低的得分处就已进入平台期。详情参见相关论文。

集合三大类无模型强化学习算法,BAIR开源RL代码库rlpyt

在 rlpyt 中使用一台计算机复现 R2D2 的学习曲线。

R2D2 的最初分布式实现使用了 256 块 CPU 进行采样,一块 GPU 执行训练,每秒运行 66,000 步。而 rlpyt 仅使用了一个包含 24 块 CPU(2x Intel Xeon Gold 6126)和 3 块 Titan-Xp GPU 的工作站,以每秒 16000 的步数完成实现。对于无法使用分布式基础架构的情况而言,这已经足够执行实验了。未来研究的一种可能是:利用多 GPU 优化增加 replay ratio,从而加快学习速度。下图展示了相同学习曲线在 3 种不同度量指标下的呈现,这 3 种度量指标分别是:环境步数(即 1 步=4 帧)、模型更新和时间。它在不到 138 个小时的时间内走完了 80 亿步,完成了 100 万次模型更新。

集合三大类无模型强化学习算法,BAIR开源RL代码库rlpyt

rlpyt 使用 24 块 CPU 和 3 块 Titan-Xp GPU 在异步采样模式下执行 R2D1 实现,其学习曲线在横坐标不同(环境步数、模型更新和时间)时的呈现如上图所示。

新型数据结构:namedarraytuple

rlpyt 提出了新的目标类别 namedarraytuples,可使 numpy 数组或 torch 张量的组织更加容易。namedarraytuple 本质上是一个 namedtuple,将索引或切片(sliced)数组读/写呈现在结构中。

(编辑:PHP编程网 - 金华站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!