从雅达利游戏机到如今的手游,电子游戏已经走过了数十年的发展史,从青少年的“毒品”变成了社会主流的新娱乐。去年以来,《绝地求生》席卷了国内,似乎人人口中都念叨着“吃鸡”两个字。此后相关的手游也层出不穷,但玩家们逐渐发现在低段位下,似乎一局中大部分都是AI机器人。它们枪法差反应迟钝,看起来就是给玩家“送快递”的。但这些或者处处阻挠玩家,或者与玩家并肩作战而无所不在的AI,恰恰是游戏中真正的“头号玩家”。它们的发展伴随机器学习的进步,是人工智能在虚拟世界中的直接应用。如果把棋类也看做是游戏,那么前两年出现的AlphaGo则代表了游戏AI在未来的无限可能。

在早期的游戏中,比如《超级玛丽》、《魂斗罗》等,AI控制的怪物遵循着固定的行为模式。玩家可以先观察清楚它们的逻辑,再据此做出选择。此时游戏AI其实就是“脚本”,执行着一次性或者循环的指定行为,跟其他的游戏背景环境也没有太大区别。此后,为了给玩家增加更多的变数,“事件”被引入了。AI开始观察环境或玩家,当出现了一定条件时,AI会改变自己的行为逻辑。典型的例子比如1987年的《合金装备》,其中的游戏AI原本处于巡逻模式,当遭遇玩家后会表示惊吓并进行报警。在后来的《帝国时代》、《星际争霸》、《魔兽争霸》系列的地图编辑器中,事件也作为一个关键功能,可以让玩家自己DIY出复杂的剧情。比如《帝国时代2》中,就有大神甚至制作了总计120张地图的完整三国剧情。

为了进一步复杂AI的逻辑,“状态机”又出现了。游戏单位会拥有多种状态,每种状态下表示出不同的行为,再通过一定的规则在各状态间进行切换。一些足球游戏中,明显能感觉到AI会在比分落后、时间不多时疯狂上抢。这是因为AI存有上百种队伍状态,根据比分、时间、球的位置、球队的不同,AI的状态和球队打法都会不一样。在战术层面上AI使用的是“状态机”,而在个体球员层面上选择就更为复杂,需要使用“决策树”。决策树是机器学习中的常用算法,通过递次判断输入数据中各特征的值来进行输出。足球的球员AI是因为影响因素太多,比如球的距离、敌方距离、队友距离、边界距离等,用状态机来表示的话状态太多,故使用决策树来对这些特征逐一判断。比如防守时,球的距离太远就盯人,球的距离很近敌方也很近又在禁区时就解围。

上述的“脚本”、“事件”、“状态机”、“决策树”构成了绝大部分的游戏AI,游戏中你有时会觉得这样的AI已经很聪明了,需要不停使用SL大法才能过关。但严格说起来它们还不算人工智能,并不具备真正的学习能力,实际上你对抗的是游戏程序员。而真正能让AI变的无可匹敌,让AlphaGo得以击败人类的,是“强化学习”。强化学习说白了就跟训练宠物似的,AI做的对就奖赏,做错了就惩罚。所谓对与错的判断标准,可以是能否击败玩家,能否获得高的分数等。而奖赏与惩罚,也就是增加或者削减此前行为的权值。游戏中使用“强化学习”的还不多,有《黑与白》、《最高指挥官》等。貌似知名的《红色警戒3》中AI也会根据玩家前几局的常用战术进行针对,但是否使用了强化学习并不确定。

在深度学习出现后,Deepmind团队(后加入Google)将其与强化学习结合起来,构建了深度强化学习,并以此来训练AI玩经典的雅达利游戏,获得了比人类更好的成绩。所谓深度强化学习,也就是先使用深度卷积神经网络来对当前的游戏图像进行识别,自动提取出所需信息,再根据这些信息进行强化学习。在此基础上,DeepMind开发了围棋程序AlphaGo,先后战胜了李世石与柯洁。围棋可谓中国的传统国技,是一个规则简单、状态数却近乎无穷的游戏。对于19*19的棋盘,共有361个点,每个点可以有白子、黑子、无子3种状态,故棋盘有3^361种情况,约等于10^172。因此,无法靠搜索或保存每一种情况来编写AI。

