为了不失业,我决定去熬夜打游戏

百家 作者:果壳 2021-07-07 21:58:24

“在人工智能研究的不同历史时期,都会找到不同复杂度的游戏,作为测试人工智能技术主要难题的技术试验场。”


兴军亮

中国科学院自动化研究所研究员



大家好,我是兴军亮,非常高兴能分享我们近几年做的一些研究。我的演讲题目叫《游戏与智能》,就是让人工智能学会怎么打各种游戏。 


游戏、特别是电子游戏,这么多年来一直饱受争议。很多家长都将电子游戏视为洪水猛兽,禁止自己的小孩接触游戏。希望通过今天这个报告,能让大家对游戏的理解更深刻一点



让AI从判断“是什么”

到推理“为什么”


我为什么选择游戏作为自己研究课题呢?


其实,我小时候也是老师和家长眼中标准的好学生,考试都争取考第一,很少接触游戏。到了我博士研究以及工作初期时,做的内容其实跟游戏也没有太大关系。当时我主要研究的是与人脸和人体图像相关的“感知智能”任务,每天都在设计各种人脸人体图像识别的算法。


我们设计了上百种算法,发表了近百篇顶级国际会议和期刊的论文,很多算法也在很多企业中得到了应用。比如大家现在使用的华为手机里面的一些拍照功能,还有一些美颜功能。


我们研究的感知算法,基本上就是在教AI识别“是什么”,即识别图片里是张三还是李四,是车还是桌子等等。但我慢慢发现,如果只是让AI学会识别“是什么”这类问题,离最终想达到的人工智能目标可能相差甚远。


而且到2016年的时候,我感到这个领域已经非常成熟了,再往下做可能将没有空间,甚至会面临失业。


于是我开始思考下一步该做些什么。然后在2016年,阿尔法狗(Alpha Go)横空出世。我们发现让计算机去下围棋这件事情,其实是在解决一个更重要的问题——“认知智能”。



即它不光要知道“是什么”,更要知道“为什么”。它要一步一步地去做,去明白为什么这么做就会赢。由于当时觉得这个问题非常有意思,就开始考虑怎么转向这个研究方向。


无奈之下我开始打各种游戏,甚至常常要熬夜把所有以前没有打过的游戏都拿来研究。不断去学习一些教程,练习自己的手速,希望能通关。打着打着自己都差点上瘾,觉得游戏非常有意思。


但毕竟是做研究,觉得有意思不光是觉得这些游戏玩的时候很有意思,还是觉得游戏里面的设置也非常有意思,非常适合用来研究一些基本的科学问题。


所以在2016年,我坚决地转向了游戏博弈这类问题,并且一直持续做到现在。


游戏为什么

对人工智能如此重要?


大家可能还不能理解,游戏为什么对人工智能有如此重要的意义? 


我们可以简单先理解一下游戏对于自然智能的作用。一些动物,比如小狮子,它在自己能够去捕猎前,都要和自己的一些同伴嬉戏打闹,学习捕猎的本领。人类则更是这样,我们小时候玩各种积木、拼图、过家家等小游戏,其实都是在学习观察这个世界,学会推理,学会与人交流等等各种能力。



所以可以看到,游戏其实对于生物智能的发展起着非常重要的作用。那么对于人工智能,游戏也有可能是它发展的一个必要条件。


那实际情况是什么样呢?在人工智能整个发展历史过程中,游戏确实一直密切伴随着人工智能的发展


早在人工智能创始时期,英国一位被称为人工智能之父同时也是计算机科学之父的伟大科学家——艾伦·图灵,在1950年就提出了一个重要概念——图灵测试


即让一个人向一台隔离的机器和另外一个人提问,如果提问的人没办法分清楚回答问题的是机器还是人,就认为这台机器通过了图灵测试。


图灵测试提供了评估智能机器水平一个非常简单的方法。我们其实也可以把图灵测试理解成一个游戏,一个让人和机器玩猜真假的游戏。


然后在1952年,图灵设计了一款国际象棋的程序,这是第一次运用程序化方法来解决游戏的问题。



接着IBM的研究院的另外一个非常重要的、被称为是机器学习之父的研究者,也是一位很优秀的算法设计师——塞谬尔,在1959年设计了一款具有一定自学能力的程序,他让这个程序学下西洋跳棋


