人工智能(AI)在游戏中的应用(下)
再回来看异形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的发展提供了无穷无尽的可能性,无论是游戏行业还是其他行业。(完)
人工智能(AI)在游戏中的应用(下)相关推荐
- 人工智能(AI)在游戏中的应用(上)
AI在视频游戏中的应用 副标题:游戏AI技术的发展现状以及在视频游戏领域的应用概览 (原作者:)Written by Laura E. Shummon Maass and Andy Luc 大多数人可 ...
- 2017败北清单:人工智能在这些游戏中战胜了人类
原文链接:点击打开链接 摘要: 20世纪90年代后期,IBM深蓝(Deep Blue)研究了一系列的国际象棋算法,期望于打败当时的世界冠军加里•卡斯帕罗夫(Garry Kasparov).终于,在19 ...
- 深度强化学习的人工智能在游戏中的运用:游戏AI入门及AI优化指南
前言: 现如今,所有电子游戏都离不开AI的运用,对于游戏策划而言AI是什么,AI又是如何运作,可以说是面试时的加分项,本文在这里不探讨理论的AI(采用深度强化学习的智能AI,如腾讯AI Lab.网易伏 ...
- 游戏中的AI及实用算法逻辑
这篇文章就不加具体的项目代码了,毕竟"敲代码是只是在一栋大楼设计好后具体的搬砖工作",程序猿贵在对这张图纸的设计好坏.再者这个话题我这车开的还不够稳,讲多了就翻车了.所以就跟大家分 ...
- 完成全球90万人工智能集装箱箱况残损检验,集装箱人工智能垂直领域领军者,中集集团人工智能企业中集飞瞳领跑全球港口航运人工智能AI
中集集团人工智能企业CIMCAI中集飞瞳完成全球90万人工智能集装箱箱况残损检验,集装箱人工智能垂直领域领军者,领跑全球港口航运人工智能AI.CIMCAI中集飞瞳集装箱人工智能应用全球集装箱各垂直领域 ...
- 全球No.1港口航运人工智能企业中集飞瞳,港航人工智能AI产品成熟化标准化大规模应用,先进核心技术为港口船公司大幅提效降本智能化
全球No.1港口航运人工智能AI企业 CIMC中集飞瞳,港航人工智能AI产品成熟化标准化大规模应用,先进核心技术为港口船公司大幅提效降本智能化.中集集团[000039]人工智能企业CIMC中集飞瞳是全 ...
- CIMCAI中集飞瞳成熟港口人工智能AI产品方案,打造高产出投入比的新一代高效能智能码头智能化港口智慧码头解决方案智能化港区口岸
CIMCAI中集飞瞳成熟港口人工智能AI产品方案Ceaspectus™,打造高产出投入比的新一代高效能智能码头智能化港口智慧码头解决方案智能化港区口岸.CIMCAI中集飞瞳是全球应用落地最广,规模最大 ...
- 中集集团全球港航人工智能高科技独角兽中集飞瞳贯彻国家关于世界一流水平的超大型智能港口,全球顶尖AI核心技术超一流智能港口解决方案
科技部<关于支持建设新一代人工智能示范应用场景的通知>,首批支持建设智能港口等十个示范应用场景,打造世界一流水平的超大型智能港口,形成覆盖码头运作.运行监测与设备健康管理的智能化解决方案. ...
- 中集集团全球港航人工智能高科技独角兽中集飞瞳贯彻国家智慧港口战略,全球最先进港航AI核心技术和工业级产品超一流智慧港口解决方案
科技部发布<关于支持建设新一代人工智能示范应用场景的通知>,首批支持建设智慧农场.智能港口.智能矿山等十个示范应用场景.中集集团全球港航人工智能高科技独角兽CIMCAI中集飞瞳,全球最先进 ...
最新文章
- 青龙羊毛——帮多多(教程)
- Visual Studio2017 安装教程(走过的坑绝不再走)
- vi 查看最顶部_5分钟带你进入 Vim 大门,让你喜欢 Vim
- Python流程控制语句
- 从零开始的AI·机器学习の基本概念
- python考试pass or fail_python-pytest学习(十二)-标记失败xfail
- ‘vagrant up’ fails to mount linked directory /vagrant
- R语言绘制ROC曲线如何画在一个图中
- LeetCode 1769. 移动所有球到每个盒子所需的最小操作数(前缀和)
- 【会议】2008-10-27
- python下雨动画特效_pygame用blit()实现动画效果
- shutdown TCP ports,blocked all malicious scan
- 在Ubuntu上运行C++程序
- java用volatile或AtomicBoolean实现高效并发处理 (只初始化一次的功能要求)
- android 多行文字水印,android实现文字水印效果 支持多行水印
- JavaScript:日期选择器组件的使用
- Redis(RedisTemplate)使用hash哈希
- 脏读、不可重复读与幻读和spring事务传播方式
- 大专java方向校招面试找工作知识点技术栈以及实习感受分享-简历分享
- String类中getBytes()方法的使用
热门文章
- php 判断手机和电脑,php 判断是手机版还是电脑端
- mac远程桌面连接windows_web浏览器通过Myrtille连接Windows远程桌面
- pyinstaller打包exe在其他机器无法运行_详解pyinstaller selenium python3 chrome打包问题!解决率100%...
- 机器学习基础-LASSO-07
- SpringCloud个人笔记-01-Eureka初体验
- fragment入门
- 第一节、Alex 讲解 python+mysql 交互;
- iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements
- LInux查看文件内容
- kubernetes(k8s)架构和组件,工作流程 ,资源