为了了解AlphaGo的算法,我们先来反思自己是如何下棋的:首先是开局,记住一些固定的套路,并根据对手的开局进行固定的应对;接下来是中盘,这时候的变化太多,经常得自己在心里推演一下,“我这么下,对方会怎么下,我又再如何应对...”;甚至有时情况太复杂,我们推算几步之后还是无法确定这么下好不好,只能再凭感觉(棋感)来判定好坏;根据推算的结果和所剩时间,决定就这么落子,或者再来推演其它的下法;最后到了终盘时,能下的位置已经不多了,也许可以直接推算到比赛结束,完全不用依靠感觉了。AlphaGo的算法就恰恰完全重现了这一套思路,可以算是对人类下棋方式的彻底模仿。只不过因为电脑的计算能力优势,AlphaGo可以比人类算的更远,从而在中盘奠定胜利。

AlphaGo首先依靠一个卷积神经网络,把当前的棋盘和过去几步的落子等信息输入进去,输出应该下在哪里。这个决定落子的网络被称为“策略网络”,其网络参数由人类的棋谱训练得到。由于人类的常见定式可能就那么几十种,策略网络能很好的学会如何开局。中盘时,AlphaGo依靠“蒙特卡洛树”结合策略网络来进行推演,即:先依靠策略网络下几步,再根据之后的局面是好是坏,来修改这几步的权值;如此反复推演成千上万次,并在接下来的推演中综合策略网络的结果、各个位置的权值和推演次数来综合决定下一次尝试哪几步。以机器学习的思想来看,需要这么做本质上是因为策略网络不够强大(训练用棋谱不够多),因而无法完全用“判别式模型”(完全依靠训练数据生成模型)直接解决问题。加上下棋时允许机器有一定的思考时间,故可以结合“生成式模型”的思想(模型的生成需要测试数据)。那么在下了几步之后,又如何判断局面是好是坏呢?AlphaGo使用了两种方法:“价值网络”和“快速走子”,分别代表着棋感与推算到底。代表棋感的价值网络,也是一个卷积神经网络,结构其实和策略网络一模一样,就是在其基础上又多使用了自我对弈的棋谱作为输入(强化学习)。之所以策略网络没有使用自我对弈,可能是想保留人类的开局定式。而代表推算到底的“快速走子”,也是在策略网络的基础上进行简化,提升了网络的运行速度,从而可以快速的一直模拟到对局结束,再直接用输赢结果作为反馈。最终的局面判断,则是对价值网络与快速走子各进行1/2加权的综合结果。

可以看到,AlphaGo就像“要你命3000”一样是个大杂烩,其结合了“策略网络”、“蒙特卡洛树”、“价值网络”和“快速走子”四种方法,包含“深度学习”、“判别式模型”、“生成式模型”、“强化学习”和“推演到底”五种思想。但上面也提到了,价值网络和快速走子其实都是由策略网络变化而来,那么能不能把它们合并呢?AlphaGo的下个版本AlphaGo Master正是这么做的——用价值网络代替了策略网络,并删掉了快速走子,完全用价值网络来预估局势。同时用最新的Resnet来构建价值网络,并以AlphaGo的自我对局来对价值网络进行训练,从而大大提升了网络的精确度。如此改进后的AlphaGo Master在对战平台上横扫了人类顶尖选手,并在乌镇以3:0完胜柯洁。但DeepMind并没有停下,他们继续把网络的输入也精简到只有棋盘和此前几步的落子信息,并完全去掉了人类棋谱,从零开始只通过纯自我对弈来训练网络!后来的结果我们都知道了,AlphaGo Zero由此诞生,3天走过人类千年围棋史,40天击败了AlphaGo Master,震撼了整个机器学习界。

彻底征服围棋后,DeepMind开始向《星际争霸2》进军,这一决定令无数游戏玩家感到兴奋。《星际争霸》在1998年由大名鼎鼎的暴雪推出,奠定了如今火爆的电子竞技产业,被誉为“上帝借暴雪之手赐予玩家的神作”。因为它变化丰富,单位和机制众多,却又拥有“完美”的平衡性,当然星际的单位模型、配音和剧情也都堪称顶级。星际在韩国几乎是国民游戏,出现了众多顶级职业选手,特别是“Boxer”,其开创的“微操”概念让人们惊叹不已,极大的扩展了星际的复杂性和生命力。《星际争霸》的AI已经有很多了,它们战术打的有模有样,微操更是没话说(参见“悍马2000”),但大多都还是用脚本、状态机、决策树写成。2017年10月31日,韩国选手stork(人称“总司令”)在世宗大学举办的对抗赛中轻松吊打了三大最强星际AI,包括Facebook开发的使用了机器学习的“Cherry Pi”,让人们看到星际确实比围棋难以征服的多。这主要是因为:1.众多的单位、属性、技能、规则、地图。2.战争迷雾,并且有幻象和隐形单位,建筑也可以取消建造。3.人族星轨、神族传兵、虫族虫洞等宏机制。4.Apm(每分钟操作数)限制,如果存在限制,则需详细计算每个操作的长短期收益。

