写点什么

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

  • 2021-12-20
  • 本文字数:2643 字

    阅读完需:约 9 分钟

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

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


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

 

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


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

 


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

数据集结构

 

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


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


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

生成数据

 

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

 

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

 

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

共享数据

 

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

 

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

使用数据

 

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

可用数据集

 

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

 

 

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

结语


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

 

作者介绍:


Sabela Ramos,Google AI 软件工程师。

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


原文链接:


https://ai.googleblog.com/2021/12/rlds-ecosystem-to-generate-share-and.html

2021-12-20 10:495435

评论

发布
暂无评论
发现更多内容

云原生基础组件选型出发点

穿过生命散发芬芳

11月月更 云原生落地

【网络安全必看】如何提升自身WEB渗透能力?

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

【Python 函数】-介绍

度假的小鱼

11月月更 Python函数使用方法

MobPush Android 快速集成

MobTech袤博科技

ABY3

NOT_FOUND

跨区域远程沟通协作,大家保险选择华为云会议

科技怪授

【Python 基础学习】-元组-字典-集合

度假的小鱼

11月月更 Python元组 Python字典 Python集合

26k Star!理解Git太轻松了。。。

Jackpop

2022-11-26:给定一个字符串s,只含有0~9这些字符 你可以使用来自s中的数字,目的是拼出一个最大的回文数 使用数字的个数,不能超过s里含有的个数 比如 : 39878,能拼出的最大回文数是

福大大架构师每日一题

算法 rust 福大大

【网络安全】红队攻防之基础免杀

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

C++---类型萃取---is_array && is_enum/is_union/is_class

桑榆

C++ STL 11月月更

支持向量机-选取与核函数相关的参数:degree & gamma & coef0

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

Note.js框架中的cluster集群和断言测试的实战剖析

恒山其若陋兮

前端 11月月更

在child_process域和错误的冒泡和捕获实践【Note.js】

恒山其若陋兮

前端 11月月更

华为云会议,轻松实现远程智能办公

秃头也爱科技

python数据分析-pandas基础(4)-数据映射apply

AIWeker

Python Python数据分析 11月月更

python小知识-hook函数

AIWeker

Python python小知识 11月月更

一文熟悉 Go 的分支结构(if - else-if - else、switch)

陈明勇

Go golang Switch if 11月月更

角色扮演?一款跨平台可移植开源游戏!

Jackpop

ipv6地址概述——了解ipv6与ipv4不同

初学者

网络 11月月更

ipv6地址概述——了解ipv6地址

初学者

网络 11月月更

python数据分析-pandas基础3-数据对齐

AIWeker

Python Python数据分析 11月月更

Linux 用户和用户组管理

芯动大师

11月月更 Linux系统 用户组

世界杯来了,让 Towhee 带你多语言「以文搜球」!

Zilliz

华为云会议录制能力再升级,会议成果全收录!

科技怪授

企业办公新模式,随时随地云上协同!

秃头也爱科技

微服务 vs 单体架构

agnostic

微服务架构

企业级运营定时任务分发设计

Quincy

运营 crontab 分布式定时任务

华为云桌面,助力云上工作,让云上工作更高效!

秃头也爱科技

【Python 基础学习】-列表

度假的小鱼

11月月更 python列表

数据结构与算法完整版 | 超详细图解,看这一篇就够了

小二,上酒上酒

Java 数据结构 面试 算法

谷歌发布生态系统RLDS,可在强化学习中生成、共享和使用数据集_文化 & 方法_Sabela Ramos_InfoQ精选文章