请选择 进入手机版 | 继续访问电脑版

查看: 254|回复: 0

[技术] Unity机器学习代理ML-Agents Toolkit v0.5发布

[复制链接]

1144

主题

1840

帖子

2万

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
24070
QQ
发表于 2018-9-13 02:23:28 | 显示全部楼层 |阅读模式
我们致力于让Unity成为人工智能研究的首选平台。近期我们发现社区涌现出非常多关于Unity机器学习的实践,例如:OpenAI通过Unity训练机械手来执行抓取任务;加州大学伯克利分校的团队使用Unity来测试基于好奇心学习的新方法等。

本文我们将分享ML-Agents Toolkit推出全新的改进内容和资源,以实现我们为AI研究社区提供更多支持的使命。

本次更新包含:
1、全新版本ML-Agents toolkit v0.5,具有更灵活的行为规范和课程;
2、关于ML-Agents和Unity平台的研究论文;
3、Gym接口,以便帮助研究者更轻松地将ML-Agents环境集成到训练工作流程中;
4、学习环境的全新套件,它能仿造许多深度强化学习研究者使用的连续控制基准(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),因为其目标是为了让代理学会快速持续地奔跑。我们将提供这些环境给研究社区使用,针对经典任务提供处理基准算法的简单方法。

01.png


这些环境是在Joe Booth的帮助下实现的,他是一位游戏行业的资深机器学习研究者,下面是Joe Booth的一些感想。

“我想知道OpenAI、DeepMind和其它平台关于连续控制和运动的研究是否能应用于现代游戏引擎,例如:Unity和PhysX。试想在未来,游戏设计师可以输入想要动画的视频链接,然后AI会模拟该行为,并同时应对变化的环境,这效果会非常酷!通过创建框架在Unity中实现这些基线,开发者可以逐步取得进展。

在实现论文或创新想法时,开发者可以先测试简单的模型,例如:Hopper模型,从而确信该结果可以扩展为更为复杂的模型;例如:Walker或Humanoid,你可以了解如何在研究中将这个循序渐进的做法用于管理动态环境、控制器和风格转换器。

我希望了解别人如何使用马拉松环境。加入Gym后,我们能够为ML-Agents带来更多的前沿算法,例如:HER和MAML。最后,我非常高兴能在机器学习社区中贡献自己的一份力量。”

更多功能介绍
扩展的离散动作空间(Expanded Discrete Action Space):我们改变了离散动作空间的工作方式,允许使用此空间类型的代理一次性进行多个动作选择。ML-Agents之前的版本只允许代理一次选择一个离散动作,ML-Agents v0.5允许为代理创建动作分支,每个分支可包含不同固定数量的可选行为。

当得到请求时,代理会在运行时为每个分支选择一个动作。这意味着现在可以让代理在所选的方向上移动并跳跃,就像WallJump中的情况一样。我们还修改了BananaCollector环境,使该环境中的代理能够移动、转身和发射激光。

02.png


离散行为遮罩(Discrete Action Masking):在特定情况下,应禁止代理执行某些具体动作。例如:如果代理在空中时,它无法跳跃。在v0.5中,你可以为代理下一决策指定不可能动作。在收集观测时,你可以为代理的每个动作分支指定一个或多个不可能动作。代理在下一决策阶段不会尝试执行指定的这些动作。这意味着可以轻松避免代理执行不可能动作,而且不需要在动作方法中编写额外代码。

03.png


我们修改了GridWorld环境,以便遮蔽不合理动作,例如:让代理尝试穿进一面墙。这样代理不会在探索网格时浪费时间,从而加快学习速度。参考下图,对比有无动作遮罩时的学习过程。

04.png


元课程(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-Technol ... ee/master/gym-unity

Gym:
https://github.com/openai/gym

Gym接口工具包:
https://github.com/Unity-Technol ... ee/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)!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表