再回来看异形AI
我们知道,异形AI是控制异形行为的系统。它永远不会从管理者AI哪里得到有关玩家位置的信息。它会得到的信息包括大概在什么位置进行搜寻。剩下就只能靠自己来找到玩家了。它确实有一些工具可以帮助它找到玩家。第一个是传感器系统,它允许异形接收环境中的音频和视觉提示。诸如脚步声、枪声、门的开启,甚至是运动追踪器的嘟嘟声等噪音,所有这些都有助于异形追踪玩家。音频范围取决于创建的噪音类型。除了音频传感器之外,异形还可以接收视觉传感器,例如瞥见Ripley(某人)跑过去,或看到一扇门在视野中打开等。
异形追捕玩家的另一个工具是搜索系统。(游戏)开发人员已确定有一些特定区域是异形预先编程会搜索的隐藏点。但是,它不会以任何特定顺序去搜索它们,甚至会再次检查已经索索过的区域。当然,如果异形听到噪音或看到视觉提示,它也可能会搜索开发人员没有特别指定的区域。
这个游戏被最常讨论的话题是异形如何随着游戏的进行更多地了解玩家。当它学习关于玩家游戏风格的某些特征时,它所做的动作似乎变得更加复杂。令人惊讶的是,开发人员实现这一目标的方式并不是通过将复杂的神经网络构建到异形的AI系统。为了展示游戏如何实现这种异形学习感,我们需要回顾外星A.I.的行为决策树。
在游戏开始时,这个行为树的某些部分对于异形是屏蔽的。手机游戏出售被屏蔽的区域是异形无法访问的,这意味着它无法实现某些行为和动作。比如说,在游戏开始时,对远处有门打开的声音做出相应的行为树是没有激活的。如果玩家在异形的视野中打开一扇门,它可以解锁行为树的那一部分,以便将来打开门的声音会触发响应。随着玩家在游戏中的进展,越来越多的异形的行为树被解锁。这给人一种幻觉,即异形正在学习并适应玩家的游戏风格。
视频游戏中的遗传神经网络(genetic neutral network)
如果没有至少提及将神经网络应用于视频游戏,那么本文将不完整。最近有一些非常有名的例子,一个是AI击败了专业的Dota 2团队。然而,涵盖这一主题的最佳方式是从小规模开始建立基本的认知,关于神经网络如何学习视频游戏的目标和策略。
为了方便理解,我们选用贪吃蛇游戏作为例子。对于那些不熟悉的人来说,贪吃蛇是一款2D游戏,您可以控制一系列方块(被称为蛇)。你有三种运动选择:左,右或直前。如果你碰到墙壁或撞到你的尾巴,你会立即死亡并重新开始。有一个点可以收集(称为食物),使你的尾巴长出一个方格。所以你吃得越多,你就越长。
让我们想象一下,我们想教我们的蛇如何获得尽可能高的分数。为了让我们的蛇在这个世界上生存,它需要学习一些东西。为了让我们的蛇学习,需要提供有关环境的信息。我们将我们提供的这些信息称为输入。这些输入可以是我们掌握的任何信息。例如,我们的输入可能是以下6个是/否问题:前方是否通畅,左边是否通畅,右边是否通畅,食物是在前边,食物是在左边,食物是在右边(Designing AI,2017)。根据每个问题的答案,这将提供6个输入节点,每个阶段包含两个值1或0。然而,这些输入也可以测量蛇的头部和墙壁之间或它的尾巴或食物之间的距离。为简单起见,让我们仅保留6个输入节点在示例中。
接下来我们需要告诉我们的蛇是我们想要它实现的目标。为了传达我们期望的目标,我们实施奖励制度。例如,我们可能每次向食物移动一步时给我们的蛇1分,并且每次它吃食物并且长度增长时可能会得到10分。然而,当Binggeser(设计AI,2017)为他的蛇实施这些奖励时,他意识到他的蛇只会在一个非常小的圈子里移动。通过这种方式,他的蛇能够在避开墙壁和长尾带来的危险的同时提高积分。显然,这不是预期的结果。在初始模型中需要进行某种类型的惩罚,当蛇离开食物时,它会移除点。这促使蛇主要向食物的方向移动。
所以现在我们有一条蛇,它拥有来自环境的信息和一个定义目标是什么的奖励系统。我们从哪里去?我们的蛇如何真正学会如何玩游戏?在这一点上,快速了解神经网络的实际工作方式将会很有帮助。
分代神经网络(Generational Neural Network)
分代神经网络的结构与标准神经网络的结构相同。它从一定数量的输入节点开始,然后注入到一个或多个隐藏层,最终提供输出。这是一个很好的示例:
对于蛇示例,我们将有6个输入节点,这是我们之前定义的6个是/否问题:前方是否通畅,左边是否通畅,右边是否通畅,食物是在前边,食物是在左边,食物是在右边.每个输入节点通过权重到每个第一隐藏层节点。在图8中,我们看到连接到每个节点的所有线(权重)。这些权重是我们的模型将不断调整的,随着它学习到哪些输入会加强或削弱,从而提供最准确的输出。在我们的例子中,“最准确的输出”被定义为“收集最高分数的蛇”。请记住,我们的蛇获得了向食物移动的分数,它可以获得更多吃食物的积分,并且它也会因为远离食物得到负分。
分代神经网络“学习”的方式是首先确定每一代的大小(假设我们希望每一代都包含200条蛇)。接下来,它为第一代200条蛇中的每条蛇的重量做小的调整,然后它运行第一代的200条蛇中的每条蛇并选择最成功的蛇(获得最多分的蛇)。假设我们选择了在我们的第一代获得最多积分的前10名蛇(前5%)。这10条蛇随后成为第二代的“父母”。这10条蛇的权重会用于定义第二代的起点。第二代200条蛇的表现将再次对这些权重做小的调整,最佳表现者将被选为第三代的“父母”,依此类推。
回到贪吃蛇游戏中来:
所以,正如我们上面所看到的,我们可以反复运行我们的第一代蛇形模型(我们上面运行了200次),通过稍微改变每个权重,看到蛇出现的各种变化。然后,我们选择将继续影响第二代神经网络权重的最佳表现者。我们会为每一代重复这个过程,直到蛇的学习速度开始趋于平稳(换句话说,直到分代进步减缓或停止)也许在第一代,第二代和第三代中,没有一条蛇吃到过一块食物,因此从未得到过食物奖励的10分。然而,也许在第四代一条蛇就会吃到一块食物。这条蛇可能拥有当代蛇中最高的分数,因此将被选中以影响后代。基于最成功的蛇祖先,将改变后代的权重。经过10代,100代甚至1000代之后,您可以想象会学到多少。
视频游戏AI技术在现实世界中的应用
正在视频游戏行业中使用的相同类型的强化学习也正成功应用于其他行业。例如,已经预先编程了“交通规则,道路和汽车物理”(Luzgin,2018)的侠盗猎车手(Grand Theft Auto)游戏已经被用来为测试自动驾驶汽车算法提供安全和现实的环境。它不仅安全而实际,而且与现实世界相比,在虚拟环境中收集数据的速度也快了1000倍(Luzgin,2018)。
“视频游戏是训练人工智能算法的一种很好的方式,因为它们旨在让人类思维逐渐进入更难和更难的挑战。”(Luzgin,2018)
A.I.的最新进展之一视频游戏是由Open AI的研究人员制作的。Open AI创建了一个基于算法的游戏,其唯一目的就是以自然的好奇心探索。奖励系统专注于奖励进一步进入游戏的探索。研究人员将这种好奇心驱动的模型放入了超级马里奥兄弟的游戏中,它成功地通过了11级,纯粹是出于好奇心的驱动。显然,这有一些缺点,因为它需要巨大的计算能力,机器很容易分心。然而,对于第一次玩游戏的人类玩家来说,这也是相同的。正如Luzgin在他的文章中所提到,“婴儿似乎采用无目标探索来学习将来在生活中有用的技能。”这种无目标探索的感觉在整个生命中持续存在,但最明显的例子还是探索视频游戏的虚拟环境。
总结:
有许多形式的A.I.在今天的视频游戏行业中使用。无论是简单的FSM模型还是可以从环境中的反馈中学习的先进的神经网络,都为AI的发展提供了无穷无尽的可能性,无论是游戏行业还是其他行业。(完)