- +1
计算机是如何玩游戏的?

全文共4799字,阅读大约需要8分钟
本报记者
张明悦 信息科学技术学院2017级硕士研究生
李华双眼紧紧注视着屏幕,额头浸出了汗珠,鼠标点击的频率达到了每秒5次。面对着如潮水般涌来的虫族战士,他将鼠标键盘扔在一旁,转头向我求助:“你说这游戏咋玩啊,太难了。”
我微微一笑,用鸭嘴笔沾了一下他的快乐水,写下两个洋文。
李华心领神会,啧啧称叹,“Game theory,游戏理论,想必书中定有制胜之道。”
工欲善其事必先利其器:博弈论
Game Theory,并非字面上的“游戏理论”,它通常被翻译为运筹、对策,更广为接受的译法则是“博弈论”。
一个博弈,通常有七个要素,玩家,行动,信息,策略,收益,结果和均衡,博弈论的目的就是利用玩家、行动和结果构成的博弈规则来预测均衡。以星际争霸为例,玩家即游戏中的参与者;行动即为游戏中每个参与者可进行的操作;信息即为玩家在游戏中可以获得的一切知识,例如对手的行动,地图信息等;策略即为玩家在给定信息后,采取行动的一整套方案,例如前期出机枪兵持续骚扰;收益即为玩家在游戏结束后的胜负或者得分情况;结果即为游戏结束后,玩家感兴趣的整局游戏的数据;均衡是指当所有玩家都采取最优策略的组合。
“妙啊,如此看来,给定一个博弈就可以计算出均衡,然后按照均衡策略进行操作。”李华暗喜。
博弈可以分为动态、静态、完全信息、不完全信息,星际争霸这种游戏,可以粗略地划分为不完全信息动态博弈,而囚徒困境则是完全信息静态博弈著名的例子。
先看更简单的情况,完全信息动态博弈。围棋,象棋便是这类博弈的典型,可以用博弈树的方法来表示。图中红色方块表示玩家1的决策节点,蓝色方块表示玩家2的决策节点,白色方块表示玩家1在采取最后动作后可得到的收益,特别地,这个博弈还是一个零和博弈,即双方的收益和始终为零。

△图片来源:Artificial Intelligence and Games
如此一来,一个完全信息动态零和博弈就可以用Minmax的方法来求解:从最底层的决策节点出发(逆向归纳法),玩家1在每个节点上选择使得分数最大的动作,将收益标记在该节点上,如第三层左一节点,选择左,得分为10,该节点分数记为10。底层节点标记完后,玩家2在倒数第二层决策节点选择使得分数最小的动作,例如第二层左一节点选择右,得分为5,该节点分数记为5。倒数第二层处理完后,同样的方法处理倒数第三层,以此类推,直到最终到达最顶层节点(根节点),结束Minmax操作,这样在树上形成的一条轨迹(粗线)即为均衡解。为了简化操作,不用把整棵树都遍历,可以采用Alpha-Beta剪枝的方法,把不必要的搜索节点剪掉。
“完美!”李华决定将围棋的博弈树画出来,再用Minmax的方法求解,“如此一来,就能拳打李世石,脚踏柯洁了。”
很遗憾,三天过去了,李华终究没能完成这个设想。19x19的棋盘,棋局不超过3的361次方局,排除掉不合理与重复的棋局,约有 2.08x10170 个,计算量之大无法想象。李华终其一生,也无法完全展开围棋的Game树。
也正是在这个狭小而又广阔的棋盘上,一代又一代围棋程序应运而生,从Monte Carlo Go (1993),MoGO (2006),一直到AlphaGo (2015),AlphaZero (2017),计算机的围棋水平最终超过了人类。
尧造围棋,以教子丹朱:在游戏调教下的人工智能
传说,尧的儿子丹朱倔强傲慢,见识短浅,于是尧设计出围棋来教育丹朱,提升他的姿势水平。无独有偶,“人以AI愚,故作游戏以教之”,科学家们对于用游戏来考验人工智能一直乐此不疲,双陆棋、国际象棋、围棋、德州扑克,以至于星际争霸、雷神之锤,成为了人类父亲教育AI儿子最常用的教材。
李华频频点头,“看来这就是我整夜play game的理由。”
AlphaGo的取胜之道核心还是博弈树,不过它采用了蒙特卡洛树搜索 (MCTS) 、CFR (Counterfactual Regret Minimization) 技术、UCT算法、深度强化学习等一系列新的技术,对围棋的每个局面进行精准而又高效的估值。估值的准确性和计算效率是一组矛盾,被称作“探索-利用”困境,探索是指搜索更多的区域,利用是指根据目前的估值选择最佳的行动。很显然,探索越多,计算所消耗的时间也越多,但会使对局面的估计更准确,而利用越多,计算所消耗的时间越短,但会使对局面的估计更不准确。
先前几代“古老”的围棋程序,没有学习的能力,还需要人类提供棋谱或者对局面的指导意见,但随着算法对围棋的博弈树搜索得越来越有效,AlphaZero终于成功完全抛弃了人类的指导,实现所谓“左右互搏”的自学习。
在围棋这类完全信息博弈上彻底碾压了人类以后,AI的教材转向了不完美信息博弈,例如扑克、麻将、桥牌等。这类游戏中,信息是不对称的,我知道我的牌,并不知道其他人的牌,这样构造出的博弈树,每个节点的信息集中可能有多个值。(注:完全信息不等于完美信息,前者是指博弈中没有不确定性,一切行动包括自然都被所有玩家观察到;后者是博弈树的每个节点的信息集只有一个值,更细致的解释可参见《博弈论与信息经济学》第1、2章)
信息的不对称,给人类的聪明才智以极大的发挥空间,技艺高超的玩家可以熟练运用虚张声势、欲擒故纵、声东击西等各种策略来欺骗误导对手以取得胜利。如此以来,人工智能需要的计算量更大了,新的技术也随之被提出。从Bridge Baron (1997),PsOpti (2001),Wbridge5 (2005),Libratus (2017),一直到Pluribus (2019),人工智能在桥牌、两人不限注德州扑克、六人不限注扑克上都击败人类玩家取得了胜利。

