大悟读书网 > 经济管理 > 人工智能革命:历史、当下与未来 > 取胜之匙 ——深蓝的“算”与阿尔法狗的“想”

取胜之匙 ——深蓝的“算”与阿尔法狗的“想”

图3-4 人工智能系统阿尔法狗

阿尔法狗的核心则在于“想”。与专用硬件深蓝不同,阿尔法狗是一套能够运行在通用硬件之上的纯软件程序。它汲取了人类棋手海量的棋谱数据,并依赖人工神经网络(Artificial Neural Network)和深度学习(Deep Learning)从这些数据中学会了预测人类棋手在任意的棋盘状态下走子的概率,模拟了以人类棋手的思维方式对棋局进行思考的过程。阿尔法狗算法的形成可以分为三个阶段:

图3-3 国际象棋计算机深蓝

●第一阶段——拜师学艺:阿尔法狗根据彼此无关的盘面信息模仿专家棋手的走法,通过海量盘面数据训练出一个监督式策略网络,这个策略网络随后就能以超过50%的精度预测人类专家的落子;

●第二阶段——左右互搏:阿尔法狗将过往训练迭代中的策略网络与当前的策略网络对弈,将对弈过程用于自我强化训练,对现有策略网络的改进使阿尔法狗对弈当时最强的开源围棋软件Pachi的胜率达到85%;

围棋的棋盘状态远比国际象棋复杂,以穷举法进行最优落子策略的推演无异于痴人说梦。事实上,顶级的围棋棋手更多地依赖模糊的直觉来评判特定的棋盘状态的好坏。但理性的推演与感性的判断之间似乎存在着不可逾越的巨大鸿沟,对于计算机程序而言,依赖直觉是不可能的事情。因此并没有显而易见的方式来将国际象棋领域的成功复制到围棋上——直到阿尔法狗的横空出世。

●第三阶段——融会贯通:阿尔法狗在自我对弈中随机生成新的训练数据,用以训练局面价值网络。价值网络、策略网络和蒙特卡洛树搜索相融合,用于预测和评估棋局未来可能的发展方式。

可是,用穷举的方式来下围棋呢?

拜师学艺完成后,阿尔法狗就可以中规中矩地下一盘棋了。在某种意义上,这是一种意识流的下法,胜负不在算法的考虑范围之内。而左右互搏的目的就是引入胜负:让策略网络和自身进行对弈,来获得一个给定的棋盘状态是否为胜利的概率估计,以此作为对棋盘状态的评估方式。最后,通过将评估方式和对下法的搜索进行融会贯通,选择那个给出最高棋盘状态评价的下法。不难看出,阿尔法狗并非从一个基于很多围棋细节知识的评价系统开始,而是让神经网络和机器学习扮演核心角色。它使用了两个各司其职的神经网络:策略网络和价值网络。策略网络的作用是选择下一步的走法,可以降低搜索的广度;价值网络的作用是评估盘面优劣,可以降低搜索的深度。通过连续不断做出微小改进的方式构建策略网络和价值网络,阿尔法狗就形成了类似于人类棋手所谓的关于不同棋盘状态的直觉的效果(当然也使用了搜索和优化的思想)。

图3-2 2016年人工智能系统阿尔法狗对阵围棋世界冠军李世石

策略网络本质上是个监督式学习(Supervised Learning)的过程,通过学习千万数量级的职业棋手棋谱来训练落子位置的预测模型。它有着专一的目标:完全不考虑输赢的概念,只关注预测对手落子的精确性。在2016年1月刊发在著名科学期刊《自然》的封面文章中,阿尔法狗预测对手落子位置的正确率是57%,这个数据在和李世石对弈时显然又得到了相当的提升。阿尔法狗的策略网络与类似的传统算法区别有二:一是左右互搏的引入:通过基础版本策略网络和进阶版本策略网络之间的对弈,让基础网络快速习得高手的落子策略,形成一个比进阶更进阶的策略网络,这个新形成的策略网络又被用来进一步提高原始的进阶版本策略网络……经过两千万次“青出于蓝而胜于蓝”的循环修正后,策略网络才达到现在的水准;二是局面判断的设计:选择下一步的走法时,策略网络的备选并非棋盘上的所有361个点,而是通过卷积核先排除掉一些最优解出现概率较小的区域,再在剩余的区域中找出可能的最佳位置,这样就可以排除一些有意为之的干扰棋路对整体局势的影响。这种机制固然会降低落子预测的精确度,却能使计算速度得到大幅度的提升。

如果说策略网络关注的核心是“知彼”,价值网络关注的就是“知己”:在当前的局势下,我下在哪个位置能得到最大的胜算。对胜算的估计既与当前的局面有关,也与向下预测的步数有关:能够预测的步数越多,得到的结果就越精确,计算量也会越庞大。在围棋中,求解精确解显然是不可能的,因而价值网络只能求出近似解,通过卷积神经网络来计算出卷积核范围内的平均胜率,最终的走法则留给蒙特卡洛树搜索(Monte Carlo Tree Search)来处理。此外,价值网络的训练不是通过对现有棋谱的学习,而是让两个阿尔法狗互相对弈——两者实力的接近确保了棋局的胜负完全由落子决定,而非一些其他的先验因素。这让阿尔法狗快速地累积出正确的评价样本,也解决了评价机制的难题。价值网络和策略网络的结合让阿尔法狗“知己知彼”,其百战百胜自然也在情理之中。

