Unity:一个通用的智能体平台

摘要

人工智能的最新进展是由越来越真实和复杂的模拟环境的存在推动的。然而,许多现有环境要么提供不现实的视觉效果,不准确的物理,低任务复杂性,受限的代理视角,或人工代理之间的交互能力有限。此外,许多平台缺乏灵活配置仿真的能力,使得仿真环境从学习系统的角度来看是一个黑箱。在这项工作中,我们提出了一种现有模拟平台的新分类,并讨论了能够开发具有丰富的视觉、物理、任务和社会复杂性的学习环境的最高级别通用平台。我们认为现代游戏引擎非常适合作为通用平台,并以Unity引擎和开源Unity ML-Agents Toolkit1为例进行研究。然后我们调查了由Unity和Unity ml - agent Toolkit支持的研究,讨论了灵活、交互式和易于配置的通用平台可以促进的各种研究。

引语

近年来,深度强化学习的研究和算法设计有了长足的进展(Mnih et al., 2015;舒尔曼等人,2017;Silver et al., 2017;Espeholt等人,2018)。这种快速发展的关键是具有挑战性和可扩展的仿真平台的存在,如街机学习环境(Bellemare等人,2013年)、VizDoom (Kempka等人,2016年)、MuJoCo (Todorov等人,2012年)和许多其他平台(Beattie等人,2016年;Johnson等人,2016;Coumans and Bai, 2016)。例如,街机学习环境(ALE)对于提供对Deep Q-Network的像素控制方法进行基准测试至关重要(Mnih等人,2013)。同样,其他环境和平台也有助于推动研究更高效、更强大的算法(Oh et al., 2016;Andrychowicz等人,2017)。仿真环境是强化学习社区测试其思想和算法的基本方式。因此,环境质量至关重要。令人惊讶的是,与算法对应的组件相比,围绕这个整体组件的一般性讨论还不够充分。
目前许多研究平台都是基于流行的视频游戏或游戏引擎,如雅达利2600、雷神之锤III、毁灭战士和Minecraft。这是游戏作为人工智能(AI)研究平台的长期趋势的一部分。这一趋势可以追溯到最早的AI游戏,如象棋和跳棋(Shannon, 1950;Samuel, 1959),或后来将强化学习应用于西洋双陆棋游戏(Tesauro, 1995)。使电子游戏对人类具有吸引力的必要搜索、决策和计划也是AI研究人员感兴趣的挑战。这一观点激发了从游戏玩法、玩家建模和内容生成等不同角度对电子游戏和AI交叉的广泛研究(Yannakakis和Togelius, 2018)。
随着深度强化学习算法变得越来越复杂,现有环境和基于它们的基准变得信息较少。例如,ALE中的大多数环境已经解决到高于人类水平的性能,这使得继续使用基准变得不那么有价值(Machado et al., 2017;Puigdomènech Badia等人,2020)。这种算法发展状态的一个补充点是存在一个良性循环,即新环境的发展推动新算法的发展。我们可以期待研究界继续提供高质量的算法。然而,目前还不清楚研究人员应该期望高质量的环境,因为创建这样的环境通常是时间密集型的,需要专门的领域知识。这种对新环境的持续需求需要一个易于使用、灵活和通用的平台来创建不受限制的环境。
模拟环境受到模拟器本身的限制。模拟器在为学习系统提供有意义的挑战方面是不平等的。此外,环境的哪些特性使其成为值得研究的基准有时并不明显。物理世界的复杂性是挑战当前以及待开发算法的主要候选。正是在物质世界中,哺乳动物,更确切地说,人类的智力得到了发展,而研究人员经常感兴趣的就是复制这种智力(Lake et al., 2017)。
现代游戏引擎是模拟视觉现实世界的强大工具,具有复杂的物理和具有不同能力的代理之间的复杂交互。此外,为游戏开发设计的引擎提供了直观、易于使用、互动性强、跨平台的用户界面。因此,在本文中,我们认为游戏引擎完全可以为AI研究的可预见未来带来必要的挑战。对于社区来说,这将提供在同今天的电子游戏一样有深度和多样性的领域中测试算法的能力。
本文的贡献:

  • 一种对现有研究平台的新分类法,它根据平台在感官、物理、任务逻辑和社交方面的复杂性潜力对平台进行分类。
  • 详细分析了Unity游戏引擎和Unity ML-Agents Toolkit作为通用平台的实例,提出了最高级别的分类
  • 对使用Unity进行的当前研究和关键领域的调查,这些领域的进展受到当前平台的阻碍,但可以由Unity等通用平台推动。

