Notifications
Article
Unity机器学习代理ML-Agents Toolkit v0.5发布
Updated 3 months ago
289
0
我们致力于让Unity成为人工智能研究的首选平台。近期我们发现社区涌现出非常多关于Unity机器学习的实践,例如:OpenAI通过Unity训练机械手来执行抓取任务;加州大学伯克利分校的团队使用Unity来测试基于好奇心学习的新方法等。
本文我们将分享ML-Agents Toolkit推出全新的改进内容和资源,以实现我们为AI研究社区提供更多支持的使命。
本次更新包含:
  • 全新版本ML-Agents toolkit v0.5,具有更灵活的行为规范和课程;
  • 关于ML-Agents和Unity平台的研究论文;
  • Gym接口,以便帮助研究者更轻松地将ML-Agents环境集成到训练工作流程中;
  • 学习环境的全新套件,它能仿造许多深度强化学习研究者使用的连续控制基准(Continuous Control benchmarks)。
特别说明:本文中涉及的资源下载或者参考说明,请访问文末“参考资源”章节。

关于Unity作为AI平台的研究论文

随着Unity和ML-Agents工具包逐渐广泛用作研究平台,我们收到了大量请求,希望我们发表介绍Unity平台的论文用于参考。于是,我们在arXiv发表了《Unity: A General Platform for Intelligent Agents》。在该参考文献中,介绍了我们对Unity作为仿真平台的愿景,它能构建和扩展其它类似平台的功能,文献还概述了研究工具ML-Agents工具包,探讨了基础设计和其它功能。
我们还使用近端策略优化(Proximal Policy Optimization)算法为示例环境提供了基准测试结果,部分Unity成员提供了用于对比的人类基准测试结果。有了这些基线,我们希望看到各研究小组得出更好的成果,在更多示例环境中取得“超越人类”的表现。

Gym接口支持

在首次发布ML-Agents工具包时,我们提供了自定义Python API,用于Unity训练环境与机器学习工具的交互。这是因为我们想提供强大灵活的方法来交互环境,它不受限于现有规则。该功能允许我们启用包含多代理和多大脑学习的情景,该情景还带有复杂的混合观测空间。
研究社区有许多人咨询了Gym包装器在这些环境的可用性。Gym是现今比较流行的与模拟环境交互的标准化方法。因此我们这次发布的Gym接口,将能用于交互Unity环境。如果你是一位使用Gym来构建实验管线的研究者,通过该接口你可以轻松将Gym环境换为Unity环境。

马拉松环境介绍

去年,社区成员Joe Booth使用ML-Agents工具包将连续控制基准的经典集合,在Unity环境中重新实现了出来,该基准经常在深度强化学习文献中出现。
使用的环境包含Walker、Hopper、Humanoid和Ant环境,它们基于DeepMind Control Suite和OpenAI Gym中的环境制作。我们将这些环境统称为马拉松环境(Marathon Environments),因为其目标是为了让代理学会快速持续地奔跑。我们将提供这些环境给研究社区使用,针对经典任务提供处理基准算法的简单方法。
这些环境是在Joe Booth的帮助下实现的,他是一位游戏行业的资深机器学习研究者,下面是Joe Booth的一些感想。
“我想知道OpenAI、DeepMind和其它平台关于连续控制和运动的研究是否能应用于现代游戏引擎,例如:Unity和PhysX。试想在未来,游戏设计师可以输入想要动画的视频链接,然后AI会模拟该行为,并同时应对变化的环境,这效果会非常酷!通过创建框架在Unity中实现这些基线,开发者可以逐步取得进展。
在实现论文或创新想法时,开发者可以先测试简单的模型,例如:Hopper模型,从而确信该结果可以扩展为更为复杂的模型;例如:Walker或Humanoid,你可以了解如何在研究中将这个循序渐进的做法用于管理动态环境、控制器和风格转换器。
我希望了解别人如何使用马拉松环境。加入Gym后,我们能够为ML-Agents带来更多的前沿算法,例如:HER和MAML。最后,我非常高兴能在机器学习社区中贡献自己的一份力量。”

更多功能介绍

1.扩展的离散动作空间

扩展的离散动作空间(Expanded Discrete Action Space):我们改变了离散动作空间的工作方式,允许使用此空间类型的代理一次性进行多个动作选择。ML-Agents之前的版本只允许代理一次选择一个离散动作,ML-Agents v0.5允许为代理创建动作分支,每个分支可包含不同固定数量的可选行为。
当得到请求时,代理会在运行时为每个分支选择一个动作。这意味着现在可以让代理在所选的方向上移动并跳跃,就像WallJump中的情况一样。我们还修改了BananaCollector环境,使该环境中的代理能够移动、转身和发射激光。

2.离散行为遮罩

离散行为遮罩(Discrete Action Masking):在特定情况下,应禁止代理执行某些具体动作。例如:如果代理在空中时,它无法跳跃。在v0.5中,你可以为代理下一决策指定不可能动作。在收集观测时,你可以为代理的每个动作分支指定一个或多个不可能动作。代理在下一决策阶段不会尝试执行指定的这些动作。这意味着可以轻松避免代理执行不可能动作,而且不需要在动作方法中编写额外代码。
我们修改了GridWorld环境,以便遮蔽不合理动作,例如:让代理尝试穿进一面墙。这样代理不会在探索网格时浪费时间,从而加快学习速度。参考下图,对比有无动作遮罩时的学习过程。

3.元课程

元课程(Meta-Curriculum):课程学习是项很棒的功能,它能够随着代理的进步,创建难度逐渐提高的环境。该功能在ML-Agents v0.2引入,在v0.5中得到改进。新的元课程功能可以让你在多大脑环境中创建课程情景。你可以分别为每个大脑指定课程。还可以创建学习环境让多种代理按各自节奏进行学习。我们还为WallJump环境加入了课程示例。

参考资源

  • 下载ML-Agents Toolkit v0.5
https://github.com/Unity-Technologies/ml-agents
  • 马拉松环境下载:
https://github.com/Unity-Technologies/ml-agents/tree/master/gym-unity
  • Gym:
https://github.com/openai/gym
  • Gym接口工具包:
https://github.com/Unity-Technologies/ml-agents/tree/master/gym-unity
  • OpenAI通过Unity训练机械手来执行抓取任务
https://blog.openai.com/learning-dexterity/
  • 使用Unity来测试基于好奇心学习
https://pathak22.github.io/large-scale-curiosity/
  • 连续控制基准
https://github.com/deepmind/dm_control
  • 近端策略优化
https://arxiv.org/abs/1707.06347
  • Unity: A General Platform for Intelligent Agents
https://arxiv.org/abs/1809.02627

结语

我们希望了解研究社区如何利用这些新资源和改进功能。我们计划在将来通过新版本继续支持研究社区和游戏开发社区。
如果有任何评论,反馈或问题,请在GitHub的Issue页面联系我们,或是通过ml-agents@unity3d.com给我们发邮件。请尽情享受使用Unity ML-Agents进行机器学习训练代理的快乐吧!更多Unity机器学习相关内容介绍尽在Unity官方中文论坛(UnityChina.cn)!

Unity China
379
Comments