导读:前不久有关虚幻引擎 5.0 的新闻,引起了人们的阵阵惊叹,被誉为“来自外星的黑科技”。其实,除了虚幻引擎外,还有一个游戏引擎也非常牛逼:Unity 引擎。它也是全球开发人员中最受欢迎的第三方游戏开发软件。虚幻引擎集成了人工智能,Unity 自然也不甘落后。今天,Unity 的 ML-Agents v1.0 已经正式发布了!从 1950 年香农教授提出为计算机象棋博弈编写程序开始,无数的科学家贡献了自己的才华和岁月,取得了许多里程碑意义的成果。游戏人工智能就是人工智能技术研究的前沿,被誉为人工智能界的 “果蝇”,推动着人工智能技术的发展,并对社会产生深远影响。InfoQ 中文站曾经翻译过《漫谈电子游戏中的人工智能》,读者可以先看看这篇文章。
2017 年 9 月 17 日,Unity Machine Learning Agents Toolkit(ML-Agents)(意即 Unity 机器学习智能体工具包)的第一个版本发布了。它的任务很简单,就是让游戏开发者和人工智能研究人员都能使用 Unity 作为平台,利用机器学习的最新进展来训练、嵌入智能体。自从最初的“Hello World”发布以来,我们见证了该工具包的社区和发展都得到了极大的增长,该项目已经积累超过 8400 个 GitHub 星。今天,经过两年半的发展和 15 个以上的版本更新,我们很高兴地宣布,ML-Agents Unity Package 版本已达到 v1.0,并以预览包的形式发布。同时,我们还为 ML-Agents 发布了新的产品和资源页面。
让我们首先介绍一些背景知识。ML-Agents 是一个开源项目,它使游戏和模拟能够成为训练智能体的环境。它包括一个用于设置场景并在其中定义智能体的 C#SDK,以及一个最先进的机器学习库,用于训练 2D、3D 和 VR/AR 环境中的智能体。
今天,ML-Agents 达到了一个重要的里程碑:C#SDK 已经升级到第一个主要版本 v1.0,现在可以以预览包的形式(com.unity.ML-Agents)通过 Unity Package Manager(包管理器)获得。这为我们的用户带来了三个主要优势:
API 稳定性:经过两年多的开发和测试,从我们自己的 Unity 演示环境(从运动任务到多人游戏和机械臂)再到使用 Unity 制作真实游戏,ML-Agents C#SDK 得到不断的发展,为我们带来一个灵活的、功能丰富且稳定的 API,可以轻松集成到任何游戏或 Unity 环境中。
易于安装:现在,你可以直接在 Package Manager 开始使用 ML-Agents Unity Package,而无需克隆 GitHub 项目。
经验证的 Unity 软件包(即将推出):现在,ML-Agents Unity 软件包有望成为 Unity Editor 2020.2 版本经过验证的软件包。
本文将介绍 ML-Agents 的简史,概述我们最新的里程碑版本 ML-Agents Release 1,并提供了即将到来的 ML-Agents 改进的一瞥。
ML-Agents 的简史
在我们的首篇博文中,我们曾写道:
作为世界上最受欢迎的创作引擎,Unity 正处于机器学习和游戏之间的十字路口。对于我们的使命而言,至关重要的是为机器学习研究人员提供最强大的训练场景,让他们能够用最新的机器学习技术来回馈游戏社区。
ML-Agents 中从简单到复杂的训练场景
在接下来的两年半时间里,ML-Agents 恪守自己的使命,并在游戏和机器学习社区的交汇处中不断发展。我们不断改进工具包,添加了新的训练选项,如课程学习(Curriculum Learning),启用 Curiosity 模块的稀疏回报环境,提高训练的速度和效率,启用多智能体场景下的自我对局(Self-play),以及为所有使用 ML-Agents 训练的模型提供原生的、跨平台的推理支持。(请参见我们的 GitHub ML-Agents 概述页面,以了解 ML-Agents 的所有功能介绍。)我们已经见证这些改进如何实现新的演示和环境,如 Puppo 以及与真实游戏的集成,如 Jam City 的《史努比泡泡》(Snoopy Pop) 和 Carry Castle 的《狂怒之源》(Source of Madness)。
Snoopy Pop(左上),Puppo Day at the Races(右上),Source of Madness(下)
我们专门为人工智能研究人员创建了障碍塔(Obstacle Tower)环境和挑战(用 ML-Agents 构建),作为视觉、控制和规划的基准。我们还看到其他研究人员和实验室采用 ML-Agents 来创建研究基准。典范包括竞技场(Arena)多智能体环境、动物人工智能奥运会(Animal AI Olympics)和连续控制的马拉松(Marathon)环境。
Obstacle Tower(左上),Marathon Environments(右上),Animal AI Olympics(左下),Arena(右下)
自我们的最初版本开始,ML-Agents 社区就从一个由人工智能研究人员、游戏开发人员和学生组成的松散联盟,发展成了成千上万的社区参与者。这其中包括一些 ML-Agents 的创意演示,可直接与我们在线分享。我们的 GitHub 仓库得到了超过 8400 个星标(star)和 2300 个复刻(fork),我们的研究论文《Unity:智能体的通用平台》(Unity: A General Platform for Intelligent Agents) 的引用次数超过 115 次。
ML-Agents Unity Package v1.0
今天,我们很高兴地宣布,我们最新发布的 ML-Agents Unity Package 的版本已经达到 v1.0.0,并在 Unity Package Manager 中以预览包的形式提供。为了反映这一新版本的 ML-Agents,我们的论文《Unity:智能体的通用平台》(Unity: A General Platform for Intelligent Agents) 也已更新。
这一版本的更改体现了 ML-Agents 的两个核心改进:
软件包的组织。ML-Agents 现在有四个软件包:一个 Unity 软件包和三个 Python 软件包,其中包括 Unity 到 Python 的通讯和机器学习算法,除非你打算修改我们的训练算法,或构建自己的训练算法,否则你只能将 Unity 软件包集成到你的项目中并使用我们的训练 CLI 来与 ML-Agents 进行交互。
API 的改进。几个月前,我们开始对 C#SDK 进行全面修改,使其使用起来更简单、更直观。其结果是,从 2019 年 9 月的 V0.10.0 开始,我们在几个版本中分阶段进行了大量的重大改进,并最终发布了我们的最新版本。有关这些改进的更多详细信息,请参阅我们的发行说明。
从 ML-Agents Release 1 开始,每个 GitHub 版本都将为构成 ML-Agents 的每个包发布一个新版本。对于 ML-Agents Release 1,我们设置了以下版本:
com.unity.ml-agents (v1.0.0, C#)
已经定义 Public API(公共 API),并将在未来版本中遵循语义版本控制。此外,该软件包已经作为预览包被添加到 Unity 包管理器中。我们计划为 Unity 2020.2 版本发布一个经过验证的软件包。
Communicator (v1.0.0, C#/Python)
Unity 和 Python 之间的通讯协议已经稳定,并将遵循语义版本控制。该功能将在使用同一主要版本的通讯协议的 C#和 Python 包之间实现向后和向前兼容。
ml-agents、ml-agents-envs、gym-unity (v0.16.0, Python).
Python 包将以一种非向后兼容的方式继续发展和改进。虽然未来对 CLI 的改进可能会引起突破性的变化,但我们计划尽快完成并稳定 CLI。
更多关于我们的软件包的版本控制,以及对 GitHub 版本的相应修改的详细信息,可以在版本控制页面上找到。
下一步是什么?
ML-Agents Release 1 是一个非常令人兴奋的旅程的开始。我们计划通过提高训练算法的性能和效率,根据用户的反馈改进我们的 Unity 软件包,并增加更多的示例环境,这些示例环境受 ML-Agents 的游戏和工业应用启发。你可以在 ML-Agents 论坛上跟进我们的路线图并提供建议。
除了改进核心工具包之外,我们还计划进行一些激动人心的改进,现在,我们将简要描述这些改进。
已验证的 Unity 2020.2 验证软件包
在 Unity 中,作为一个经过验证的软件包,部分目的是为了让用户安心,因为这个软件包将经过重大测试,并经过验证,可以安全地在特定版本的 Unity 中使用。这意味着,如果你想在生产游戏中使用 ML-Agents,我们希望确保我们能够提供支持。我们正计划为 Unity 2020.2 发布一个验证软件包。这也意味着,我们将在 Unity 2020.2 LTS 周期中支持 ML-Agents Unity 软件包。
ML-Agents Cloud
使用 ML-Agents Cloud 扩展训练
我们从 ML-Agents 用户那里得到的一个常见反馈是,他们希望能够无需安装 Python 即可进行训练。我们还看到了用户在本地机器上进行训练的限制,限制了一次可训练的环境和超参数变化的数量。ML-Agents Cloud 是我们计划在今年晚些时候推出的云服务,它将使 ML-Agents 用户能够在我们可扩展的云基础设施上进行训练。用户将能够提交多个并发的训练,或者轻松地将一个训练扩展到多台机器上,以获得更快的结果。
当前我们正在开放注册,以便考虑人们能够提前预览访问 ML-Agents Cloud。如果你是现有的 ML-Agents 用户,并且需要扩展和管理实验方面的帮助,请点击此处进行注册。
DOTS 世界的 ML-Agents
请下载上传视频 https://youtu.be/4hckoKnIgBU
Unity 的核心正在使用面向数据的技术栈(Data-Oriented Technology Stack,DOTS)进行重建。DOTS 通过使构建的规模更小,运行速度更快,从而提供了显著的性能优势。这些优势在模拟和机器学习的背景下被放大了。因此,我们一直在内部开发一个为 DOTS 构建的 ML-Agent 版本。我们已经成功地将我们的 DOTS 原型集成到示例场景(见上文)和 Unity 演示中,如 MegaCity 和 TinyRacing。成绩非常出色。我们在标准的笔记本电脑上只用了几个小时就能在 MegaCity 等复杂的大型环境中训练智能体。我们打算在今年晚些时候发布用于 DOTS 的 ML-Agent 实验版本。
请下载上传此视频: https://youtu.be/A740jfboGBw
机器人技术
请下载上传此视频:https://youtu.be/VqR7pEyy5sM
对机器人研究人员来说,Unity 与 NVIDIA PhysX 4.0 已经显著提高了机器人仿真的质量(参见 Unity 2019.3 中的物理学更新)。Unity 2020.1 中包含了由 NVIDIA 的 PhysX 4.1 驱动的新的关节系统,在模拟机械臂和连续关节方面有了显著的改进。它使用 Fratherstone 算法、简化坐标表示法,并采用了新的非线性迭代求解器,大幅减少了关节中不需要的拉伸动作。在实际应用中,这意味着我们现在可以将许多关节串联起来,仍然能够实现稳定而精确的运动。
现在,你可以在 Unity 2020.1(测试版)中开始使用新的关节系统。如果你想尝试使用上面的机器人环境,或者将其作为示例项目来创建自己的机器人环境,请查看 Unity Robotics Demo 项目(与 ML-Agents Release 1 集成)。此外,我们还计划扩展 ML-Agents 中的示例环境,以包含更多的机器人和连续控制环境。
了解如何实现 ML-Agents Release 1
我们与 Immersive Limit 合作开发了 ML-Agents: Hummingbirds,这是 Unity Learn 平台上的一门课程,通过练习、代码演练和有用的讨论,教你如何实现 ML-Agent Release 1。
学习如何训练神经网络来执行一项具有挑战性的任务:让蜂鸟拥有六自由度并沿着复杂的飞行路径到达它们的花朵。在本课程结束时,你将掌握如何利用 ML-Agents Release 1 来创建智能体,并将它们集成到你自己的 Unity 游戏和模拟项目中。
原文链接:
评论