李华心生不满,“AI既是如此强大,以子之矛攻子之盾,何如?”
OpenAI在Dota2,星际争霸2中击败了顶级人类玩家之后,就开始了这项“矛盾”的工作。他们设计了一个有草地,有森林,有障碍物,有猎物,有水源的虚拟世界,一百余名AI玩家降生在该世界,他们有饥饿度、口渴度,在这个世界中进行探索、狩猎、饮水、战斗,而猎物是有限的,且被吃掉后必须等一段时间才能出现新的一只。每个AI玩家的目标是活下去,延续生命每一秒。

这种多个人工智能玩家的场景中,这些玩家被称作“agent”,智能体。图中,两个智能体相遇后,直接互相发射远程武器,没有任何战术,这种战斗最终往往以一方被击杀,另一方残血而结束。但经过漫长的学习以后,这些AI玩家不仅会这样“菜鸡互啄”,还学会了暗中观察,闷声发大财等人生经验。

△图中的三个智能体,左右两个智能体在进行战斗,中间的智能体躲在障碍物背后,等战斗结束后,再和剩下的那个智能体战斗,坐收渔翁之利

△图中的智能体逃避同任何智能体的战斗,安心地在森林中捕食猎物
更有趣的是,研究人员还发现,在这个受丛林法则支配的世界,尽管AI玩家之间不时会发生战斗,但总体上形成了“和平共处”的局面。图中不同颜色的线条表示不同AI玩家的行动轨迹,AI玩家并没有满地图到处跑,而是固定在一定的区域内进行狩猎和饮水,很有一种划分领地的意味。而当两个AI玩家相遇时,很多情况下都不会发生战斗,而是各自离开。

△图中的线条表示不同AI玩家的行动轨迹
如果猎物也变成了受人工智能控制的游戏玩家呢?伦敦大学学院计算机系的汪军团队设计了一个捕食者-被捕食者的虚拟自然界,有老虎和羊两个物种,每个个体都由人工智能的算法(强化学习)来控制,最终出现了和自然界中相似的结果——图中捕食者与被捕食者数量的周期性波动,正符合生物学中的Lotka-Volterra模型对种群规模变化规律的预测。

教不严,师之惰:被训练成“智障”的人工智能
在游戏中训练智能体和巴甫洛夫当年训练狗在原理上很相似,计算机领域称之为“强化学习”(reinforcement learning)。人类将智能体放到游戏环境中,并规定当智能体实现某些操作,就获得一定的奖励分数,就像当狗乖乖站好,并且汪汪汪叫三声时,就给它食物。
强化学习使得智能体可以在没有人“调教”的情况下,自己在游戏中进行探索。AlphaGo的设计者David Silver在2013年利用深度强化学习算法训练AI,在Atari 2600游戏上取得了和人类相当的水平。