一段时间后,他就发现自己已经打不过这个程序了。随后他让程序继续不断学习,到了1962年,这个程序已经能够打败美国的州冠军,这也是里程碑式的事件。


这是第一次,一个人工智能或者机器学习的程序,在一个比较复杂的游戏中,击败人类的高水平选手。


其实在人工智能发展的不同阶段,游戏一直是测试实验场。1996年,IBM的深蓝计算机使用一种改进的搜索化程序,战胜了国际象棋的世界冠军卡斯帕罗夫,引起了世界性的轰动。


但我们现在知道,当时成功的原因主要还在于IBM深蓝超级计算机非常强的计算能力。虽然可能跟现在的机器没法比,但它在当时已经能够每秒钟评估超一亿种棋盘,使得世界冠军也甘拜下风。


之后到了2016年,就是大家已经非常了解的事件了,阿尔法狗围棋程序战胜了围棋九段李世石,以及之后战胜了围棋排名世界第一的柯洁


阿尔法狗采用了深度强化学习技术,会更加智能。它能够在每秒仅搜索大概6万次左右的情况下,就找到一个很好的答案。


阿尔法狗已经在人类最复杂的棋类游戏中获胜了,但是它是否已经解决了真实的人工智能问题呢?远远没有


围棋这个游戏其实还是非常简单的,它有着明确的规则、确定的边界,并且盘面双方都可以看到整个信息。


围棋的决策复杂度大概是10360,这样的复杂度已经是目前人类解决的最复杂的决策问题之一了,但它跟现实世界中的决策问题实际还相差甚远。比如一些开放环境下的现实决策问题,复杂度会远远超过1010000



比如举办这场智能大会可能要涉及到多个决策环节,需要人们去安排、协调各种事务。如果让阿尔法狗的程序去安排,它肯定是不会做的。但是我们人类就能够很好地、有条不紊地把大会组织起来。所以现有的人工智能技术,离解决真正现实世界中的决策问题还有很长一段距离。


那么如何从百级的指数复杂度跨越到万级的指数复杂度?这就需要一些新环境去测试。那是什么环境呢?答案还是游戏,只不过这一次需要电子游戏。


我们常玩的电子游戏,如《王者荣耀》《星际争霸》《刀塔》等等,它们的复杂度大约都在101000到1010000之间,非常适合用来训练人工智能,超越阿尔法狗。



所以在人工智能研究的不同历史时期,都会找到不同复杂度的游戏作为测试人工智能技术主要难题的技术试验场。为什么游戏会具有这种特性呢?


我们总结了一下,发现游戏其实有很多优点,包括真实模拟、确定边界、上帝标准、无损探索以及有趣益智



这里需要解释一下上帝标准和无损探索。上帝标准就是指,游戏的评测程序实际上是站在上帝的视角评价游戏的参与者,从而能够给他们公正的评分,使得游戏顺利地开展。


而游戏的无损探索指的是什么呢?就是在游戏的环境中你所做出的各种动作,包括打打杀杀,都不会对实际生活产生任何伤害。所以特别适合人工智能的程序在里面任意地探索,任意地做出各种选择,进行各种实验,然后学习得到更好的结果。


小游戏、德扑和麻将:

不输人类的游戏AI


在游戏的试验场中,我带领的研究团队筛选了大量的游戏。下图列出了一些我们主要研究的游戏,包括最简单的单机游戏、麻将这种棋牌类游戏、《王者荣耀》这种实时策略游戏,以及更复杂一点的足球游戏。


在从简单到复杂,从单个智能体到多个智能体的游戏中研发AI


我们首先看看最简单的单机小游戏。大多数这种游戏都来自一个叫雅达利的外国公司,可以说是现代游戏主机的鼻祖。这类游戏有各种各样的类型,包括探索类、竞速类、动作类、射击类、策略类等等。不同的分类能够帮助AI学习不同的能力。



在这种游戏中,人工智能学习的时候跟人类的设定是完全一样的。我们让机器只能看到这个游戏的画面,然后规定它只能输出指定的动作。比如这些游戏中的典型动作就是上下左右、跳跃等等。唯一指引这个机器去学习的动力或者信号,就是在这类游戏中偶尔会得到的一些分数,或者一些奖励。


然后人工智能程序为了最大程度地去获取分数,就会在这里面不断地试验探索,等它找到合适的动作的时候,就会去调整它背后的神经网络模型(可以理解为模拟人类大脑的数学模型),更好地做出更灵敏、更聪明的动作,然后再不断学习。