本文的结构如下

  • 我们首先分析了一个模拟器的特性,这个模拟器对学习算法的发展很重要。
  • 然后,我们提出了一个模拟平台的分类,我们使用它来组织流行的强化学习(RL)基准,并进一步指出它们在充分实现模拟器的所有理想特性方面的局限性。
  • 然后我们介绍了Unity引擎和Unity ML-Agents Toolkit(一个通用平台),并讨论了它在多大程度上具备了实现研究所需的特性。
  • 接下来,我们概述了开源Unity ML-Agents Toolkit提供的架构、功能和工具,该工具支持在Unity环境中部署学习算法,并提供了一组示例学习环境的基准测试结果。
  • 最后,我们提出了未来的研究方向,我们相信,使用灵活的游戏引擎而不是标准的黑盒环境将有助于实现这一目标。

环境和模拟器的解剖

在本节中,我们将详细介绍一些环境和模拟器的特性,我们认为这些特性是推动人工智能研究领域发展所必需的。我们用“环境”一词来指代人工智能行为的空间,用“模拟器”来指代计算环境的平台。

环境属性

由于算法能够解决越来越困难的任务,为了继续提供有意义的挑战,环境本身的复杂性必须增加。我们认为环境复杂性的具体轴是感觉轴、物理轴、任务逻辑轴和社会轴。在这个小节中,我们将概述这些元素在AI中的作用。
感觉复杂性——深度学习的最新进展很大程度上是由神经网络处理大量视觉、听觉和文本数据的能力推动的(LeCun et al., 2015)。ImageNet是一个包含相关标签的大型自然图像数据库,它对于训练诸如ResNet (He et al., 2016)和Inception (Szegedy et al., 2016)等模型以达到接近人类水平的目标识别性能(Russakovsky et al., 2015)至关重要。虽然ImageNet主要用于静态图像识别任务,但其视觉复杂性的关键组成部分对于许多现实世界的决策问题是必要的,如自动驾驶汽车、家庭机器人和无人驾驶汽车(Zhu et al., 2017)。此外,特别是计算机视觉算法的进步在Deep-Q网络中最终发现了像素控制方法(Mnih et al., 2015)。
物理复杂性——研究人员感兴趣的许多应用任务不仅涉及丰富的感官信息,而且涉及丰富的控制方案,在该方案中,智能体可以以复杂的方式与动态环境进行交互(Bicchi和Kumar, 2000;Levine等人,2016)。对复杂交互的需求通常伴随着对复制目标域(通常是真实世界)物理属性的环境的需求。这种现实主义对于目标是将在模拟器中学习到的政策转移到现实世界的问题至关重要,大多数机器人应用都是如此(Rusu et al., 2016;托宾等人,2017;Andrychowicz等人,2018年)。
任务逻辑复杂性——第三个轴是环境中定义的任务的复杂性。例如,长期以来被用作人工智能研究试验台的围棋,既没有复杂的视觉效果,也没有复杂的物理互动。相反,复杂性来自于在任何给定时间对代理开放的巨大可能性搜索空间,以及评估给定板配置的价值的难度(Müller, 2002;Silver et al., 2017)。有意义的模拟平台应该让设计师能够自然地为其中的学习代理创造这样的问题。这些复杂的任务可能表现出层次结构,这是人类智能的标志(Botvinick, 2008),也可能因实例而异,因此需要元学习或泛化来解决(Wang et al., 2016)。在不可能从固定分布中独立抽样的情况下,也可以按顺序提出任务。在现实世界中,人类任务获取往往是这种情况,随着时间的推移学习新任务的能力被视为持续学习(Ring, 1994)的一个关键组成部分,最终系统能够实现人工通用智能(Schmidhuber, 2015;Schmidhuber, 2018)。
社会复杂性——哺乳动物通过学习获得复杂技能的能力被认为与它们在社会群体中保持关系的能力相辅相成(Arbib等人,2008)。至少在人类中存在一个强有力的例子,语言主要是在社会环境中发展出来的一种交流工具。因此,智能体群体之间社会行为的发展是许多人工智能领域的研究人员特别感兴趣的。还有一些复杂行为只能在人口水平上进行,比如建设现代城市所需的协调(Baker et al., 2019)。此外,多种物种之间相互作用的能力是世界生态系统发展的一个标志,也需要进行模拟。为了研究交流和社会行为而设计的仿真平台应该提供一个健壮的多智能体框架,使同一种群的两个智能体之间以及从不同分布中抽取的智能体组之间能够进行交互。

