文 / Google Research 团队 Natasha Jaques 和加州大学伯克利分校 Michael Dennis

任何机器学习方法的有效性都主要取决于其训练数据。对于是强化学习 (RL),我们可以通过智能体 (Agent) 与现实世界互动收集的有限数据,也可以根据需要依赖于模拟训练环境收集尽量多的数据。后一种模拟训练方法越来越受欢迎,但也存在一个问题,即强化学习智能体可以学习模拟器中内置的内容,但往往在与之模拟的任务稍有不同内容的泛化时表现不佳。显然,想构建一个涵盖现实世界所有复杂性的模拟器是非常具有挑战性的。

  • 现实世界互动
    https://ai.googleblog.com/2018/06/scalable-deep-reinforcement-learning.html

一种解决此问题的方法是通过随机化模拟器的所有参数来自动创建更多样化的训练环境,这一方法称为域随机化 (Domain Randomization)。但是,即使在非常简单的环境中,域随机化也有可能失效。例如,在下方动画中,蓝色智能体正在尝试导航到绿色目标。左侧面板显示的是使用域随机化创建的环境,其中障碍物和目标的位置均已随机化。在很多此类域随机化环境中训练智能体,然后将其转移到简单的“四个房间”环境中,如中间面板所示。请注意,此时智能体找不到目标。这是因为它还没有学会围绕墙壁行走。即使域训练阶段 可能 已经随机 化生成“四个房间”示例中的墙壁配置,智能体也不太可能学会。因此,智能体没有在类似于“四个房间”结构的墙壁上花费足够的时间来训练,并且无法找到目标。

域随机化()无法有效地让智能体做好准备,使其转移到以前未接触过的环境,例如“四个房间”场景()。为解决这个问题,我们使用了极小化极大对抗来构建以前未接触过的环境(),但可能导致产生一些无法解析的情况

我们不仅可以随机化环境参数,还可以学习如何设置环境参数来训练第二个强化智能体。经训练该极小化极大对抗者可通过发现和利用第一个强化智能体的策略弱点,例如构建智能体以前从未遇到过的墙壁配置,从而最大程度地降低其表现水平。但这同样也存在一个问题。右侧面板中展示了一个由极小化极大对抗者所构建的环境,在该环境中,智能体实际上不可能找到目标。虽然极小化极大对抗者已成功完成最大限度地降低了原始智能体的表现水平的任务,但它没有为智能体提供任何学习的机会。同样,使用纯粹的对抗目标也不太适合生成训练环境。

  • 极小化极大对抗者
    https://pubsonline.informs.org/doi/pdf/10.1287/opre.1050.0216?casa_token=p7_NU9p08H0AAAAA%3AjJ7wB7AhJGHZzpinmeu3S8NP2XflHnQ9XRya1RvFMDpCwrGCS1hcpNImK5N3f7HvR7yZfD2QU8SH&

我们与加州大学伯克利分校合作,提出了一种新的多智能体方法,用以训练“《通过无监督环境设计实现紧急复杂性和零次迁移》(Emergent Complexity and Zero-shot Transfer via Unsupervised Environment Design)”一文中提到的对抗者,该论文近期已在 NeurIPS 2020 上发表。在这篇论文中,我们提出了一种基于极小化极大后悔原则的算法,即“主角反派诱导的后悔环境设计(PAIRED)”,它可以避免对抗者创建无法解析的环境,同时仍然支持它来纠正智能体策略中的弱点。PAIRED 激励对抗者将所生成环境的难度调整为超出智能体当前的能力,从而致使自动课程中训练任务的挑战性越来越大。我们发现,受过 PAIRED 训练的智能体可以学习更复杂的行为,并且可以更好地泛化到未知的测试任务。我们已经在 GitHub 代码库上发布了 PAIRED 的开源代码。

  • 通过无监督环境设计实现紧急复杂性和零次迁移
    https://arxiv.org/pdf/2012.02096.pdf

  • GitHub 代码库
    https://github.com/google-research/google-research/tree/master/social_rl/adversarial_env

PAIRED

为了灵活约束对抗者,PAIRED 引入了第三方强化学习智能体,我们将其称为反派 (Antagonist) 智能体,因为它将与对抗者智能体(即设计环境的智能体)结盟。然后我们将初始智能体重命名为主角 (Protagonist),负责导航环境。对抗者构建环境后,主角和反派都会在该环境中进行训练。

对抗者的任务是使反派的奖励最大化,而最大限度减少对主角的奖励。这意味着它必须创建可行 (Feasible) (因为反派可以解析这些环境并获得高分)但对主角具有挑战性(利用其当前策略弱点)的环境。两种奖励之间的差距即后悔值 (Regret)— 对抗者尽力最大化后悔值,而主角则通过竞争使其后悔值降至最低。

我们也可以使用相同的理论框架:无监督环境设计 (UED)  来分析上述方法(域随机化,极小化极大后悔原则和 PAIRED),稍后我们将在本文中对其进行详细介绍。UED 为环境设计和决策理论建立了联系,使我们能够证明域随机化等同于不充分推理原则,极小化极大对抗者遵循最大原则,而 PAIRED 正在优化极小化极大后悔原则。这一形式使我们能够运用决策理论中的工具来了解每种方法的优缺点。下面,我们逐一介绍了此类构想在环境设计中的应用:

域随机化 (a) 会生成非结构化的环境,此类环境并非针对智能体的学习进度而定制。极小化极大对抗者 (b) 可能会创建不可行的环境。PAIRED (c) 可以生成具有挑战性的结构化环境,智能体仍然有可能在该环境下完成目标

课程生成

极小化极大后悔原则的有趣之处在于,它可以激发对抗者的兴趣,使其生成最初简单易学的课程,然后逐步增加环境的挑战性。在大多数强化学习环境中,奖励函数会对于完成任务效率更高或使用的时间步更少的情况给出高分。在这样的设定下,我们可以证明,后悔原则可激励对抗者创建出 主角尚无法解析的最简单的环境。为此,让我们假设反派是完美的,并且始终能够获得它可获得的最高分。同时,主角的情况很糟糕,所有任务均得零分。在此情况下,后悔值将仅取决于环境的难度。由于环境越简单,所花费的时间步越少,因此它们允许反派获得更高的分数。正因如此,在简单环境中失败的后悔值将大于在艰难环境中失败的后悔值:

所以,通过最大化后悔值,对抗者将搜索主角会失败的简单环境。当主角学会解析每种环境后,对抗者必须继续搜索,找到主角无法解析的难度更高一些的环境。这样一来,对抗者可生成一个包含难度递增的任务课程。

结果

我们可以看到下方的学习曲线中生成的课程,这些曲线绘制了智能体已成功解析的迷宫的最短路径的智能体。与极小化极大算法或域随机化不同,PAIRED 对抗者创建的课程越来越长,但可能会变成迷宫,使 PAIRED 智能体能够学习更复杂的行为。

但是,这些不同的训练计划能否帮助智能体更好地泛化到其他未知的测试任务呢?下面,我们将看到每种算法在一系列具有挑战性的测试任务上的零次迁移表现。随着迁移环境复杂性的增加,PAIRED 和基准之间的表现水平差距会扩大。对于像螺旋形迷宫和矩形迷宫这样的极其困难的任务,PAIRED 是唯一有机会解决任务的方法。这些结果提供了有力的证据,表明 PAIRED 可用于改善深层强化学习的泛化。

当然,这些简单的网格世界并不能反映许多强化学习方法解决的现实世界任务的复杂性。我们在“《用于学习 Web 导航的对抗环境生成》(Adversarial Environment Generation for Learning to Navigate the Web)”一文中解决了这一问题。该文研究了 PAIRED 应用于更复杂问题时的表现水平,例如,教导强化学习智能体导航网页。我们提出了 PAIRED 的改进版本,并展示了如何使用它来训练对抗者以生成包含挑战性日益增加的网站的课程:

  • 用于学习 Web 导航的对抗环境生成
    https://arxiv.org/abs/2103.01991

在上方,您可以看到对抗者在早期、中期和后期训练阶段建立的网站,这些网站从每页使用少量元素增加为同时使用多种元素,从而使任务难度逐步提升。我们测试在此课程上进行训练的智能体是否可以泛化到标准 Web 导航任务,结果成功率达到 75%,相比难度最高的课程学习基准提高了 4 倍:

结论

深度强化学习非常适合模拟训练环境,但是我们如何创建涵盖现实世界复杂性的模拟环境呢?一个解决方案是,使流程自动化。我们提出将无监督环境设计 (UED) 作为框架。该框架描述了自动创建训练环境分布的不同方法,并证明 UED 包含了先前的工作,例如域随机化和极小化极大对抗者训练。我们认为 PAIRED 是 UED 的一种好方法,因为最大化后悔值可促使课程设置越来越具有挑战性,使得智能体做好准备,成功迁移到未知的测试任务。

致谢

在此感谢“《通过无监督环境设计实现紧急复杂性和零次迁移》(Emergent Complexity and Zero-shot Transfer via Unsupervised Environment Design)”的合著者:Michael Dennis、Natasha Jaques、Eugene Vinitsky、Alexandre Bayen、Stuart Russell、Andrew Critch 和 Sergey Levine,以及 “《用于学习 Web 导航的对抗环境生成》(Adversarial Environment Generation for Learning to Navigate the Web)”合著者:Izzeddin Gur、Natasha Jaques、Yingjie Miao、Jongwook Choi、Kevin Malta、Manoj Tiwari、Honglak Lee,Aleksandra Faust。此外,我们还要感谢 Michael Chang、Marvin Zhang、Dale Schuurmans、Aleksandra Faust、Chase Kew、Jie Tan、Dennis Lee、Kelvin Xu、Abhishek Gupta、Adam Gleave、Rohin Shah、Daniel Filan、Lawrence Chan、Sam Toyer、Tyler Westenbroek、Igor Mordatch、Shane Gu、DJ Strouse 和 Max Kleiman-Weiner 积极参与讨论,为本文做出贡献。

