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

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

兴军亮

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

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

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

让AI从判断“是什么”

到推理“为什么”

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

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

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

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

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

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

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

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

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

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

游戏为什么

对人工智能如此重要?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

小游戏、德扑和麻将:

不输人类的游戏AI

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

为了推广这个不完美信息博弈研究的环境,让AI更聪明,也为了让人理解AI的决策过程,我们做了一套德州扑克在线游戏系统(


转载请注明:http://www.tenyituan.com/zybs/zybs/202206/14208.html


当前时间: