1997年,国际象棋大师加里·卡斯帕罗夫败给了电脑“深蓝”;2016年,谷歌人工智能AlphaGo又战胜了韩国棋手李世石。这标志着人工智能终于征服了它在棋类比赛中最后的弱项——围棋,谷歌公司的DeepMind团队比预期提前了整整10年达到了既定目标。
对计算机来说,围棋并不是因为其规则比国际象棋复杂而难以征服——与此完全相反,围棋规则更简单,它其实只有一种棋子,对弈的双方轮流把黑色和白色的棋子放到一个19x19的正方形棋盘中,落下的棋子就不能再移动了,只会在被对方棋子包围时被提走,到了棋局结束时,占据棋盘面积较多的一方为胜者。
围棋的规则如此简单,但对于计算机来说却又异常复杂,原因在于围棋的步数非常多,而且每一步的可能下法也非常多。以国际象棋作对比,国际象棋每一步平均约有35种不同的可能走法,一般情况下,多数棋局会在80步之内结束。围棋棋盘共有361个落子点,双方交替落子,整个棋局的总排列组合数共有约10701种可能性,这远远超过了宇宙中的原子总数——10^{80}!
对于结构简单的棋类游戏,计算机程序开发人员可以使用所谓的“暴力”方法,再辅以一些技巧,来寻找对弈策略,也就是对余下可能出现的所有盘面都进行尝试并给予评价,从而找出最优的走法。这种对整棵博弈树进行穷举搜索的策略对计算能力要求很高,对围棋或者象棋程序来说是非常困难的,尤其是围棋,从技术上来讲目前不可能做到。
“蒙特卡罗树搜索”是一种基于蒙特卡罗算法的启发式搜索策略,能够根据对搜索空间的随机抽样来扩大搜索树,从而分析围棋这类游戏中每一步棋应该怎么走才能够创造最好机会。举例来说,假如筐里有100个苹果,每次闭着眼拿出1个,最终要挑出最大的1个。于是先随机拿1个,再随机拿1个跟它比,留下大的,再随机拿1个……每拿一次,留下的苹果都至少不比上次的小。拿的次数越多,挑出的苹果就越大。但除非拿100次,否则无法肯定挑出了最大的。这个挑苹果的方法,就属于蒙特卡罗算法。虽然“蒙特卡罗树搜索”在此前一些弈棋程序中也有采用,在相对较小的棋盘中也能很好地发挥作用,但在正规的全尺寸棋盘上,这种方法仍然存在相当大的缺陷,因为涉及的搜索树还是太大了。
AlphaGo人工智能程序中最新颖的技术当属它获取知识的方式——深度学习。AlphaGo借助两个深度卷积神经网络(价值网络和策略网络)自主地进行新知识的学习。深度卷积神经网络使用很多层的神经元,将其堆叠在一起,用于生成图片逐渐抽象的、局部的特征。对图像分析得越细,利用的神经网络层就越多。AlphaGo 也采取了类似的架构,将围棋棋盘上的盘面视为19×19的图片输入,然后通过卷积层来表征盘面。这样,两个深度卷积神经网络中的价值网络用于评估盘面,策略网络用于采样动作。
在深度学习的第一阶段——策略网络的有监督学习(即从______I____中学习)阶段,拥有13层神经网络的AlphaGo借助围棋数据库KGS中存储的3000万份对弈棋谱进行初步学习。这3000万份棋谱样本可以用a、b进行统计。a是一个二维棋局,把a输入到一个卷积神经网络进行分类,分类的目标就是落子向量A。通过不断的训练,尽可能让计算机得到的向量A接近人类高手的落子结果b,这样就形成了一个模拟人类下围棋的神经网络,然后得出一个下棋函数F go()。当盘面走到任何一种情形的时候,AlphaGo都可以通过调用函数F go()计算的结果来得到最佳的落子结果b可能的概率分布,并依据这个概率来挑选下一步的动作。在第二阶段——策略网络的强化学习(即从____II______ 中学习)阶段,AlphaGo开始结合蒙特卡罗树搜索,不再机械地调用函数库,而类似于一种人类进化的过程:AlphaGo会和自己的老版本对弈。即,先使用F_go(1)和F_go(1)对弈,得到了一定量的新棋谱,将这些新棋谱加入到训练集当中,训练出新的F_go(2),再使用F_go(2)和F_go(1)对弈,以此类推,这样就可以得到胜率更高的F_go(n)。这样,AlphaGo就可以不断改善它在第一阶段学到的知识。在第三阶段——价值网络的强化学习阶段,AlphaGo可以根据之前获得的学习经验得出估值函数v(s),用于预测策略网络自我对抗时棋盘盘面s的结果。最后,则是将F_go()、v(s)以及蒙特卡罗树搜索三者相互配合,使用F_go()作为初始分开局,每局选择分数最高的方案落子,同时调用v(s)在比赛中做出正确的判断。
这就是AlphaGo给围棋带来的新搜索算法。它创新性地将蒙特卡罗模拟和价值网络、策略网络结合起来训练深度神经网络。这样价值网络和策略网络相当于AlphaGo的两个大脑,策略网络负责在当前局面下判断“最好的”下一步,可以理解为落子选择器;价值网络负责评估整体盘面的优劣,淘汰掉不值得深入计算的走法,协助前者提高运算效率,可以理解为棋局评估器。通过两个“大脑”各自选择的平均值,AlphaGo最终决定怎样落子胜算最大。通过这种搜索算法,AlphaGo和其他围棋程序比赛的胜率达到了99.8%。
AlphaGo的飞快成长是任何一个围棋世界冠军都无法企及的。随着计算机性能的不断增强,遍历蒙特卡罗搜索树将进一步提高命中概率。大量的计算机专家,配合大量的世界围棋高手,在算法上不断革新,再配合不断成长的超级计算能力,不断地从失败走向成功,最终打造出围棋人工智能。在AlphaGo击败李世石后,欧洲围棋冠军樊麾说了这么一句话:“这是一个团队的集体智慧用科技的方式战胜了人类数千年的经验积累。”人和机器其实没有站在对立面上,“是人类战胜了人类”。
根据文章,回答下列问题:
传统的计算机围棋程序能够完成全尺寸棋盘的蒙特卡罗树模拟并计算最大胜率。