窝牛号

使用机器学习快速训练游戏代理

在过去的二十年中,计算和连接方面的巨大进步使游戏开发人员能够创建范围和复杂性不断增加的作品。简单的线性关卡已经演变成逼真的开放世界,程序算法使游戏具有前所未有的多样性,而不断扩大的互联网访问将游戏转变为动态的在线服务。不幸的是,范围和复杂性的增长速度超过了质量保证团队的规模或传统自动化测试的能力。这对产品质量(例如延迟发布和发布后补丁)和开发人员的生活质量都提出了挑战。

机器学习 (ML) 技术提供了一种可能的解决方案,因为它们已经证明了对游戏开发流程产生深远影响的潜力——它们可以帮助设计师平衡他们的游戏,并使艺术家能够在传统所需的一小部分时间内制作出高质量的资产。此外,它们可用于训练可以在最高水平比赛中竞争的具有挑战性的对手. 然而,一些 ML 技术可能提出的要求目前使它们对生产游戏团队不切实际,包括游戏特定网络架构的设计、实施 ML 算法的专业知识的开发或数十亿帧训练数据的生成。相反,游戏开发人员的运营环境提供了利用 ML 技术的独特优势,例如直接访问游戏源、丰富的专家演示以及视频游戏的独特交互性。

今天,Google展示了一个基于 ML 的系统,游戏开发人员可以使用它来快速有效地训练游戏测试代理,帮助开发人员快速发现严重的错误,同时让人类测试人员能够专注于更复杂和复杂的问题。由此产生的解决方案不需要 ML 专业知识,适用于许多最流行的游戏类型,并且可以训练 ML 策略,该策略可以在不到一个小时的时间内在单个游戏实例上根据游戏状态生成游戏动作。Google还发布了一个开源库,演示了这些技术的功能应用。

支持的类型包括街机、动作/冒险和赛车游戏

最基本的形式就是简单地玩游戏。很多。许多最严重的错误(例如崩溃或脱离世界)很容易检测和修复;挑战在于在现代游戏的广阔状态空间中找到它们。因此,Google决定专注于训练一个可以大规模“玩游戏”的系统。

Google发现,做到这一点最有效的方法不是尝试训练一个单一的、超级有效的代理,它可以端到端地玩整个游戏,而是为开发人员提供训练一组游戏的能力——测试代理,每个代理都可以有效地完成每个几分钟的任务,游戏开发人员将其称为“游戏循环”。

这些核心游戏行为通过传统方式进行编程通常很昂贵,但比单个端到端 ML 模型更有效地训练。在实践中,商业游戏通过重复和重新混合核心游戏玩法循环来创建更长的循环,这意味着开发人员可以通过将 ML 策略与少量简单脚本相结合来测试大量游戏玩法。

将 ML 应用于游戏开发的最基本挑战之一是弥合以模拟为中心的视频游戏世界与以数据为中心的 ML 世界之间的鸿沟。Google的系统不是要求开发人员直接将游戏状态转换为自定义的低级 ML 功能(这会耗费大量人力)或尝试从原始像素中学习(这将需要大量数据进行训练),而是为开发人员提供了惯用的、游戏开发人员友好的 API,允许他们根据玩家观察到的基本状态和他们可以执行的语义操作来描述他们的游戏。所有这些信息都是通过游戏开发人员熟悉的概念来表达的,例如实体、光线投射、3D 位置和旋转、按钮和操纵杆。

正如您在下面的示例中所看到的,API 允许仅用几行代码来规范观察和操作。

赛车游戏的示例动作和观察

这种高级语义 API 不仅易于使用,而且还允许系统灵活地适应正在开发的特定游戏——游戏开发者采用的 API 构建块的特定组合通知Google对网络的选择架构,因为它提供了有关部署系统的游戏场景类型的信息。这方面的一些示例包括:根据它们代表数字按钮还是模拟操纵杆,以不同方式处理动作输出,或者使用图像处理技术来处理代理使用光线投射探测其环境所产生的观察结果(类似于自动驾驶汽车探测其环境的方式)与激光雷达)。

Google的 API 足够通用,可以对游戏中的许多常见控制方案(控制运动的动作输出配置)进行建模,例如第一人称游戏、具有相机相关控件的第三人称游戏、赛车游戏、双摇杆射击游戏等。由于 3D 移动和瞄准通常是游戏玩法的一个组成部分,因此Google创建了自动倾向于简单行为的网络,例如在这些游戏中瞄准、接近或回避。系统通过分析游戏的控制方案来创建神经网络层来实现这一点,这些层对游戏中的观察和动作进行自定义处理。例如,从 AI 控制的游戏实体的角度来看,世界中物体的位置和旋转会自动转换为方向和距离。

为具有操纵杆控件和光线投射输入的游戏生成的示例神经网络。根据输入(红色)和控制方案,系统生成自定义的预处理和后处理层(橙色)。

在生成神经网络架构后,需要训练网络使用合适的学习算法来玩游戏。

强化学习(RL),其中直接训练 ML 策略以最大化奖励,似乎是显而易见的选择,因为它们已成功用于训练高度胜任的游戏ML 策略。然而,RL 算法往往需要比单个游戏实例在合理的时间内产生的更多数据,并且在新领域中获得好的结果通常需要超参数调整和强大的 ML 领域知识。

相反,Google发现模仿学习(IL),它根据观察专家玩游戏来训练 ML 策略,非常适合Google的用例。与 RL 不同,代理需要自己发现一个好的策略,IL 只需要重新创建人类专家的行为。由于游戏开发人员和测试人员是他们自己游戏的专家,他们可以轻松提供如何玩游戏的演示。

Google使用受DAgger 算法启发的 IL 方法,这使Google能够利用视频游戏最引人注目的品质——交互性。由于Google的语义 API 减少了训练时间和数据要求,训练实际上是实时的,使开发人员能够在提供游戏演示和观看系统播放之间流畅地切换。这导致了一个自然的反馈循环,其中开发人员迭代地为连续的 ML 策略流提供更正。

从开发人员的角度来看,提供演示或纠正错误行为就像拿起控制器并开始玩游戏一样简单。完成后,他们可以放下控制器并观看 ML 策略。结果是一种实时的、互动的、高度体验的培训体验,而且通常还有一点乐趣。

FPS 游戏的 ML 策略,使用Google的系统进行训练

Google提出了一个系统,该系统将高级语义 API 与受DAgger 启发的交互式训练流程相结合,该系统能够为各种类型的视频游戏测试提供有用的 ML 策略训练。Google发布了一个开源库作为Google系统的功能说明。不需要 ML 专业知识,并且在单个开发人员机器上培训测试应用程序的代理通常需要不到一个小时。Google希望这项工作将有助于激发 ML 技术的发展,这些技术可以以易于访问、有效和有趣的方式部署在现实世界的游戏开发流程中。

本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除

窝牛号 wwww.93ysy.com   沪ICP备2021036305号-1