web 3.0 基础设施、数据驱动决策、核心系统数字化转型……戳此了解qcon广州站专题方向
写点什么

谷歌发布生态系统rlds,可在强化学习中生成、共享和使用数据集-61棋牌

  • 2021 年 12 月 20 日
  • 本文字数:2643 字

    阅读完需:约 9 分钟

大多数和都需要智能体与环境的大量交互生成训练数据,以获得最佳性能。这种方法效率很低,尤其是在很难做到这种交互的情况下,比如用真实的机器人来收集数据,或者和人类专家进行交互。要缓解这个问题,可以重用外部的知识源,比如 ,其中包括玩 atari 游戏的合成智能体的数据。


但是,由于这些数据集非常少,而且序列决策生成数据的任务和方式多种多样(例如,专家数据或噪声演示,人类或合成交互,等等),因此,整个社区要用一组很少的、具有代表性的数据集进行工作,就不太现实,甚至不可取。另外,有些数据集被发行成仅适合特定算法的形式,因此研究者不能重用这些数据集。比如,某些数据集并没有包含与环境的交互序列,但却提供了一组让我们无法重构其时间关系的随机交互,其他数据集则会以稍有差异的方式发行,从而导致细微的误差,非常难以识别。

 

基于此,我们提出了(reinforcement learning datasets,rlds),并发布了一套用于记录、重放、操作、注释和共享数据的,用于序列决策制定,其中包括、(apprenticeship learning)或(imitation learning)。rlds 可以方便地共享数据集,而不会损失任何信息(比如,保持交互的序列,而非随机化),而且独立于底层原始格式,从而允许用户在更广泛的任务上对新的算法进行快速测试。


另外,rlds 提供了收集由合成智能体()或人类()生成的数据的工具,以及对收集到的数据进行检查与处理的工具。最后,通过与 (tfds)集成,有助于加强与研究界共享强化学习数据集。

 


通过 rlds,用户可以将智能体与环境的交互以无损、标准的格式进行记录。他们可以利用并转换这些数据,供不同的强化学习或序列决策算法使用,或者进行数据分析。

数据集结构

 

强化学习、离线强化学习或模仿学习中的算法,都有可能会使用格式完全不同的数据,并且,当数据集的格式不清楚时,很容易导致由于对底层数据的误解引起的 bug。


rlds 通过定义数据集的每个字段的内容和意义,使数据格式显式化,并为其提供了重新对齐和转换的工具,以适应任何算法实现所需的格式。为了定义数据格式,rlds 利用了强化学习数据集固有的标准结构,也就是的序列(情节),其中,智能体可以是基于规则的/自动化控制器、正式规划者、人类、动物,或上述的组合。


这些步骤中的每一个都包含当前的观察、应用于当前观察的行动、作为应用行动的结果而获得的奖励以及与奖励一起获得的。步骤还包括额外的信息,以表明该步骤是该情节的第一个还是最后一个,或者该观察是否对应于一个终端状态。每个步骤和情节还可以包含自定义的元数据,可用于存储与环境相关或与模型相关的数据。

生成数据

 

研究人员通过记录任何类型的智能体来产生数据集。为了保持其有用性,原始数据最好以无损格式存储,记录所有生成的信息,并保留数据项之间的时间关系(例如,步骤和事件的序列),而不会对将来如何利用数据集作出任何假定。为了这个目的,我们发行了 ,这是一个软件库,以记录智能体与环境的交互。

 

envlogger 是一种环境包装器,可以将智能体与环境的交互记录下来,并将它们存储在一个较长的时间内。虽然 envlogger 无缝地集成在 rlds 生态系统中,但是我们将其设计为可作为一个独立的库使用,以提高模块化程度。

 

与大多数机器学习环境一样,为强化学习收集人类数据是一个既费时又费力的过程。解决这个问题的常见方法是使用众包,它要求用户能够轻松地访问可能难以扩展到大量参与者的环境。在 rlds 生态系统中,我们发行了一个基于 web 的工具,名为 ,该工具可以通过浏览器为任何人类可控制的环境提供一个通用接口。用户可以与环境进行交互,例如,在网上玩 atari 游戏,交互会被记录和存储,以便以后可以通过 rlds 加载回来,用于分析或训练智能体。

共享数据

 

数据集的制作往往很烦琐,与更广泛的研究社区共享,不仅可以重现之前的实验,还可以加快研究速度,因为它更容易在一系列场景中运行和验证新算法。为此,rlds 与 (tfds)集成,后者是一个现有的机器学习社区内共享数据集的库。一旦数据集成为 tfds 的一部分,它就会被索引到全球 tfds 目录中,这样,所有研究人员都可以通过使用 tfds.load(name_of_dataset) 来访问,并且可以将数据以 tensorflow 或 格式加载。

 

tfds 独立于原始数据集的底层格式,所以,任何具有 rlds 兼容格式的现有数据集都可以用于 rlds,即使它最初不是用 envlogger 或 rlds creator 生成的。另外,使用 tfds,用户对自己的数据拥有所有权和完全控制权,并且所有的数据集都包含了一个引用给数据集作者。

使用数据

 

研究人员可以使用这些数据集对各种机器学习算法进行分析、可视化或训练,就像上面提到的那样,这些算法可能会以不同的格式使用数据,而不是以不同的格式存储数据。例如,一些算法,如 或 ,使用完整的情节;而另一些算法,如 (行为克隆)或 ,则使用成批的随机步骤。为了实现这一点,rlds 提供了一个强化学习场景的转换库。由于强化学习数据集的嵌套结构,所以这些转换都经过了优化,包括了自动批处理,从而加速了其中一些操作。使用这些优化的转换,rlds 用户有充分的灵活性,可以轻松实现一些高级功能,而且开发的管道可以在 rlds 数据集上重复使用。转换的示例包含了对选定的步骤字段(或子字段)的全数据集的统计,或关于情节边界的灵活批处理。你可以在这个中探索现有的转换,并在这个 中看到更复杂的真实示例。

可用数据集

 

目前, 中有以下数据集(与 rlds 兼容):

 

  • 带有 和 任务的 的子集;

  • 、 和 数据集;

  • 用 rlds 工具生成的三个 数据集。

 

我们的团队致力于在不久的将来迅速扩大这个清单,并且欢迎外界为 rlds 和 tfds 贡献新的数据集。

结语


rlds 生态系统不仅可以提高强化学习与序列决策问题研究的可重现性,还可以方便地进行数据的共享和重用。我们期望 rlds 所提供的特性能够推动一种趋势,即发行结构化的强化学习数据集,包含所有的信息,并涵盖更广泛的智能体和任务。

 

作者介绍:


sabela ramos,google ai 软件工程师。

léonard hussenot,谷歌研究室,大脑团队学生研究员。


原文链接:



2021 年 12 月 20 日 10:492461

评论

发布
暂无评论
发现更多内容
网站地图