在这些小游戏上,人工智能程序都能达到人类的操作水平,甚至很多小游戏比人类操作得更好。


我们再用探索类小游戏解释,什么游戏对研究智能有帮助?


下图左侧是一个典型的探索类游戏,里面的智能体就在中间那段小梯子上面。智能体的目标是要走出这个迷宫,而要走出这个迷宫就必须通过右边那扇门,要想走出那扇门就必须拿到左边那把钥匙。底下有骷髅头会让它死掉



一开始它什么都不知道,就在里面不断地试验。经过试验之后,它就能发现一条很好的路径。下图可以看到人工智能最终学了什么样子。



它先跳到梯子那里,然后下去,跳过骷髅头,爬上梯子,拿到钥匙,然后再下去,再跳跃,最后就走出去了。这是一个很复杂的过程。


在这个复杂的决策过程中,它需要不断地去摸索怎么一步步走下去,慢慢地理解为什么要这么走。


而人类在平时生活工作中也会遇到很多类似的情况。比如当面临很多选择的时候,怎么一步步地试验?当失败的时候该怎么办?当有很多候选的时候怎么去选择?这都跟这种小游戏背后的原理很像。


所以,我们去研究这类小游戏,就可以让人工智能更容易理解人的决策过程,并在人工智能不断变聪明的过程中了解人的智能是怎么形成的。


除了小游戏外,我们还做了一款叫德州扑克的游戏AI。游戏规则很简单,每个人先发两张只有自己看得到的牌,然后再发五张所有人都能看到的公共牌。每个人拿着自己的两张牌和公共的五张牌去组合出五张最大的牌,谁更大谁就赢,一般会进行四轮决策过程。它的复杂度跟围棋差不多,都是10的百次方的复杂度。


它的难点在于每个人手上都有两张私有牌。持有的牌小的时候也不一定会输,因为可以假装很大,押很大的注,把对方给吓跑。


这就涉及到不完全信息的博弈问题,非常有意思。


那么,怎么让机器学会打这种游戏呢?我们用了大概十几台电脑,每台电脑上有8个GPU,集中这么大的算力,然后AI不断地自己跟自己打牌。用了大概20多天,总共打了1亿局左右,下图是AI的学习情况。



上方的AI拿了不同色的6和8,这两张牌其实非常小。但是它突然押了一个很大的注,这实际上是AI在虚张声势,在德扑里用专业术语叫诈唬,就是想把对方给吓跑。但是对方没有完全被吓跑,跟着走下去了。



之后AI用自己的牌跟五张公共牌组合,拿到了对8,在这种情况下已经很大了。但它这时候又假装自己很弱,没有押很大的注,因为它生怕把对方给吓跑了。所以这个时候它又耍了一个心思,叫诱敌深入,最后赢了。


所以AI会学习一些类似于人类专业选手才会有的计谋,这也是这种不完美信息博弈最有趣的一个地方。


