1997年,IBM的“深蓝”打败了世界国际象棋冠军卡斯帕罗夫。彼时,这场胜利被传颂为人工智能的一个里程碑。然而后来事实证明,“深蓝”的科技除了国际象棋,在其他地方并无用武之地。计算机科学也并未如预期一般迎来一场革命。
那么,屡次打败人类顶尖棋手的AlphaGo,又会有什么不一样吗?
我相信答案是肯定的,但或许并不是出于你听说的那些原因。许多文章都宣称围棋比国际象棋更难,从而使AlphaGo的胜利看起来更意义重大。尽管有些文章指出围棋比国际象棋可落子的位置更多,这是事实没错,但并不能解释为何这点会对电脑比对人类造成更大的困扰。
换言之,这些争议都没有触及核心问题:使AlphaGo成功的技术进步会不会有更广泛的用途?要回答这个问题,我们必须先理解为什么AlphaGo的技术与“深蓝”的技术截然不同且更为重要。
AlphaGo和IBM深蓝(DeepBlue)区别是什么?
在国际象棋中,初学者会学到每个棋子的价值。例如一个马或象等于三个兵。活动范围更大的车则等于五个兵。而活动范围最大的后则等同于九个兵。王的价值无限大,因为失去王也就意味着丢掉了比赛。
玩家可以通过这些分值来评估可能的棋路。以自己的象吃掉对方的车?这通常是个好主意。一马加一象换取对方的车?这可就是昏招了。
分值在计算机国际象棋中至关重要。大多数国际象棋程序工作时,都要在上亿的棋路和对策中搜索。其目的就是为了让程序在无论对手如何下的情况下都找到将最终分值最大化的一系列走子。
早期的国际象棋程序是用“一个象等于三个兵”这样的简单概念对棋局进行评估的。但后来的程序用到了更细致的国际象棋知识。举例来说,在“深蓝”评估棋局的功能中,汇集了超过8000种不同的因素。“深蓝”可不只知道一个车等于五个兵。如果相同颜色的兵在车之前,兵就会限制车的活动范围,令车的分值下降。然而,如果这个兵可以吃掉对方的兵从而为车让出路来,“深蓝”就认为这个兵是半透明的,不会对车的分值造成很大影响。
诸如此类的思路取决于国际象棋的具体知识,也决定了“深蓝”的胜利。在“深蓝”团队所著的技术论文中,这一半透明兵的概念为“深蓝”在对阵卡斯帕罗夫的第二场比赛中得胜奠定了重要的基础。
“深蓝”的开发者们使用了两套主要理念。一是建立一种功能来汇总大量国际象棋具体知识来评估任何一种棋局。二是利用强大的计算能力来评估众多可能的局面,挑出可能促成最佳终局的走子。
如果把这些战略运用到围棋上,又会如何呢?
这样的尝试将陷你于困境之中。问题就在于如何评估棋局。顶级的围棋选手在判断某一特定局面时,会动用到大量的直觉。例如,他们会用听起来模棱两可的话语称某一棋局“形势不错”。这种直觉很难用类似国际象棋棋子分值那样简单明确的系统表达出来。
你或许认为只要孜孜不倦,就终能找到评估棋局的好方法。遗憾的是,过了数十个年头,传统手段仍无法将国际象棋的搜索方法成功移植到围棋上。直到2006年,随着一种叫作蒙特卡洛树的搜索算法的引入,转机才出现。然而围棋程序的能力依旧远不如人类。对棋局的强烈直觉似乎直接关系到输赢,而这是机器所不具备的。
就AlphaGo而言,其创新和重要之处就在于其开发者找到了将类似直觉的东西注入其中的方法。
一开始,AlphaGo被灌输了15万个由人类围棋高手所下过的比赛,然后利用一种人工神经网络来找到这些比赛中的模式。值得特别指出的是,它学会了在任何局面下准确预测人类棋手棋路的方法。在此之上,AlphaGo的设计者们通过一次次让它和它自身的之前版本对弈来调整和改进神经网络,逐渐提高胜率。
那么,这种有策略网络之称的神经网络是如何学习预测落子的呢?
(图片来自网络)
宽泛而言,神经网络是一种非常复杂的数学模型,有大量可以被修改的参数来改变模型的行为。网络所谓的“学习”,即指计算机持续微调模型中的参数,试图找到一种方法在比赛中做出相应的微小改进。在学习的第一阶段,网络试图增加与人类棋手相同落子的概率。在第二阶段,它试图增加在与自己的对弈中获胜的概率。这听起来像是一个疯狂的策略——反复对一些非常复杂的功能进行细微的调整。但是如果这样做的时间够长,有足够的计算能力,网络就会变得非常强大。这里就有怪事出现了:没有人真正理解神经网络变强背后的原因,因为这些改进是由数十亿次自动微调造成的。
这两个训练阶段过后,策略网络就可以正儿八经地下围棋了,和人类业余爱好者的水平不相上下,但跟专业水平还有很大差距。从某种意义上说,这是一种不通过搜索未下的棋子而评估最终棋局分值的方法。要想高于业余水平,AlphaGo需要一种方法来估算这些局面的分值。
为了克服这一障碍,开发者们的核心思想是让AlphaGo利用策略网络与自身对弈,从而估算棋局最终的胜算有多大。有可能给定板位置是正确的。获胜的可能性为棋局提供了粗略的估值。随后,AlphaGo通过下尽可能多的棋路将此估值方法与搜索相结合,使搜索向策略网络认为可行的棋路上倾斜,然后选择最有效率的落子。
从这里我们可以看出,与“深蓝”学习国际象棋不同,AlphaGo不是通过先学习海量的围棋知识来建立评估系统的。反之,通过分析众多的现有棋局和自我对弈,AlphaGo凭借无数的细微调整创造了一种策略网络,每个细微调整只是为了做出渐进的微小改进。这就为AlphaGo建立起了一个估值系统,与优秀棋手评估不同局面时的直觉非常近似。
基于此,AlphaGo远比“深蓝”更激进。
从诞生之日起,计算机就被用来寻找优化已知功能的方法。深蓝的搜索方法虽然很聪明,但和许多60年代的程序并无本质区别。AlphaGo的搜索方式虽然更聪明,但采用的也是搜索—优化这种思路。创新之处在于,前期它利用了神经网络来学到了辨识有利局面的“感觉”。前后阶段的结合才让AlphaGo如此神通广大。
复制直觉模式识别的能力是一个大问题。这也是更广泛趋势的一部分。根据早先的一篇论文, AlphaGo的生身父母DeepMind 建立了一个神经网络,令其学会了49个经典的雅达利2600视频游戏,并达到了许多人类专家难以望其项背的水平。用计算机解决这个问题的保守方法是“深蓝”的那种方式:一个人类程序员会分析每一个游戏,并想出详细的控制策略来玩它。
与此形成对照的是,DeepMind的神经网络只是广泛探索各种玩法。期初,它玩得非常糟,磕磕绊绊,正如人类的新手玩家一样。但偶尔,网络也会碰巧聪明一把。它学会了辨识什么才是好的游戏形式——即能得高分的套路,这和AlphaGo学围棋是一样的。当这种情况出现时,网络便强化这种行为,逐渐提高游戏能力。
这种神经网络对直觉和模式识别的能力在其他环境中也在被使用。2015年,Leon Gatys、Alexander Ecker和Matthias Bethge发布了一篇论文,描述神经网络学习某种艺术风格,再将其应用在其他图像上的方法。思路非常简单:该网络暴露在大量的图像中,并获得识别相似风格图像的能力。然后,它可以将该风格信息应用到新的图像中。例如,下面说明了将梵高的艺术风格应用在一张埃菲尔铁塔照片上的情形。
成品算不上多么伟大的艺术品,但仍不失为利用神经网络捕捉直觉并应用在别处的一个杰出范例。
在过去的几年中,神经网络被用来捕捉直觉和识别许多领域中的模式。许多使用这些网络的项目都是视觉化的,涉及到识别艺术风格或开发好的视频游戏策略等任务。但在一些惊人的例子中,网络在一些非常不同的领域中模拟直觉,包括音频和自然语言。
鉴于这种多样性,我认为AlphaGo本身不是一个革命性的突破,而是代表了一种极其重要的发展的前沿:建立可以捕捉直觉和学会识别模式的系统的能力。几十年来,计算机科学家一直试图做到这一点,但没有取得多大进展。但现在,神经网络的成功有可能极大地扩大我们可以使用计算机解决问题的范畴。
在这一点上,我们相当有理由欢呼庆祝,并宣布通用人工智能一定会在近年内成为现实。但这里有一处误区:我们把许多不同的心理活动集中在一起,称之为“直觉”。神经网络可以很好地捕捉到某些特定类型的直觉,但这并不意味着它们也可以胜任其他类型的工作。或许神经网络在我们目前认为需要直觉的某些任务中根本就起不到什么好作用。
事实上,我们对神经网络现有的理解是很差的。例如,2014年的一篇论文描述了一些可以用来欺骗神经网络的“对抗性例子”。作者用一个极其擅长识别图像的神经网络开始了他们的研究。这似乎是利用神经网络捕捉模式识别能力的经典之作。但他们所展现的却是可以通过细微的方式改变图像来愚弄神经网络。例如,下面的图像中,网络分类左边的图是正确的,但如中间的图所示,当研究人员添加了一些微小扰动形成右图后,网络却对明显无法区分的右图进行了错误的分类。
现有系统的另一个限制是,它们常常需要许多人类实例来学习。例如,AlphaGo从15万场人类的比赛中进行学习。这是何等的天文数字!相比之下,人类可以从少得多的游戏中学到很多东西。类似地,识别和操作图像的网络通常需要数以百万计的示例图像来进行学习,每个图像都带有关于图像类型的信息。因此,一个重要的挑战是使系统更好地从较少的人为提供的数据和较少的辅助信息中学习。
话虽如此,AlphaGo这样的系统仍然是的的确确激动人心的。我们已经学会使用计算机系统重现至少一部分人类直觉的形式。现在,我们面临着许多挑战:扩大我们能代表的直觉类型的范围,使系统稳定,理解它们为什么和如何工作,并通过更好的手段将它们与现有的计算机系统优势结合起来。也许我们不久就能学会捕捉一些诸如数学证明或者故事创作的直觉判断。对人工智能而言,这是一个前景无限广阔的时代。