AlphaGo完胜李世石之前,还记得总在游戏里虐你的“电脑人”吗?业界

品玩 / 董鸿昌 / 2016-03-26 11:07
看到AlphaGo以4:1碾压人类最优秀的围棋选手时,我的第一反应是,唉,小学时我就下不过小霸王学习机上的“象棋大师”了

看到AlphaGo以4:1碾压人类最优秀的围棋选手时,我的第一反应是,唉,小学时我就下不过小霸王学习机上的“象棋大师”了,

如果你从小就爱玩游戏,那很多年前,你应该就接触过AI(人工智能)这个词,很多游戏的单机模式用它来指代由程序控制的电脑玩家,我和小伙伴们统称之为“电脑人”。

不知道你的经历如何,我学习游戏的过程基本就是被“电脑人”惨虐的过程:红色警戒,开局对方一阵异常猛烈的攻势经常让我撑不过5分钟;CS(反恐精英),电脑人飘忽不定的走位和精准的枪法也时不时让我怀疑人生;最惨的是Dota,AI的反应速度简直是神级水准,最初学习游戏的很长一段时间,杀一次AI都会让我兴奋半天。

Dota的游戏画面

Dota的游戏画面

为什么我们对这些游戏里的AI早就习以为常,却对AlphaGo这个人工智能系统战胜李世石大惊失色,开始认真考虑机器会不会取代人类?如果你有类似的疑问,那就来了解一下游戏AI是怎么工作的吧。

“我就静静地等着你来唤醒”

很多MMO游戏(大型多人在线游戏)走的就是这个路子,游戏里的NPC(非玩家角色)出现的时间、地点,遇到NPC后续的剧情等都是提前设定好的,玩家在完成游戏任务的过程中,按照提示和NPC相遇,就能触发预设的剧情。

这是最简单的游戏AI类型之一,实现难度也不高,主要依赖一种被称为“有限状态机”的解决方案,即当满足某种状态时,AI才会从一个状态转移到下一个状态,而且状态总数是有限的,这也是游戏AI实现更高级的动作的基础。

网络游戏中的NPC

网络游戏中的NPC

如果你接触过编程,简单来说“有限状态机”就是一堆if else语句:“如果玩家点了对话,AI就把任务告诉他”,“玩家完成了一个任务,AI就把奖励给他”……

当然,这类AI的缺点也不言自明:即使从表面来看,它也太不智能了。

“对面有一个敌人,砍!对面有一群敌人,跑!”

像CS(反恐精英)这样的射击游戏和Dota这样的即时战略游戏,AI就需要做一些复杂的事情了。

在玩CS时,你会发现“电脑人”有时会蹲下瞄准射击(准确度最高但也最容易被击中),有时又会选择跑动射击(准确度降低但可以躲避子弹);在Dota中,电脑控制的英雄有时会坚决地试图击杀你,有时看到你又掉头就跑。

CS GO中的“电脑人”

CS GO中的“电脑人”

这个时候,游戏AI在什么情况下执行什么状态就需要一个决策支持系统。知乎用户韦易笑用篮球游戏AI解释了何为决策支持系统,如果又兴趣你可以进一步了解。

简单来说,游戏AI要根据当前的游戏情况来确定首要目标是进攻还是防守,之后,再根据不同的情况决定具体的策略。

比如在一场篮球游戏中,整个球场被划分为若干个相同的格子,球员和篮板所在格子的距离、球员和球员之间的距离等都会有一个分值。当球在AI手中时,它的首要目标就是进攻,具体执行防守策略时,持球队员和防守队员之间的距离、和队友间的距离、和篮筐的距离都会有一个分值,这些分值根据不同的加权相加,会得到一个总分数。AI根据这个总分值确定接下来采取的行动。

这一类AI就聪明多了,毫秒级的响应速度让它们反应迅速,操作犀利,游戏的初学者通常很难战胜他们。

“你下一步,我已经算出了之后的12步”

在五子棋、国际象棋、围棋等游戏中,AI的行动同样依靠类似的决策支持系统,对当前局面下的每一种合法走法所直接导致的局面进行评估,然后选择“获胜概率”最高的局面所对应的那个走法。

和要在毫秒之间做出反应的即时战略游戏不同,的计算时间比较宽裕,游戏规则也更加明确。不过,这并不意味着这类AI的开发难度更低。拿国际象棋来说,每盘旗大约80步,每一步有35种可选下法,所以要计算35^80种情况,大概是10^124。而在人类已经观测到的宇宙中,原子的数量才10^80个。即使是对每秒可以计算2亿步棋的“深蓝”超级计算机来说,这个数字也过于庞大。

深蓝和国际象棋大师卡斯帕罗夫对弈 AP Photo/George Widman

深蓝和国际象棋大师卡斯帕罗夫对弈 / AP Photo/George Widman

所以,“深蓝”还采用了剪枝算法。通俗来说就是,“深蓝”在下棋时会往前看几步(比如12步),然后对棋局进行打分(分数越大表明对我方越有利,反之表明对对方有利),并将该分数向上传递。当搜索其他可能的走法时,会利用已有的分数,减掉对我方不利对对方有利的走法,尽可能最大化我方所得分数,按照我方所能得到的最大分数选择走步。

所以,理论上来说,当AI的搜索 ,也就是能往前看的步数大于人类时,它获胜的概率就大大提高。“深蓝”战胜人类象棋大师,是一个里程碑式的事件。

为什么AlphaGo值得我们特别关注

回到开头的问题,为什么AlphaGo战胜李世石值得我们特别关注呢?

首先,相比国际象棋,围棋的复杂程度是呈指数级上升的。即使在深蓝战胜人类最优秀的国际象棋大师后很多年,能和职业围棋手过招的人工智能依然迟迟没有突破,甚至就在比赛前,多数意见都认为AlphaGo战胜李世石。

AlphaGo做到了,它依靠的是“两个大脑”:政策网络(policy)和价值网络(value network),前者用来预测下一步,后者用来预测棋盘上不同的分布会带来什么不同的结果。

政策网络可以把非常复杂的搜索树减到可操作的规模,AlphaGo只需要从几十种最有前景的“下一步”中选择一种;价值网络则能减少搜索的 ,AlphaGo不用往下看几百步,只需要搜索最有价值的10-20多步。

还有更不一样的,AlphaGo并不是只会下围棋,它背后的人工智能系统一种具有广泛适应性的强化学习模型,也就是说,用同样一套算法,它可以下围棋,也可以玩打砖块、太空侵略者等。



1. 遵循行业规范,任何转载的稿件都会明确标注作者和来源;2. 的原创文章,请转载时务必注明文章作者和"来源: ",不尊重原创的行为 或将追究责任;3.作者投稿可能会经 编辑修改或补充。


阅读延展

1
3
Baidu
map