RLDS:强化学习中生成、共享和使用数据集的生态系统

1727418858026.jpg

大多数强化学习(RL) 和顺序决策算法都要求代理通过与环境进行大量交互来生成训练数据,以实现最佳性能。这非常低效,尤其是在生成这些交互很困难的情况下,例如使用真实机器人收集数据或与人类专家交互。可以通过重复使用外部知识源来缓解此问题,例如RL Unplugged Atari 数据集,其中包括玩 Atari 游戏的合成代理的数据。

然而,这些数据集非常少,而且在顺序决策中生成数据的任务和方式多种多样(例如,专家数据或嘈杂的演示、人为或合成交互等),因此整个社区只研究少数代表性数据集是不现实的,甚至不可取的,因为这些数据集永远不够具有代表性。此外,其中一些数据集以仅适用于某些算法的形式发布,这使得研究人员无法重复使用这些数据。例如,一些数据集不包含与环境交互的序列,而是提供一组随机交互,因此无法重建它们之间的时间关系,而其他数据集以略有不同的格式发布,这可能会引入很难识别的细微错误。

在此背景下,我们推出了强化学习数据集(RLDS),并发布了一套用于记录、重放、操作、注释和共享数据的工具,用于顺序决策,包括离线 RL、从演示中学习或模仿学习。RLDS 可以轻松共享数据集而不会丢失任何信息(例如,保留交互序列而不是将其随机化),并且与底层原始格式无关,使用户能够在更广泛的任务上快速测试新算法。此外,RLDS 还提供了用于收集由合成代理(EnvLogger)或人类(RLDS Creator)生成的数据的工具,以及用于检查和操作收集到的数据。最终,与TensorFlow 数据集(TFDS) 的集成促进了 RL 数据集与研究社区的共享。

借助 RLDS,用户可以以无损和标准格式记录代理与环境之间的交互。然后,他们可以使用和转换这些数据来为不同的 RL 或顺序决策算法提供数据,或执行数据分析。

数据集结构

RL、离线 RL 或模仿学习中的算法可能会使用格式非常不同的数据,如果数据集的格式不明确,很容易引入由对底层数据的误解引起的错误。RLDS 通过定义数据集的每个字段的内容和含义来明确数据格式,并提供工具来重新调整和转换这些数据以适应任何算法实现所需的格式。为了定义数据格式,RLDS 利用了 RL 数据集固有的标准结构——即代理和环境之间的交互(步骤)序列(情节),其中代理可以是基于规则/自动化的控制器、正式规划者、人类、动物或这些的组合。这些步骤中的每一个都包含当前观察、应用于当前观察的操作、应用操作后获得的奖励以及与奖励一起获得的折扣。步骤还包括其他信息,以指示该步骤是情节的第一步还是最后一步,或者观察是否对应于终止状态。每个步骤和情节还可能包含自定义元数据,可用于存储与环境或模型相关的数据。

生成数据

研究人员通过记录任何类型的代理与环境的交互来生成数据集。为了保持其有用性,原始数据最好以无损格式存储,记录生成的所有信息,保持数据项之间的时间关系(例如,步骤和情节的顺序),并且不对数据集将来的使用方式做任何假设。为此,我们发布了EnvLogger ,这是一个以开放格式记录代理与环境交互的软件库。

EnvLogger 是一个环境包装器,用于记录代理与环境之间的交互并将其保存在长期存储中。尽管 EnvLogger 已无缝集成到 RLDS 生态系统中,但我们将其设计为可用作独立库,以实现更高的模块化。

与大多数机器学习设置一样,为 RL 收集人类数据是一个耗时且劳动密集的过程。解决此问题的常用方法是使用众包,这需要用户友好地访问环境,而这些环境可能难以扩展到大量参与者。在 RLDS 生态系统中,我们发布了一款名为RLDS Creator的基于 Web 的工具,它通过浏览器为任何人为可控环境提供通用界面。用户可以与环境交互,例如在线玩 Atari 游戏,并且交互会被记录和存储,以便稍后使用 RLDS 加载回来进行分析或训练代理。

共享数据

数据集通常很难制作,与更广泛的研究社区共享不仅可以重现以前的实验,还可以加速研究,因为它可以更轻松地在各种场景上运行和验证新算法。为此,RLDS 与TensorFlow 数据集(TFDS) 集成,后者是机器学习社区内用于共享数据集的现有库。一旦数据集成为 TFDS 的一部分,它就会被编入全局 TFDS 目录中,任何研究人员都可以使用tfds.load(name_of_dataset)来访问它,它会以 Tensorflow 或Numpy格式加载数据。

TFDS 独立于原始数据集的底层格式,因此任何具有与 RLDS 兼容格式的现有数据集都可以与 RLDS 一起使用,即使它最初不是由 EnvLogger 或 RLDS Creator 生成的。此外,使用 TFDS,用户保留对其数据的所有权和完全控制权,并且所有数据集都包含引文以表彰数据集作者。

消费数据

研究人员可以使用数据集来分析、可视化或训练各种机器学习算法,如上所述,这些算法使用的数据格式可能与存储格式不同。例如,某些算法(如R2D2或R2D3)使用完整情节;其他算法(如Behavioral Cloning或ValueDice)使用成批的随机步骤。为实现这一点,RLDS 提供了一个用于 RL 场景的转换库。这些转换已针对 RL 数据集的嵌套结构进行了优化,并且包括自动批处理以加速其中一些操作。使用这些优化的转换,RLDS 用户可以完全灵活地轻松实现一些高级功能,并且开发的管道可在 RLDS 数据集中重复使用。示例转换包括针对选定步骤字段(或子字段)的整个数据集的统计数据或尊重情节边界的灵活批处理。您可以在本教程中探索现有的转换,并在本Colab中查看更复杂的真实示例。

可用数据集

目前,TFDS中包含以下数据集(与 RLDS 兼容) :

D4RL的子集,包含来自Mujoco和Adroit的任务

RLUnplugged DMLab 、Atari和Real World RL数据集

使用 RLDS 工具生成的 三个Robosuite数据集

我们的团队致力于在不久的将来快速扩展此列表,并欢迎外部向 RLDS 和 TFDS 贡献新的数据集。

结论

RLDS 生态系统不仅提高了 RL 和顺序决策问题研究的可重复性,还通过简化数据共享和重复使用,推动了新的研究。我们希望 RLDS 提供的功能将引领发布结构化 RL 数据集的潮流,这些数据集包含所有信息,并涵盖更广泛的代理和任务。

致谢

除了本文作者之外,巴黎和苏黎世的 Google 研究团队与 Deepmind 合作完成了这项工作。特别是 Sertan Girgin、Damien Vincent、Hanna Yakubovich、Daniel Kenji Toyama、Anita Gergely、Piotr Stanczyk、Raphaël Marinier、Jeremiah Harmsen、Olivier Pietquin 和 Nikola Momchev。我们还要感谢其他工程师和研究人员的合作,他们为该项目提供了反馈并做出了贡献。特别是 George Tucker、Sergio Gomez、Jerry Li、Caglar Gulcehre、Pierre Ruyssen、Etienne Pot、Anton Raichuk、Gabriel Dulac-Arnold、Nino Vieillard、Matthieu Geist、Alexandra Faust、Eugene Brevdo、Tom Granger、Zhitao Gong、Toby Boyd 和 Tom Small。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论