△从左到右,AI分别学会了玩乒乓球、打方块、打入侵者、玩潜艇和发炮弹
然而,AI学习所遵守的规则还是以人类的思维方式进行的,在设计过程中难免会出现漏洞,而以不同于人类方式学习的AI常常就会钻规则的空子,进行一些稀奇古怪的操作。
比如在HalfCheetah任务中(控制一个多关节的行走机器人),AI就学会了不少奇技淫巧:

△魔鬼的步伐

△倒着走路更健康

△单脚走路更炫酷
在另一个赛艇任务上(CoastRunners),AI又学到了一种亦可赛艇的方法。它似乎找到了游戏中的bug,偏离了正常的赛道,找到了一个环礁,在那里不断地转圈刷分。

此外,还有一系列“人工智障的骚操作”:要求AI体把木块挪到桌子的指定地点,它的方案是挪桌子;要AI进行闯关,它决定在闯过第一关后自杀,这样既取得了第一关的胜利又不会在第二关失败;要AI学会踢足球,由于碰触到球有奖励,所以它在抢到球之后就开始高速振动,从而在短时间内尽可能多次地碰触到球……
这些神奇的操作促使研究者进行反思:一个学习算法,它很难理解,或者说不能确切地理解人类想要它做的事。尽管算法可以在某些测量指标上获得很高的分数,但在测量指标衡量范围之外的一些情况下,它们很可能会采取一些意料之外的动作,从而带来危险。
授人以鱼不如授人以渔:通用对弈游戏
睿智的李华敏锐地发现,AI在游戏中击败人类本来就很正常,文明、帝国时代、红色警戒这些游戏都可以调节AI难度,最难的AI,人类玩家有时也是很难对付的。那么,为什么从AlphaZero到AlphaStar,学界、工业界乃至于民间都给予游戏AI如此高度的关注呢?
游戏AI,在某种程度上算一个通用人工智能的隐喻。先前的计算机程序在某些游戏上确实能达到或者超过人类水平,但有两个很大的局限:其一,一个计算程序只能玩一种游戏,不具有通用性;其二,设计程序时仍旧需要大量人类的经验,虽说是人工智能,其实还是人类的智能。普通的游戏开发商在设计游戏AI时,走了很多后门,比如提高AI在生产、攻防、视野等方面的能力,降低人类玩家在这方面的能力,由人类给游戏AI制定策略。这种游戏智能并不是真正的智能。
AlphaZero和AlphaStar吸引眼球的是在于它所谓的“通用性”,“学习能力”,这种游戏AI的策略不是人教给它的,而是它自己学到的。通用对弈游戏(general game playing,GGP)正是致力于开发一种能够以人类水准玩任意游戏的人工智能系统,无论游戏是已知或未知都能胜任。迈出了这一步,进而就可以期望实现开发一种可以像人类一样完成各种任务的人工智能系统。

尾声
“所以,我现在能够愉快地来一局游戏了么?”李华放下手中那本厚厚《Artificial Intelligence and Games》。
“从实践中来,到实践中去吧。”我帮他打开了文明6,“要不就从这个不完美信息动态博弈开始?”
李华犹豫了片刻,“看在精炼贝叶斯纳什均衡的份上,我就玩五十回合?”
次日拂晓,我起身看床下:
“泡面外卖肥宅水,再下一城便入睡。忽见俗世天已晓,只恨文明五百回。”随着胜利音乐的响起,李华吟诵着一曲“烂柯诗”,便觉一切索然无味。
参考资料
[1] https://tromp.github.io/go/legal.html
[2] https://botzone.org.cn/static/gamecontest2019s.html
[3] 《博弈论与信息经济学》
[4] Artificial Intelligence and Games
[5] 通用对弈游戏:一个探索机器游戏智能的领域
[6] A Study of AI Population Dynamics with Million-agent Reinforcement Learning
[7] Concrete AI safety problems
[8] Neural MMO: A Massively Multiagent Game Environment for Training and Evaluating Intelligent Agents
[9] https://mp.weixin.qq.com/s/jYyAxh5epSziWcgYb1nNgA
图片来源于网络
本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问http://renzheng.thepaper.cn。





- 报料热线: 021-962866
- 报料邮箱: news@thepaper.cn
互联网新闻信息服务许可证:31120170006
增值电信业务经营许可证:沪B2-2017116
© 2014-2026 上海东方报业有限公司