仿真性能

除了上述属性,模拟器本身也有一些实际的限制,在设计实验环境时必须考虑到这些限制。具体来说,模拟环境必须由研究人员灵活控制,并且必须以快速和分布式的方式运行,以提供实验研究所需的迭代时间。
快速和分布式模拟——根据所使用方法的样本效率,现代机器学习算法通常需要多达数十亿个样本才能收敛到最优解(Espeholt等人,2018;Puigdomènech Badia等人,2020)。因此,尽快收集数据的能力是至关重要的。模拟最吸引人的特性之一是它能够以比物理世界大几个数量级的速度运行。除了速度的提高,模拟通常可以并行运行,允许比物理世界中的实时串行体验更大数量级的数据收集。训练这些算法的速度越快,迭代和实验的速度就越快,从而可以更快地开发新方法。
灵活的控制——模拟器还必须允许研究人员或开发人员在开发期间和运行时对模拟本身的配置进行灵活的控制。虽然将模拟视为黑箱已经足够在近年来取得某些进展(Mnih等人,2015),但在许多情况下,它也抑制了一些先进的机器学习方法的使用,在训练过程和代理之间更动态的反馈是必不可少的。例如,课程学习(Bengio et al., 2009)首先需要向agent提供一个简化版本的任务,然后随着agent性能的提高慢慢增加任务的复杂性(Bengio et al., 2009)。在最近的VizDoom比赛中,这种方法被用于实现接近人类水平的表现(Wu和Tian, 2017)。这些方法是基于这样的假设,即用户首先有能力改变模拟来创建这样的课程。此外,领域随机化(Tobin et al., 2017)涉及在模拟中引入足够的可变性,以便在模拟中学习到的模型可以推广到现实世界。这通常是通过确保真实世界的数据分布覆盖在模拟中呈现的所有变化(Tobin et al., 2017)。如果代理依赖于环境的视觉属性来执行其任务,则这种变化尤其重要。通常情况下,如果没有领域随机化,在模拟中训练的模型就会出现“现实缺口”,表现很差。具体地说,执行领域随机化通常涉及动态操作场景中的纹理、照明、物理和对象放置。

现有模拟器的调查