为了推广这个不完美信息博弈研究的环境,让AI更聪明,也为了让人理解AI的决策过程,我们做了一套德州扑克在线游戏系统(http://holdem.ia.ac.cn),并且对外开放。下面这个视频这是整个系统注册的过程。



在这里玩德州扑克可以两个人玩,也可以多个人玩;可以跟人玩,也可以跟机器玩,还可以跟人和机器一起玩。这里还有各种不同类型的AI,有水平高的,有水平低的;有打法比较凶狠的,有打法比较保守的等等。你也可以选择任何一个对手直接向对方发起挑战,跟它单挑。


这个系统可能是目前国内唯一一个能够公开地打德州扑克的地方,也欢迎大家注册到这个系统中跟AI打扑克,试试AI的水平,也帮助AI不断提升。


我们还做了一款麻将AI。我们选择的具体麻将环境是国标麻将,规则跟平时玩的麻将基本上差不多。


麻将和德扑有一个共性,就是都会有私有信息。麻将的私有信息就是每个人手上拿着的13张牌,面临的三个对手每个人也都有13张牌,即总共有42张私有牌。


所以它相对于德扑来说难度会更大,因为它的不完全信息程度更大。我们打一轮麻将通常要几十个回合才能完,所以它的决策过程也更复杂。


当我们在做这个程序的时候,目标就是不想再像德扑那样靠那么多机器去算,这会特别耗电。我们希望在算力有限的情况下,通过算法的改进,尽快让AI学到比较高的水平。所以我们设计了很多不同的算法策略,进行改进和提升。



上图是AI学了几天麻将后,在其中一个盘面下做的决策结果。如果大家仔细分析一下,尤其会打麻将的人,可能很容易看出它这时去打幺鸡这个决策实际上是经过深思熟虑的,考虑到了各种可能赢的概率,这种考虑的周全程度已经达到了人类高手的水平。


我们之后也会把这个麻将AI放到网上让大家玩。一方面可以帮助AI学习,另一方面提升自己牌技,过年可以多赢点。


多智能体的游戏AI


在刚才的麻将、德州扑克和单机小游戏中,我们做的工作只是让一个智能体学习。实际上,现实中很多问题是需要多个智能体一起学习,而且要相互配合。所以我们又选了《王者荣耀》这款游戏作为研究的对象。


这款游戏大家都很熟悉,特别是年轻人可能每天都会玩。《王者荣耀》的基本设定就是五个有不同的技能的英雄,需要组队去跟另外五个英雄组的队伍打。


同样让AI通过自我博弈进行学习,即让AI自己跟自己打。大家可以看到一些非常有意思的现象,比如下图这三个英雄为了攻击对方武装的一个防御塔,他们会轮番地去冲上去打,保证自己的血量不会一下子被全部打完,轮流承受伤害,打出更好的效果。


轮流抗伤拆塔:为摧毁对方武装防御塔,4名英雄轮流承受防御塔攻击,并将其击毁


同时由于AI是自己跟自己打,这种策略很容易会被学会。所以AI对付对方的时候就会应用下图这个策略,即打的时候专门去打对方血量最少的几个人,把它们很快消灭掉,就不会对我方继续造成伤害。


精准打击能力:孙悟空越过敌方前排英雄,精准击杀后方3个残血目标


所以AI学到了相互克制的策略,呈现出一些非常有意思的结果。这个程序在2020年还参加了腾讯的AI挑战赛,并在第一阶段取得了第二名的成绩。


最后再看另外一个游戏——足球比赛。足球是11个球员跟11个球员对打,这里面的配合、战术、战法都会更复杂,其复杂度又增加了很多个数量级。


这个工作还处于前期,目前取得了一些初步成果。通过下图可以看到很多AI学会了快速突防、门前补射等战术。


快速突防(开球通过两次传球快速突破敌方防守,并射门得分)



 门前补射(当进攻被门将阻拦时,快速补位,并射门得分)


其实现在的AI还只能控制离球最近的这个人,其他的十个人其实都是遵循一些特定的规则去配合他完成的。未来希望能使这11个智能体同时学习,并配合得到更好的结果。


我们也希望这些研究能提升中国足球的水平,得到一些可取的参照经验。当然这还很难。


从游戏直到终极人工智能


那么,游戏除了是AI的一个试验场,是否还有一些更现实的意义?


其实,这些AI技术在各行各业都有非常广泛的应用,最直接的是游戏产业。通过把AI技术引入到游戏的设计、测试以及游戏上线运行的过程中,可以让游戏AI更加聪明,让游戏内容更加有趣,让游戏的情节更加吸引人。



但引进AI后,可能很多学生会更容易被游戏所吸引,所以防沉迷的要求可能会更严格。


除了游戏产业,个人电子助理、推荐系统、无人驾驶、芯片设计、决策支持等所有涉及到需要做出持续决策的领域,也都是游戏AI技术的应用场景。 



我们一直以为,确定了一个目标,接着实现这个目标就好。但实际上在人工智能这个领域有一个很明显的现象,就是一旦一款游戏被攻破,一旦一个目标被实现之后,它所用的这个技术就不属于人工智能了。


这既是一个比较残酷的现实,又给我们不断带来希望。即可以通过更复杂的游戏,让AI不断进步。也许某一天,游戏AI在某个领域战胜了人,但是它还需要去完成一些更复杂的任务,以更好地去帮助人、实现人。


所以这个领域可能不会面临我之前研究视觉问题时面临的失业问题,因为我们会持续地研究下去,直到最后得到一个真正的、终极的人工智能。


谢谢大家。



本文经授权转载自格物论道(ID:SELFtalks),原标题为《为了不失业,我决定去熬夜打游戏 | 兴军亮》,如需二次转载请联系原作者。欢迎转发到朋友圈。

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接