《星际争霸2》本质上和《星际争霸》其实也区别不大,主要是单位的寻路更加智能化,部队也更容易聚团。星际2本来在国内一度陷入低谷,但依靠星际老男孩scboy7年来的坚持,如今看的人还是挺多的(因为想玩好比较难..)。scboy最早由黄旭东、MsJoy、F91、周宁组成,特长是天南地北的海聊(相声),以真挚的情感唤起了80后90初的集体记忆。后来黄旭东和F91等人又一步步牺牲自己成为了“谐星”,以“毒奶”和“智障”(又称“守护者”)著称,又吸引了很多90后00后加入到星际2中。我很有幸见证了这一段欢乐而“伟大”的历史,细节先在此不表。DeepMind很清楚《星际争霸2》无法在短期内用AI征服,他们去年和暴雪共同发布了星际2AI研究环境SC2LE,并且DeepMind将其进一步封装成了PySC2,希望通过开放平台来加速星际2 AI的研究。PySC2基于python,使用资源数、人口数和数个游戏画面层等作为输入,与人类玩家获得的信息一样,各个画面层包括单位归属、单位血量、是否选中、地形高度等。而输出的指令包括框选、移动、攻击、建造、使用技能等,并且指令输出的频率受apm限制以保证公平性;另外每类指令又有相应参数要给定,总的可能指令数达到了10^8左右,远超过围棋(19*19)。为了降低任务的复杂性,DeepMind基于PySC2先尝试解决了7个小游戏,分别是坐标寻路、寻找收集矿物、寻找消灭跳虫、枪兵vs蟑螂、枪兵vs毒爆跳虫、采集矿物和瓦斯、建造枪兵,这相当于对一局比赛的常见情况做了分解。DeepMind在这些小游戏里得到了较高的得分,但显然这离完整的比赛还有相当距离。

 

数十年来,人工智能科学家们努力分析和模仿人类的行为模式,并把成果应用在各类游戏中。虽说可以与人交流的网游充满魅力,也能让远方的朋友仿佛近在咫尺。但年少时,那些或简单或宏大的单机游戏,就像一个个神秘而别致的世界,其中的NPC或者让我们恨的咬牙切齿,或者充当引路人带我们探索世界,有许多角色令人难以忘怀。后来,我们逐渐清楚了他们的行为逻辑,知道他们只是按部就班不会改变,看起来其实傻乎乎的。但新的未来正在展开,古老的角色有望展现出全新的生命力。过去游戏AI的进步,就像人类中一个呱呱坠地的婴儿到学会了分辨物体学会了爬行,而如今,它们正要开始学习拼积木,去真正领悟创造力,《星际争霸2》正是下一个美妙而复杂的积木。当然,要等到AI真正与《星际争霸2》顶尖职业选手登上比赛舞台的那一天,相信还需要更多突破性的进步,就让我们共同期待吧~