当调查模拟器、环境和平台的情况时,我们发现这些项目可以分为四类。
(1)第一个是environment,它由单一的、固定的环境组成,从agent的角度来看,这些环境就像黑盒子。这些例子包括典型的CartPole或MountainCar任务(Sutton and Barto, 2018), ALE的一款游戏,如《Pitfall!》(Bellemare et al., 2013)、CoinRun (Cobbe et al., 2019b)和Obstacle Tower环境(Juliani et al., 2019)。
(2)第二个是环境套件。它们由一组打包在一起的环境组成,通常用于沿着感兴趣的某些维度对算法或方法的性能进行基准测试。在大多数情况下,这些环境共享相同或相似的观察和行动空间,需要相似但不一定相同的技能来解决问题。这方面的例子包括ALE (Bellemare等人,2013)、DMLab-30 (Espeholt
(3)第三类是领域特定平台。它描述了允许在特定领域(如移动或第一人称导航)创建任务集的平台。这些平台与最后一类平台的区别在于它们只关注环境类型。这可能包括对代理可以采用的透视图、环境的物理属性或环境中可能的交互和任务的性质的限制。这类例子包括Project Malmo (Johnson et al., 2016)、VizDoom (Kempka et al., 2016)、Habitat (Savva et al., 2019)、DeepMind Lab (Beattie et al., 2016)、PyBullet (Coumans and Bai, 2016)和GVGAI (Perez-Liebana et al., 2016)。
(4)第四类,也是最后一类,是通用平台,其成员能够创造具有任意复杂视觉、物理和社交互动以及任务的环境。这个类别中的平台可以创建的环境集是其他三个类别中可以创建或包含的环境的超集。原则上,这些类别的成员可以用来定义任何潜在感兴趣的人工智能研究环境。我们发现现代电子游戏引擎是这一类别的有力竞争者。特别地,我们建议使用Unity引擎和一个用于AI交互的工具包,例如ML-Agents,作为这一类别的例子。请注意,其他游戏引擎,如虚幻引擎可以作为AI研究的一般平台。然而,这里缺少的重要元素是用于进行AI研究的一组有用的抽象和界面,这些内容在这里列出的所有例子中都存在,但却不是任何特定游戏引擎或编程语言的固有部分。参见表1,以获得该分类法中的环境和平台的一组代表性示例。
Unity:一个通用的智能体平台_第1张图片

常见的模拟器

近年来,已经开发了许多模拟平台,目的是为深度强化学习算法提供挑战和基准。许多平台都是基于现有游戏或游戏引擎,并带有特定的优势和劣势。虽然不是所有当前可用的平台的全部,下面我们将调查前一节中描述的一些模拟器,并从中间两类中选取示例。

3.1.1街机学习环境

街机学习环境(ALE)的发布在很大程度上促进了最近对强化学习的兴趣的复苏。这要归功于Deep Q-Network的开发,它仅通过像素输入就能在数十款模拟雅达利主机游戏中实现超人级别的表现(Mnih等人,2015)。ALE提供了一个Python接口,用于启动和控制几十个雅达利2600游戏的模拟。因此,ALE属于环境套件的范畴。在考虑上述模拟标准时,ALE通过基于像素的渲染提供视觉复杂性,在某些游戏(如《Montezuma’s Revenge》)中以层次问题形式呈现的任务逻辑复杂性,以及能够以每秒数千帧的速度运行的高性能模拟(Bellemare等人,2013). 它的缺点包括确定性的环境,相对简单的视觉效果,缺乏现实的物理,单代理控制,以及缺乏对模拟配置的灵活控制。通常,一旦启动了作为ALE一部分的环境,从代理的角度来看,它是不可变的,是一个完整的黑盒。此外,ALE中提供的所有环境都以高于人类的性能得到了解决(Puigdomènech Badia等人,2020)。因此,除了“少发几次”的学习之外,在现有的技术水平上几乎没有什么有意义的改进空间。这一点很明显,即使是Agent57,当前最先进的算法在ALE中的大量环境中需要比人类多数量级的训练时间。

3.1.2 DeepMind实验室

基于《雷神之锤3》游戏引擎,DeepMind Lab (Lab)于2016年发布,作为DeepMind使用的研究平台的外部版本(Beattie等人,2016)。Lab是在ALE被公众采用之后设计的,它包含了许多旨在解决其他平台缺点的特性。通过使用3D游戏引擎,类似于机器人和动物心理学研究的复杂导航任务可以在实验室中创建和研究(Leibo等人,2018)。DeepMind Lab能够创建一系列特定类型的任务,这使其成为一个特定领域的平台。该平台包含原始物理,能够对世界的质量进行一定程度的预测,并允许研究人员定义自己的环境变化。此外,它允许使用语言进行基本的多智能体交互(Espeholt et al., 2018)。然而,这个平台的局限性很大程度上与底层渲染和物理引擎的过时性质有关,该引擎是使用几十年前的技术构建的。因此,物理世界和通过Lab提供的模拟之间的质量差距是比较大的。此外,该引擎还被设计用于第一人称射击游戏,因此使用Lab构建的环境仅限于第一人称视角的代理。

3.1.3项目马尔默

另一个流行的模拟平台是Project Malmo (Malmo) (Johnson et al., 2016)。基于探索和构建游戏《Minecraft》,该平台在定义场景和环境类型方面提供了大量灵活性,使其成为特定领域的平台。因此,已经有许多研究项目探索多智能体通信、层次控制和使用该平台的规划(Oh et al., 2016;蜀et al ., 2017;Tessler等人,2017)。然而,平台的限制与Minecraft引擎本身的潜在限制紧密相连。由于低多边形像素化的视觉效果,以及基本的物理系统,《我的世界》缺乏现代平台所要求的视觉和物理复杂性。该平台也仅限于描述只能在《Minecraft》逻辑中出现的场景。

3.1.4物理仿真器

由于OpenAI Gym和DeepMind control Suite提供了一套基于MuJoCo的标准任务,MuJoCo物理引擎已经成为一个流行的模拟平台,用于对无模型的连续控制任务进行基准测试(Todorov et al., 2012;Brockman等人,2016;Tassa等,2018a)。高质量的物理模拟结合了许多标准化的基准,使平台成为有兴趣检查连续控制算法性能的研究人员的首选。然而,MuJoCo引擎的性质给更广泛的人工智能研究带来了限制。首先是引擎有限的视觉渲染能力,阻止了使用复杂的照明、纹理和着色器。其次是物理引擎本身的限制以及MuJoCo模型的编译使得创造动态“游戏”环境变得更加困难,在这种环境中,许多不同的对象将在模拟过程中被实例化并实时销毁。更动态的环境通常是必要的,以提出需要更大的规划或协调来解决的任务。PyBullet物理引擎也被用作研究深度强化学习算法以及模拟到真实的平台(Coumans和Bai, 2016;Tan et al., 2018)。与MuJoCo类似,PyBullet模拟器缺乏提供高保真视觉效果的能力,物理引擎的性质限制了可能定义的任务的范围。

3.1.5 VizDoom

基于游戏《毁灭战士》,VizDoom为研究人员提供了创造涉及第一人称导航和控制的任务的能力(Kempka et al., 2016)。通过2017年的人工智能死亡竞赛,该平台开发了许多引人入胜的深度强化学习方法,包括利用学习课程(Wu和Tian, 2017)、新算法设计(Dosovitskiy和Koltun, 2016)和记忆系统(Lample和Chaplot, 2017)。与DeepMind Lab一样,该平台主要受到底层游戏引擎的限制,后者是为一款已有数十年历史的第一人称射击游戏打造的。因此,使用VizDoom创造的环境的视觉和物理复杂性是相对有限的。它还被限制在只能用第一人称视角模拟人工代理。

Unity的平台

Unity是一个实时3D开发平台,由渲染、物理引擎以及名为Unity Editor的图形用户界面组成。Unity在游戏、AEC(建筑、工程、建筑)、汽车和电影行业中得到了广泛的应用,并被许多游戏开发者社区所使用互动模拟,从小型手机和浏览器游戏到高预算的主机游戏和AR/VR体验。
Unity一直专注于开发一个通用引擎来支持各种平台、开发者体验级别和游戏类型,这使得Unity引擎成为AI研究的理想模拟平台。底层引擎的灵活性使其能够创建从简单的2D网格世界问题到复杂的3D策略游戏、基于物理的谜题或多代理竞争游戏的任务。与上面讨论的许多研究平台不同,Unity的底层引擎并不局限于任何特定类型的游戏玩法或模拟,这使得Unity成为一个通用平台。此外,Unity Editor能够快速创建游戏和模拟环境的原型和开发。
Unity项目由一组资产组成。这些通常对应于项目中的文件。场景是一种特殊类型的资产,它定义了项目的环境或级别。场景包含游戏对象的层次化组成的定义,这与环境中的实际对象(物理或纯逻辑)相对应。每个游戏对象的行为和功能是由附加到它的组件决定的。Unity编辑器提供了各种内置组件,包括摄像机、网格、渲染器、刚体等。也可以使用c#脚本或外部插件定义定制组件。

4.1发动机性能

本节从第2节中描述的角度来检查Unity引擎的属性。我们证明了Unity在创造具有挑战性的学习环境的环境属性的关键维度上实现了必要的复杂性。
4.4.1环境属性
感觉复杂性——Unity引擎支持高保真图形渲染。它支持预焙以及实时照明和定义自定义着色器的能力,无论是通过编程或通过可视化脚本语言。因此,可以快速渲染接近逼真的图像,用作机器学习模型的训练数据。它也可以通过使用自定义着色器来渲染深度信息、对象掩模、红外或带有噪声的图像。此外,该引擎还提供了一种定义音频信号的方法,音频信号可以作为学习代理的潜在额外观测信息,以及可以模拟激光雷达的基于光线投射的检测系统。
物理复杂性——Unity环境中的物理现象可以用Nvidia PhysX或Havok Physics引擎来模拟。这使得研究环境与模拟刚体,软体,粒子,流体动力学以及布娃娃物理。此外,平台的可扩展特性允许在需要时使用额外的第三方物理引擎。例如,Unity有一些插件提供了Bullet和MuJoCo物理引擎作为PhysX2的替代品。
任务逻辑复杂性——Unity引擎通过c#提供了一个丰富而灵活的脚本系统。这个系统能够定义和动态控制任何形式的游戏玩法或模拟。除了脚本语言,GameObject和组件系统支持管理代理、策略和环境的多个实例,从而可以定义复杂的层次任务,或需要元学习来解决的任务。社会复杂性——Unity脚本语言和组件系统的本质使得多agent场景的呈现简单而直接。事实上,由于该平台被设计为支持多玩家视频游戏的开发,许多有用的抽象概念已经开箱即用,例如多人网络系统3。
4.1.2仿真属性
快速和分布式模拟——Unity引擎的物理和帧渲染是异步发生的。因此,有可能大大提高底层模拟的速度,而不需要增加渲染过程的帧率。如果它对模拟不是至关重要的话,也可以在没有渲染的情况下运行Unity模拟。在需要渲染的场景中,比如从像素中学习,可以控制游戏逻辑的帧率和速度。对渲染质量的广泛控制也使得在需要时大大提高帧率成为可能。在尝试大规模分布式模拟时,Unity引擎的附加功能确实增加了额外的开销。Unity模拟的内存占用也比来自其他平台的环境(游戏邦注:如雅达利在ALE中的游戏)大。灵活控制——可以编程控制模拟的大部分方面,使研究人员能够在训练过程中定义课程、对抗场景或其他改变学习环境的复杂方法。例如,游戏对象可以有条件地创建和实时销毁。在第5节中,我们讨论了通过暴露仿真参数和Python API进一步控制仿真的方法。

Unity编辑器和服务

Unity Editor及其服务为人工智能研究提供了额外的好处:
1.创建自定义场景——Unity提供了大量关于如何在编辑器中创建场景的指南和教程。这使得开发人员能够快速试验不同复杂性的新环境或新任务。此外,在线资产商店包含数以万计的免费和付费资产,为用户提供了为他们的场景访问大量预制实体的渠道。
2.记录本地,专家演示- Unity编辑器包括一个Play模式,允许开发者开始模拟并通过键盘或游戏控制器控制场景中的一个或多个代理。这可以用于生成专家演示,以训练和评估模仿学习(IL)算法。
3.记录大规模的演示- Unity编辑器最强大的功能之一是能够构建一个场景在超过20个平台上运行,从可穿戴设备到

Unity ML-Agents工具包

Unity ML-Agents toolkit4是一个开源项目,它允许研究人员和开发人员使用Unity Editor创建模拟环境,并通过Python API与它们交互。该工具包提供了ML-Agents SDK,其中包含了在Unity Editor中定义环境所需的所有功能,以及构建学习管道的核心c#脚本。
工具箱的特点包括一组示例环境、先进的RL算法软Actor-Critic (SAC) (Haarnoja et al ., 2018)和近端政策优化(PPO)(舒尔曼et al ., 2017), IL算法生成敌对的模仿学习(GAIL)克隆(Ho和Ermon, 2016)和行为(BC)(侯赛因et al ., 2017),支持自我游戏(Baker et al., 2019;Bansal et al., 2017)在对称和非对称博弈中,以及使用内在好奇心模块(ICM) (Pathak et al., 2017)和长期-短期细胞(LSTM) (Hochreiter和Schmidhuber, 1997)扩展算法和策略的选项。随着平台的发展,我们打算提供额外的算法和模型类型。在接下来的内容中,我们概述了工具包的关键组件,并提供了SAC和PPO在Unity示例环境中的基准测试结果。
Unity:一个通用的智能体平台_第2张图片

你可能感兴趣的:(论文学习,unity)