谷歌DeepMind Lab开源平台详细解读

    图片来自 DeepMind 官网

    全世界的人工智能(AI)研究人员很快就能使用 DeepMind 的旗舰平台,来开发能够自主学习和思考的创新性计算机系统了。

    DeepMind 是谷歌 2014 年以 4 亿英镑收购的人工智能部门,目前正在打造一系列能够自主学习和思考的智能计算机系统。DeepMind 近日宣布,将其 AI 核心平台“DeepMind Lab”开源,供研究人员和开发者进行实验和研究。

    DeepMind 称,DeepMind Lab 是一个类似于 3D 游戏的平台,专为基于智能体(Agent,即虚拟代理)的 AI 研究而定制。

    DeepMind 创建于 2010 年,致力于研发 AI 智能体。其所开发的 AI 智能体能够熟练操控许多街机游戏,如《太空入侵者》(Space Invaders)和《吃豆人》(Pac-Man)等。近期,又在复杂的围棋比赛中战胜了世界高手李世石。

    对于 DeepMind Lab,DeepMind 联合创始人谢恩·莱格(Shane Legg)和其他几名员工在一篇博客文章中称:“它从自己的视角,通过模拟智能体的眼睛进行观察。它以丰富的科幻视觉来呈现场景。可用的操作能让智能体环顾四周,并以 3D 的形式移动。智能体的外形是一个悬浮的球体,它的悬浮和移动是通过激活与期望运动方向相反的推动器来实现。它还拥有一个摄像头,能观察其旋转时的动作。”

    “示例任务包括收集水果、走迷宫、穿越危险的通道且要避免从悬崖上坠落、使用发射台在平台间移动、玩激光笔、以及快速学习并记住随机生成的环境。”

    DeepMind Lab 将几个不同的 AI 研究领域整合到一个环境下,以方便研究人员测试 AI 智能体的导航、记忆和 3D 视觉等能力,以及在计划和策略方面的表现。

    DeepMind 在博客中称:“这里的每个任务都被视为处于前沿的研究问题。我们把它们放在一个平台上,代表了这个领域的一个重要的新挑战。”

    DeepMind Lab 具有较高的适应性,并且可扩展。它包括一个可编程的关卡生成(level creation)界面,可根据玩游戏的逻辑、拾起物体、特定观察、关卡重玩、奖励机制、游戏内消息生成定制化关卡。

    DeepMind 称:“我们相信,它已经对我们在多方面智能(包括自然智能和人工智能)的理解上,产生了重大影响。但是,我们目前的努力还只挖掘出 DeepMind Lab 潜力的一小部分。对于一些目前尚未涉及、但可以在 DeepMind Lab 上有所作为的研究领域,仍有许多重大发现的机遇,如导航、记忆和探索。”

    Deepmind 表示,将把 DeepMind Lab 平台的全部代码上传至 Github (一个面向开源及私有软件项目的托管平台),供研究人员和开发者进行实验和研究。

    以下为 DeepMind 在公司网站上发布的关于 DeepMind Lab 的学术论文:

    摘要

    DeepMind Lab 是一个第一人称 3D 游戏平台,专门为研究通用人工智能机器学习系统而设计。DeepMind Lab 可用于研究自动代理如何在大型、部分可视、视觉多样化的环境中学会执行复杂任务。DeepMind Lab 有一个简单灵活的 API,可用于探索创造性的任务设计和全新的 AI 设计,并快速迭代。它由一个快速且被广泛认可的游戏引擎所驱动,并针对开发者社区的高效利用进行了定制。

    介绍

    通用智能(GI)衡量一个智能体(agent,即虚拟代理)在各种环境下实现目标的能力。当前在自然世界中已知的唯一通用智能的例子就是动物。动物在基于物理和感官的条件下,通过演化、发育、学习产生了智能。而人类和其他动物的智能在很大程度上可能是因为所处环境的多样性所导致的结果,没有这种环境,智能可能无法产生。其中一个选择就是直接研究物理世界中的机器人的具体化智能(EI),但这方面的研究通常会遇到一些因素的阻碍,如时间过得太慢,相关的硬件成本太高。另一个选择就是研究逼真的虚拟世界,这样上述两个阻力都能得到解决。

    之前,创建逼真的虚拟世界以作为 AI 研究平台的工作受到了巨大的工程(engineering)量的阻碍。这一次,为解决该问题,我们推出了 DeepMind Lab。DeepMind Lab 是一个第一人称 3D 游戏平台,建立在游戏开发商 id software 公司的《雷神之锤3:竞技场》(Quake III:Arena)游戏引擎之上。

    它以丰富的科幻视觉来呈现场景。可用的操作能让智能体环顾四周,并以 3D 的形式移动。示例任务包括收集水果、走迷宫、穿越危险的通道且要避免从悬崖上坠落、使用发射台在平台间移动、玩激光笔、以及快速学习并记住随机生成的环境。DeepMind Lab 已经成为 DeepMind 内部的一个主要研究平台。例如,它被用于开发强化学习的异步方法、无监督的辅助工作,以及学习导航等。

    人们可能会将 DeepMind Lab 与其他游戏 AI 研究平台(强调“像素到行动”的自主学习智能体)相比较。例如,DeepMind 之前使用的“街机学习环境”(Arcade Learning Environment)既不是 3D,也不是第一人称。而在 3D AI 研究平台中,DeepMind Lab 不仅能与 VizDoom 和 Minecraft 等平台相提并论,还拥有比这些平台更强大的功能。例如,DeepMind Lab 拥有更丰富的视觉效果和更自然的物理效果。

    DeepMind Lab 的人工通用智能(AGI)研究主要强调原始像素输入(raw pixel inputs)、第一人称视角、运动控制、导航、规划、策略、时间,完全自主的智能体必须通过探索周围环境自主学习要执行什么任务。所有这些因素都使得学习变得非常困难。这里的每个任务都被视为处于前沿的研究问题。我们把它们放在一个平台上,代表了这个领域的一个重要的新挑战。

    DeepMind Lab 研究平台

    DeepMind Lab 建立在游戏开发商 id software 公司的《雷神之锤3:竞技场》(Quake III:Arena)游戏引擎之上。DeepMind Lab 还包含一些工具,主要来自 q3map2(GtkRadiant,关卡编辑器)和 bspc (bspc,关卡编辑器),用于关卡生成(level generation)。机器人(bot)脚本基于 OpenArena 项目(《雷神之锤3:竞技场》的开源内容包)代码。

    针对机器学习定制

    我们创建了一套定制化资产,让 DeepMind Lab 别具风格,与众不同。

    它尤其专注于丰富的视觉效果,针对机器学习而定制。

    经过强化的 API 建立在游戏引擎之上,提供具有复杂观察能力、能承受一系列动作的智能体(agent)。

    与平台的互动采取“锁步”(lock-stepped,前锁、后锁或旁锁等)方式。根据用户制定的帧率,引擎每次向前走一步(虚拟模拟。如果需要,可以通过重复动作向前走多步)。这样,在提供一个观察之后,游戏就会暂停,直至智能体给出下一步动作命令。

    deepmind-lab-1

    图1:提供给代理的观察。在我们的实验中,奖励和像素足以用来训练一个智能体,而深度和速度信息可用于进一步的分析。

    观察

    每一步,引擎都会提供基于奖励和像素的观察,而速度信息是可选的。

    1. 奖励信号的标量值,也就是每一关(游戏)的分数。

    2. 平台提供对原始像素(由游戏引擎从玩家的第一人称视角而提供)的访问,格式为 RGB 像素。当然也有 RGBD 格式,后者提供了像素的深度信息。

    3. 对于特定的研究应用,智能体的平移和角速度信息会提供更多帮助。 这些信息将作为两个独立的 3D 矢量形式存在。

    动作

    智能体可提供多种模拟动作来控制运动(向前/向后、向左/向右开炮、蹲、跳)、观看(上/下、左/右)和标记(激光标记关卡),见图2。

    deepmind-lab-2

    图2:动作空间包括 3D 运动和两轴观察

    示例关卡

    图 7 和 8 展示了智能体的第一人称视角截屏。关卡可分为四类:

    1. 基于静态地图的简单的水果收集关卡。这些关卡的任务就是收集苹果和瓜类,但要避开柠檬。

    2. 基于静态地图布局的导航关卡。这些关卡的任务是测试智能体在迷宫中寻找出路的能力。

    3. 程序生成的导航关卡,需要探索由程序随机生成的新迷宫。这些关卡旨在考验智能体探索新环境的能力。

    4. 激光标记关卡,需要智能体使用像激光一样的科幻工具来标记由游戏内置 AI 所控制的机器人(bot)。

    deepmind-lab-3

    图3:静态迷宫关卡的“自上而下”视图。

    技术细节

    最初的游戏引擎使用C语言编写,以确保其兼容性(引擎未来变化),只会在必要时做出修改。而 DeepMind Lab 提供一套简单的 C API,并提供了 Python (编程语言)的动态关联(binding)。

    该平台包含一个广泛的关卡 API,使用 Lua 编写,可用于定制关卡。这种方法使该平台变得高度灵活,只需要对原始游戏引擎进行最低限度的修改。

    DeepMind Lab 支持 Linux,并在多个主要分发平台上进行了测试。

    面向智能体和人类的 API

    DeepMind Lab 可以窗口形式运行,但也支持非窗口环境,如远程终端。渲染使用 OpenGL,既可以使用 GPU 渲染,也可以使用软件渲染工具。

    一个 DeepMind Lab 范例是,使用用户设定启动项目,如关卡名称、屏幕分辨率和帧率。项目启动后,使用简单的 RL 类型 API 与环境互动,见图4。

    deepmind-lab-4

    图4:Python API 示例

    关卡生成

    DeepMind Lab 关卡使用的是《雷神之锤3:竞技场》的关卡。它们被打包到:pk3 文件(ZIP 文件)中,包含许多组件, 如关卡几何图形、导航信息和纹理(贴图)等。

    DeepMind Lab 包含一些工具,可通过:map 文件生成地图。手动编辑自然费力费时,但可以使用许多免费的编辑器,如 GtkRadiant。除了内置和用户提供的关卡,DeepMind Lab 还提供“文本关卡”(Text Level),即一些简单、人类可读的文本文件,用来指定墙壁、重生点(游戏中玩家重生的地点)和其他游戏机制,见图5。图 6 就是一个生成后的关卡渲染图。

    deepmind-lab-5

    图5:文本关卡示例,‘*’代表“墙壁”,‘P’是一个“重生点”, ‘H’和‘I’代表“门”。

    deepmind-lab-6

    图6:图 5 中的“文本关卡”所代表的关卡渲染图。

    对于基于 Lua 的关卡 API,每一个关卡都可以根据玩游戏的逻辑、拾起物体、特定观察、关卡重玩、奖励机制、游戏内消息等进行定制。

    效果和性能

    下图中的表 1 和 2 展示了 DeepMind Lab 内置的两个典型关卡、在不同分辨率下的表现。表中所列出的帧率是通过连接到一个智能体(正通过 Python API 执行任意动作)后计算出的。

    计算环境为:Linux 台式机,基于英特尔 6 核 3.50GHz 至强处理器和 NVIDIA Quadro K600 GPU。

    deepmind-lab-7

    表1: 帧率(帧/秒),nav_maze_static_01 关卡(即前文所述的四类关卡中的第二类:基于静态地图布局的导航关卡)

    deepmind-lab-8

    表2: 帧率(帧/秒),lt_space_bounce_hard 关卡(即前文所述的四类关卡中的第四类:激光标记关卡)

    总结:

    DeepMind Lab 可以对拥有丰富科幻视觉的 3D 环境进行研究,它能推动创新性任务的开发。我们还能通过 DeepMind Lab 建立一系列广泛的环境、任务和智能测试。将来,我们也期待开发者社区能推出更多的应用。(编译/谭燃)

    deepmind-lab-9

     


    声明:
    文章仅代表作者观点,不代表智能链立场,智能链(www.zhinengl.com)也不对真实性背书。
    智能链尊重知识版权,遵循行业规范,转载稿件会明确标明出处;如有侵权,请联系我们处理。
    智能链倡导知识分享,原创和编译文章(除非另有说明)欢迎转载,转载请注明作者和智能链原文链接。