真正的头号玩家——游戏AI相关推荐

  1. 《资讯:元宇宙》(Yanlz+VR云游戏+Unity+SteamVR+云技术+5G+AI+区块链+NFT+绿洲+头号玩家+平行宇宙+虚拟世界+Pico+Oculus+Soul+立钻哥哥++==)

    版本 作者 参与者 完成日期 备注 YanlzXR_Metaverse_V01_1.0 严立钻 2021.09.08 元宇宙(Metaverse) 元宇宙是现实世界在虚拟世界的"映射&quo ...

  2. 流利说林晖:AI+ 教育的头号玩家,这盘棋怎么玩?

    2018 年 9 月 27 日 ,流利说在纽交所挂牌上市,也成为了今年继尚德机构.精锐教育.朴新教育.安博教育后的第5家美股教育上市公司.IPO完成后,流利说的交易代码为"LAIX" ...

  3. 游戏开发论坛_集聚全球“头号玩家”重庆游戏产业加速融合创新

    图为2020线上中国国际智能产业博览会全球游戏产业创意创新论坛现场. 韩潇 摄 中新网重庆9月11日电(韩潇刘心羽)"IP不是赚快钱的工具,不能精心制作只会血本无归."10日,20 ...

  4. 想和《头号玩家》一样爽?你只需要Get玩游戏的新姿势

    近期,大导演斯皮尔伯格执导的热门影片<头号玩家>,再次点燃了80后.90后年轻人对游戏的极大热情.很多人都希望能够在游戏中获得酣畅淋漓的娱乐体验.拥有真正属于自己的爆款装备.又或者是跟小伙 ...

  5. 玩游戏还是很羡慕吗?《头号玩家》的VR到底是结合多少技术?

    <头号玩家>,一次是数位版,一次是3D版.几乎是两次不同的体验.坦白说,<头号玩家>剧情本身很稀松平常,无外乎宅男逆袭一路高潮到底抱得美人归的起点爽文式故事,但其中的「情怀」大 ...

  6. ​《头号玩家》中的“绿洲”,用 VR 可以找到

    图源:百度百科 出品 | AI科技大本营(ID:rgznai100) 2045年,现实世界令人失望,人们将救赎的希望寄托于"绿洲",一个虚拟游戏宇宙.人们只要戴上VR设备,就可以进 ...

  7. 盘点《头号玩家》里的 VR 技术,现在就能造个 Oasis 出来

    来源:沉浸感丨公众号   作者: 刘芳平 由史蒂文·斯皮尔伯格导演的科幻电影<头号玩家>(Ready One Player)于 3 月 30 日在中国大陆上映.首个周末便收获广泛好评,登上 ...

  8. 别把大数据夸上天,请留意《头号玩家》剧情里给你留下的忠告

    科幻电影<头号玩家>取材自同名小说,作者是美国作家恩斯特·克莱恩(Ernest Cline),他是一位编剧和小说家,该作品完成于 2011 年,也是他的第一部小说. 最近该影片上映后万人空 ...

  9. VR市场巨头云集,这家公司异军突起成头号玩家

    2012年,Oculus Rift通过国外知名众筹网站KickStarter募资到160万美元,成为VR(虚拟现实)行业的开端.VR将虚拟与现实世界合二为一,让用户穿越时空身临其境,听上去确实极具魅力 ...

最新文章

  1. 最强干货实践教程 | YOLOv5在建筑工地中安全帽佩戴检测的应用
  2. Spring MVC(三)--控制器接受普通请求参数
  3. oracle exp cluster n,oracle cluster verfication utility failed
  4. 并发-分布式锁质量保障总结
  5. 本地远程连接阿里云Windows服务器并上传文件的方法
  6. 我们在 web 应用开发过程中经常遇到输出某种编码的字 符, 如 iso8859-1 等, 如何输出一个某种编码的字符串?...
  7. 微信小程序点击事件和长按事件
  8. (python初学者)利用python画简单几何图形
  9. Python3 语音识别谷歌验证码
  10. eclipse项目名前出现红色感叹号,小红叉解决(转)
  11. 【C++】队列优先队列详解——deque.queue.priority_queue
  12. 运维工程师岗位职责、职业路线和常用工具
  13. 什么是压测,为什么要进行压力测试?JMETER工具的使用
  14. switch中的参数类型
  15. oracle lms进程 内存,【案例】Oracle ges resource消耗内存高报错ORA-04031 MOS解决办法...
  16. 电脑用户须知 忘记分级审查密码怎么办(转)
  17. ATL属性包(PropertyBag)
  18. 《怪诞行为学》精粹(一)--为什么我们喜欢比较和攀比
  19. 白话空间统计之:Moran's I(莫兰指数)
  20. C语言——贪心算法。设计一个算法,把一个真分数表示为埃及分数之和的形式。所谓埃及分数是指分子为1的分数。例如3/5=1/2+1/10

热门文章

  1. 【外贸入门必读】老鸟实战经验20则
  2. ajax参数xhrfields,使用xhrFields可以将进度功能添加到jQuery.ajax()中吗?
  3. CFA三级考试内容你了解吗?
  4. linux 输入法框架,常用输入法框架简介 - 微信公众号:算法与编程之美 - OSCHINA - 中文开源技术交流社区...
  5. pythonbyte转int_Python将byte数组转换为int
  6. C#生成的exe无法在32位的XP系统运行
  7. PIX飞控电流计设置
  8. css 遥控器界面,智能电视用户体验设计之遥控器篇
  9. 我国改革开放和现代化建设中一些实际问题的思考
  10. MATLAB处理数据,掌握这几个小技巧就够了