文章来源:ATYUN AI平台
游戏中的人工智能机器人通常是通过手动编码来构建一系列游戏智能的规则。在很大程度上,这种方法在使机器人模仿人类行为方面做得更好。然而,对于大多数游戏来说,究竟是机器人打游戏还是真正的人在打游戏还是很容易区分的。如果我们想让这些机器人表现得更像人类,是否可以不再手动编码来构建游戏规则?如果我们只是让机器人通过观察人类打游戏的方式,让它了解游戏,那会怎么样呢?
我们需要通过一个游戏探索这一点,在这个游戏可以收集记录人类玩游戏的数据。FIFA就是这样一个游戏:能够玩游戏并记录我在游戏中的动作和决定,让我可以训练一个端到端的深度学习机器人,而不用硬编码一个游戏规则。
这个项目的代码以及经过训练的模型可以在这里找https://github.com/ChintanTrivedi/DeepGamingAI_FIFA.git
游戏机制
构建这种机器人的关键性机制是:工作时不需要访问任何游戏的内部代码。游戏窗口的一个简单的屏幕截图就是输入机器人游戏引擎的全部的东西。它处理视觉信息,并输出它想要的动作,通过一个按键模拟来传达给游戏。并不断地重复上述步骤。
现在我们已经有了一个框架来给机器人提供输入,并利用它的输出控制游戏,我们来到了有趣的部分:学习游戏智能。分两个步骤来完成:(1)通过使用卷积神经网络来理解屏幕截图图像,(2)使用长短期记忆网络根据对图像的理解来决定适当的动作。
步骤1:训练卷积神经网络(CNN)
CNN以其高精确度的图像检测能力而闻名。再加上快速的GPU和智能网络架构,我们有一个可以实时运行的CNN模型。
为了让机器人理解输入图像,我使用了一个非常小的轻载和名为MobileNet的快速CNN。从这个网络中提取的特征图谱代表了对图像的高层次理解,就像玩家和其他对象位于屏幕上一样。然后使用该特征图谱与单发多功能盒一起检测球场上的球员以及球和球门。
步骤2:训练长期短期记忆网络(LSTM)
既然我们已经了解了图像,我们就可以决定我们想要做什么。然而,我们不能只根据一个框架就采取行动,而是更希望根据这些图像的短序列采取行动。这就是LSTM的由来,它们以能够在数据中建模时间序列而闻名。在我们的序列中使用连续帧作为时间步骤,并使用CNN模型提取每个帧的特征图谱。然后,它们同时被送入两个LSTM网络。
第一个LSTM执行任务,学习玩家需要做什么动作。因此,它是一个多类分类模型。第二个LSTM得到相同的输入,并决定使用横穿、通过、传递和射门中的某一动作:另一个多类分类模型。然后将这两个分类问题的输出转换为按键,以控制游戏中的动作。
这些网络已经通过人工操作的数据进行训练,并记录输入图像和目标按键。
评估机器人的性能
我不知道用什么准确的方法来判断机器人的性能,除了让它参与到游戏中。在仅仅400分钟的训练之后,机器人已经学会了向对手的球奔跑,在发现目标的时候向前传球和投篮。在第FIFA 18的初级阶段,它已经在6场比赛中踢进4个球,比保罗·博格巴在17/18赛季的进球还要多。
在我的YouTube频道上可以找到机器人与内置机器人对抗的视频片段,视频如下。
精彩视频点击链接:国外大神建立了一个深度神经网络来玩FIFA 18
结论
我对这种构建游戏机器人的最初印象是积极的。在训练有限的情况下,机器人已经掌握了游戏的基本规则:向球门移动,把球射向球门。在有更多的训练数据的情况下,我相信它很快就可以接近人类水平,这对于游戏开发者来说是很容易的。此外,将模型训练扩展到从真实的比赛场景中学习,将使机器人的行为更加自然和真实。
本文转自ATYUN人工智能媒体平台,原文链接:国外大神建立了一个深度神经网络来玩FIFA 18
更多推荐
RetentionScience:Apple的隐私策略对电子商务意味着什么