前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DeepMind】首发并开源Alchemy,一种元强化学习(meta-RL)基准环境。

【DeepMind】首发并开源Alchemy,一种元强化学习(meta-RL)基准环境。

作者头像
深度强化学习实验室
发布2021-02-26 15:41:20
7060
发布2021-02-26 15:41:20
举报
文章被收录于专栏:深度强化学习实验室

深度强化学习实验室

官网:http://www.neurondance.com/

论坛:http://deeprl.neurondance.com/

编辑:DeepRL

元学习作为一种增加强化学习的灵活性和样本效率的方法,科研学者对此的关注兴趣迅速增长。然而,该研究领域中的一个问题是缺乏足够的基准测试任务。通常,过去基准的基础结构要么太简单以至于无法引起兴趣,要么就太不明确了以至于无法进行有原则的分析。在当前的工作中,DeepMind科学家介绍了用于元RL研究的新基准:Alchemy,该基准是将结构丰富性与结构透明性相结合。它是在Unity中实现的3D视频游戏,涉及潜在的因果结构,该过程都经过程序重新采样,从而提供了结构学习,在线推理,假设测试以及基于抽象领域知识的动作排序。并在Alchemy上评估了一对功能强大的RL方法,并对这些方法进行了深入分析。结果清楚地表明,Alchemy作为元RL的挑战性基准提供了验证。

一种有前途的方法是元学习或学习学习(learning to learn)。这里的想法是,学习者可以从大量的经验中获得可用于目标的知识,并且随着知识的积累,学习者可以越来越快地适应遇到的每个新任务。在深度RL中开发元学习方法的兴趣迅速增长。尽管在“元强化学习”方面取得了实质性进展,但由于缺乏基准测试任务,这一领域的研究受到了阻碍。在当前的工作中,作者旨在通过引入(和开源)Alchemy(一种有用的meta-RL基准环境)以及一套分析工具来缓解此问题。

为了进行元学习,环境必须向学习者提供的不是单一任务,而是一系列任务或一系列任务,所有这些任务都有一些共同的高级特征。以前关于meta-RL的工作通常依赖于任务分布,这些任务分布要么是有趣的(例如强盗任务),要么是有趣的(例如,Atari游戏),而没有兴趣。Alchemy旨在提供两全其美的体验。

Alchemy是在Unity中实现的单人视频游戏。玩家可以看到桌子上的第一人称视角,桌子上有许多物体,包括一组彩色的石头,一组装有彩色药水的盘子和一个中央大锅。石头具有不同的点值,并且在将石头添加到大锅中时会收集点。通过将石头浸入魔药中,玩家可以改变石头的外观,从而改变它们的价值,从而增加可赢得的分数。

但是,Alchemy也涉及到一个至关重要的陷阱:每次玩游戏时,控制药水如何影响石头的“化学作用”都会改变。熟练的演奏者必须执行一组有针对性的实验,以发现当前化学反应的原理,并使用这些实验的结果来指导战略行动序列。在多轮Alchemy中学习如何做到这一点,正是meta-RL的挑战。

Alchemy具有“有趣”的结构,从某种意义上讲,它涉及潜在的因果关系组成的集合,并且需要策略性实验和动作排序。但是Alchemy的结构也是“可访问的”,因为游戏级别是根据明确的生成过程创建的。

通过创建可访问生成过程的贝叶斯最优求解器,这种可访问性使我们能够确定Alchemy中的最佳元学习性能。这种最佳试剂提供了宝贵的金标准,可与任何深层RL进行比较。

作为Alchemy的首次应用,作者将其介绍给了两种功能强大的深层RL智能体(IMPALA和V-MPO)。正如我们的论文中详细介绍的那样,尽管这些智能体在许多单任务RL环境中都表现良好,但在Alchemy中,它们都显示出非常差的元学习性能。即使经过大量的训练,两位特工的行为也仅反映了对任务的表面“理解”-本质上是将石头随机浸入药水中,直到碰巧产生了很高的石头价值。通过一系列详细的分析,我们能够确定元学习的失败不仅是由于3D环境的视觉运动挑战,也不是为了实现目标而对动作进行排序的难度。相反,智能体的糟糕表现特别反映了结构学习和潜伏状态推理的失败,这是元学习所涉及的核心功能。

开源代码初始化应用:

代码语言:javascript
复制
$ git clone https://github.com/deepmind/dm_alchemy.git
$ pip install wheel
$ pip install --upgrade setuptools
$ pip install ./dm_alchemy
# To also install the dependencies for the examples/, install with:

$ pip install ./dm_alchemy[examples]

Once dm_alchemy is installed, to instantiate a dm_env instance run the following:

代码语言:javascript
复制
import dm_alchemy

LEVEL_NAME = ('alchemy/perceptual_mapping_'
              'randomized_with_rotation_and_random_bottleneck')
settings = dm_alchemy.EnvironmentSettings(seed=123, level_name=LEVEL_NAME)
env = dm_alchemy.load_from_docker(settings)

Blog: https://deepmind.com/research/publications/alchemy

Github: https://github.com/deepmind/dm_alchemy

Paper: https://arxiv.org/pdf/2102.02926.pdf

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度强化学习实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档