[服务开发团队Jeon Jeon Jeon]
由 Unity 发布的 ML-Agents 是一款用于在游戏环境中创建虚拟角色的开源工具。您可以创建游戏环境,并通过强化学习等算法学习可以在环境中操作的NPC角色(Agents)。 v1.0 于 2017 年首次发布,一年前发布,上个月发布了 v2.0,具有支持多个代理的训练等能力。
该工具包作为开源发布,由 18 个示例学习环境组成,这些环境是为代理移动对象或朝着特定目标移动而设计的,它提供了创建新环境的指南。
默认情况下,ML-Angets pytorch(https://pytorch.org) 基于 onnx(https://onnx.ai) 在 Unity 中使用转换后的模型。它支持 AI 研究人员熟悉的 Colab 环境中的示例,并与 OpenAI 的健身房环境兼容。即使你对学习算法没有太多的了解,也可以使用最新实现的算法,指南文档做得很好。
下面,我们测试了 v2.0 中新增的合作行为训练示例。这是Dungeon Escape环境,它是ML-Agents的例子之一,在3个agent和1个龙的环境中,agent必须在龙逃跑之前杀死它才能获得钥匙逃出地牢。基本上,3个特工被分组在一起,当你逃离地牢时你可以获得奖励。
在这种环境下,起初,代理似乎在徘徊,但随着您的学习,您可以看到他们迅速逃离地牢。以下视频是学习了大约 200 万步的结果。我能够快速杀死龙并看到他们离开地牢。
我想给这些代理一个新的环境并测试它,所以我设置了一个环境,当龙被杀死时给代理一个惩罚(-1点奖励)以进一步研究。预训练的模型也经过了很好的再训练,所以我在之前训练的模型中添加了一个新的惩罚环境,并重新训练了大约 200 万步,我能够看到龙主动回避(?)。
其实在意料之中,杀龙是对个体的惩罚,但是在整个群体都得到奖励的环境下,我以为另外两个agent会采取行动将一个agent推开,但这种行为是没有显示,因为杀了有惩罚,不能杀龙出地牢,所以可以看到团整体奖励降低了。它是链接的,以便您可以使用张量板查看学习过程。
如果您对如何使用 Unity 和学习算法有简单的了解,则可以使用 ML-Agents 创建有趣的环境和游戏角色。
github: https://github.com/Unity-Technologies/ml-agents