欢迎来到游戏世界。
没听过Unity没关系,你肯定对王者荣耀、纪念碑谷、神庙逃亡2、Pokémon GO等游戏了如指掌。没错,Unity就是它们的游戏引擎。
今天,Unity宣布推出Unity Machine Learning Agent(ML-Agent),将游戏引擎连接到谷歌TensorFlow等机器学习框架中。通过深度强化学习算法,让非玩家角色(NPC)通过不断尝试和犯错,变得更有创造性和策略性。
在游戏开发的过程中,既不能让玩家因过于简单而无聊,也不能因难度太高丧失玩家兴趣。Unity开发者Arthur Juliani表示,Unity的ML-Agent将帮助增加游戏的可玩性。
△ Unity工程师自述ML-Agent在游戏开发中的意义
过去,开发人员需要手工编写代码,让训练环境中的相互作用逐步训练Agent,典型场景是一个单一环境+紧密耦合的Agent。Agent的动作改变环境状态,环境反馈给Agent各种奖励。
△ 典型的强化学习训练循环
Unity希望设计一个系统,让游戏引擎更灵活易用。因此,Unity推出了ML-Agents,并且发布了开放测试版SDK。ML-Agents SDK让开发者可用Python API将Unity Editor中创建的游戏和模拟场景转换成可被深度强化学习、进化策略或其他机器学习方法训练的环境。
△ 在ML-Agents中配置学习环境的可视化描述
对任何学习环境来说,Agent、Brain和Academy是必不可少的三大对象。
每个Agent都可以有独特的状态和观察值,可在环境中单独采取动作并获取奖励。Agent的行动由与之相关的Brain决定的,每个Brain定义一个特定的状态和动作空间,并负责决定关联的Agent将采取哪些动作。之后,Brain将信息汇总到Academy中,定义了环境的范围,比如引擎配置、跳帧控制、场景长度等。
Agent、Brain和奖励不同的连接方式能创造不同场景,因此,Unity的ML-Agents够解锁各种训练场景。对于训练Agent的新手来说,Unity提供了典型的环境配置示例,并解释了如何用ML-Agents SDK创建它。
Unity在官方博客中展示了一些不同场景的训练实例,经过一段时间的训练,Agent的表现都很惊人:
△ 30秒内训练Agent玩3D平衡球
Unity游戏引擎能高精度模拟现实场景,比如物体的纹理、光效、材质等。Unity AI和机器学习技术部的副总裁Danny Lange在接受采访时表示,Unity的ML-Agents的作用并不局限于虚拟游戏,还将加速现实生活中机器人等技术的进步。比如对自动驾驶行业来说,可以在计算机生成的但逼真的虚拟环境中较为真实地训练它们。
最后,附Unity官方博客介绍:
https://blogs.unity3d.com/cn/2017/09/19/introducing-unity-machine-learning-agents/
及ML-Agents GitHub代码:
https://github.com/Unity-Technologies/ml-Agents
祝你玩得愉快~
— 完 —