更多 AI 相关阅读:

  • Kick Start 编程挑战赛报名通道现已开启

  • 借助稀疏推理加速移动设备和网页上的神经网络

  • 推出 Model Search:寻找最佳 ML 模型的开源平台

  • 用视觉模型改善强化学习评价设计

  • 面向计算机架构的机器学习

 点击屏末 | 阅读原文 | 立即访问 GitHub

发布 PAIRED:一种生成对抗环境的全新多智能体方法相关推荐

  1. 对抗环境下的多无人机编队方法和队形变换研究

    对抗环境下的多无人机编队方法和队形变换研究 肖雁冰 张迎周(导)南京邮电大学 标签(空格分隔): 论文阅读 摘要   在无人机功能有限的今天,面对日趋复杂的作战任务.无法预测的作战环境,单一无人机所拥 ...

  2. 【数据匮乏场景下采用生成对抗网络的 光伏出力场景预测方法】

    背景介绍 生成对抗网络(GANs)是由两个网络组成的深度神经网络体系结构,它将一个网络与另一个网络相互对立(因此称为"对抗性"). 2014年,Ian Goodfellow和包括Y ...

  3. 租借云服务器 工业信号数据采集,一种工业用物联网云服务平台智能采集方法...

    主权项: 1.一种工业用物联网云服务平台智能采集方法,其特征是,具体步骤如下:(1)系统的组成:数据采集模块.数据传输模块和应用管理模块.物联网的云服务系统包括:客户端.注册服务器云端服务器.物联网: ...

  4. 基于生成对抗网络的有遮挡人脸修复方法

    摘要 [目的]实现有遮挡人脸图像修复,以提升人脸识别系统中有遮挡条件下人脸识别的准确率.[应用背景]在无感人脸识别场景中,人脸图像常因帽子.口罩等遮挡物影响,现有人脸识别算法出现准确率下降甚至无法识别 ...

  5. PcGAN:一种用于一次学习的噪声鲁棒条件生成对抗网络∗

    简 介: 在本文中,我们为智能交通系统提出了一种基于条件生成对抗网络的新型交通标志分类方法.所提出的 PcGAN是一个端到端网络,网络框架包含交替更新模块,即数据重建模块和退化生成模块,以及用于退化消 ...

  6. 终于有人把生成对抗网络(GAN)讲明白了

    导读:简而言之,机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术,而本文的主角--生成对抗网络则是深度学习中的一种分类. 作者:史丹青 来源:大数据DT(ID:hzdashuju) ...

  7. 论文精读:Generative Adversarial Imitation Learning(生成对抗模仿学习)

    生成对抗模仿学习论文分享(Generative Adversarial Imitation Learning) 1.背景介绍 1.1.论文背景 这篇论文是2016年由斯坦福大学研究团队提出的,两位作者 ...

  8. 图像填充不怕区域大!MSRA等提出协同调制生成对抗网络

    编者按:图像填充是深度学习领域内的一个热点任务.尽管现有方法对于小规模.稀疏区域的填充可以取得不错的效果,但对于大规模的缺失区域始终无能为力.为解决这一问题,微软亚洲研究院提出了协同调制生成式对抗网络 ...

  9. 生成对抗网络项目:6~9

    原文:Generative Adversarial Networks Projects 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文集],采用译后编辑( ...

最新文章

  1. 小程序组件 Vant Weapp 安装
  2. 在Angular中有多个字段
  3. Python中可以使用静态类变量吗?
  4. json为全局变量 vue_vue package.json设置全局变量
  5. win10安装mysql
  6. storm mysql druid_Druid 集成
  7. python绘制汉字_OpenCV Python 绘制中文字
  8. 机器学习竞赛(代码)
  9. 测试手机屏幕颜色软件,【AVW分享】一款你可以拥有的手机屏幕测试app
  10. 标准商业计划书大纲模版
  11. JQuery注册登录
  12. 第二章:1、复合函数求导
  13. Java 与 区块链技术_java区块链技术有哪些主要的特点和应用
  14. c语言实现一元多项式程序报告设计,数据结构课程设计报告一元多项式的计算..doc...
  15. 考研复试面试专业问题
  16. RocketMQ PERM含义 PERM=7、6、4、2
  17. 一文带您读懂FCC、CE、CCC认证的区别
  18. IBM ServerGuide 9.40
  19. java实现百度人脸识别API(SpringBoot集成)
  20. <<算法很美>>——(三)十大排序算法(下)

热门文章

  1. 使用PyTorch Lightning自动训练你的深度神经网络
  2. HTML5“爱心鱼”游戏总结
  3. 面试常问的16个C语言问题,你能答上来几个?
  4. 魔域手游安卓修改服务器地址,魔域互通端游手游架设
  5. C++核心准则C.164:避免隐式转换运算符
  6. Mongoose Populate
  7. java poi 导出excel不能超过65536行
  8. Unity Error 打AssetBundle时出现 An asset is marked with HideFlags.DontSave but is included in the build
  9. 534 Policy requires SSL错误
  10. idea translation翻译插件报-TKK错误