深蓝的软件来源于与硬件协同工作的的专门设计。软件部分负责调度最多32个象棋芯片并行搜索,以及对大范围规划的局面进行软件评估。软件中还包含了从数十万局棋中抽取出来的开局书,少子条件下的残局数据库,以及同时代的美国特级大师乔尔·本杰明(Joel Benjamin)针对卡斯帕罗夫行棋风格而对以上开局与残局下法的专门优化。因此,深蓝背后蕴藏着的是古往今来各路高手的象棋智慧,说卡斯帕罗夫是光明顶上独战六大门派高手的张无忌,其实也不为过。

但这并不意味着阿尔法狗无懈可击:在人机大战的第四局中,李世石的一招妙手(白78手)让阿尔法狗掉进了陷阱。阿尔法狗完全没有意识到这步神仙棋有什么作用,直到几个回合之后才如梦初醒,然而为时已晚。在此之后,阿尔法狗开始频频下出不可理喻的走法,直到投子认负。

在深蓝的象棋芯片上,国际象棋的走棋规则被以硬件电路的方式嵌入到逻辑门阵列之中,不同棋子处于不同位置时的分值由软件预先计算好后也会写入硬件。对下法的判断则源于国际象棋的固有逻辑。在国际象棋中,最核心的逻辑就是子力价值的对比:马或者象等效于三个兵;车等效于五个兵;后等效于九个兵;王的价值是无穷大,因为失去王就输了棋局。但在评价棋盘状态时,深蓝会考虑更多的局面细节:如果同一方的兵在象前面,它就会限制象的移动,导致象本身的价值降低;如果同一个兵可以通过捕获一个敌方兵来打开车的行进路线,这个兵就并不会严重损害车的价值。这类对棋局细节的刻画有助于深蓝对局面做出更准确的判断。

李世石的妙手妙就妙在刺中了阿尔法狗的盲区:它并不认为棋会下到这里。可能阿尔法狗认为这步棋并非最优甚至并非次优,可能在于自身对弈的过程中这样的棋路从未出现……种种原因让它没有在深度学习过程中习得这个走法。所以一旦出现这种局面,阿尔法狗开始不知如何是好,在盲目应对的过程中丧失主动。劣势后频出的昏招事实上也是蒙特卡洛树搜索的固有结果:自知败局已定的阿尔法狗只能通过这样的招数,寄望于凭借李世石的失误扭转局面。好在李世石没有上当,漂亮地赢下这一局,也赢下全世界的满堂彩。

图3-1 1997年超级计算机深蓝对阵国际象棋特级大师卡斯帕罗夫

虽然仍有改进的余地,但与深蓝的区别正是阿尔法狗的突破之处:早期的计算机就已经被用来搜索优化已有的函数的方式,深蓝的特点仅仅在于搜索的目标是优化尽管复杂但是形式大多数由已有的国际象棋知识表达的函数,其思想却与人工智能早期的多数程序并无二致。更令人诧异的是,在整个算法中,除了“获胜”这个概念,阿尔法狗对于围棋规则一无所知,更遑论定式等高级围棋的专门概念。尤其在第一阶段的训练中,完全基于简单的盘面信息就能够达到相当可观的预测效果。这也是阿尔法狗和深蓝的本质区别:同是战胜了棋类世界冠军,深蓝仍然是专注于国际象棋的、以暴力穷举为基础的特定用途人工智能;阿尔法狗是几乎没有特定领域知识的、基于机器学习的、高度通用的人工智能。这一区别决定了深蓝只是一个象征性的里程碑,而阿尔法狗则更具实用价值。

围棋似乎也并不是人工智能与人类对抗的终结。美国卡内基·梅隆大学的两位计算机科学家创造了会玩德州扑克(Texas Hold'em)的人工智能李贝特斯(Libratus),而李贝特斯则在2017年1月的匹兹堡大河赌场的无限制德州扑克游戏中大获全胜——以180万筹码的优势战胜了四位人类高手。虽然这一人机对战的关注度与影响力远不及围棋对弈,可它表现出的却是人工智能的另外一面。扑克游戏的声誉来自于艺术更甚于科学,对于计算机来说,这也是不同于各种棋类的独特挑战:非完美信息博弈需要某种人类的狡诈——例如欺骗对手并且能够察觉到对方在欺骗你——这通常被认为是计算机的阿喀琉斯之踵。在扑克游戏中执行均衡战略的关键是打出最强和最有潜力的一手牌的同时还保持不可琢磨,看起来李贝特斯在这方面也是个好手。

深蓝的核心在于”算”:利用强大的计算资源来优化目标函数。深蓝本身就是一套专用于国际象棋的硬件,大部分逻辑规则是以特定的象棋芯片电路实现,辅以较少量负责调度与实现高阶功能的软件代码。其算法的核心则是暴力穷举:生成所有可能的下法,然后执行尽可能深的搜索,并不断对局面进行评估,尝试找出最佳下法。

人工智能与人类的下一次对抗在哪里?我们能做的,只有拭目以待。

棋类游戏的核心在于根据棋局判断下一手的最优下法,深蓝通过穷举的方法在国际象棋的棋局中解决了这个问题。在64格的国际象棋棋盘上,深蓝的运算能力决定了它能算出12手棋之后的局面下的最优解,而身为人类棋手执牛耳者的卡斯帕罗夫最多只能算出10手棋,这多出来的2手棋就会成为左右战局的关键因素。可在围棋棋盘上,可以落子的点数达到了361个——别说12手棋,就是6手棋的运算量都已经接近于天文数字!这使得计算机相对于人脑的运算优势变得微不足道,走出优于人类棋手的妙手的概率也微乎其微,这也是为什么计算机会在围棋领域被看衰。