变智能问题为数据问题

字数:4329

尽管在过去的半个世纪,计算机的运算速度一直呈指数级提升,可以做的事情越来越多,可是给人的印象依然是“快却不够聪明”,比如它不能回答人的提问,不会下棋,不认识人,不能开车,不善于主动做出判断……然而当数据量足够大之后,很多智能问题都可以转化成数据处理的问题,这时,计算机开始变得聪明起来。第一次让全世界感到计算机智能水平有了质的飞跃是在1996年,那一年计算机第一次战胜人类的国际象棋世界冠军。不过相比2016年AlphaGo战胜李世石,那一次的比赛更加一波三折、惊心动魄。

1996年,IBM的超级计算机深蓝和当时的国际象棋世界冠军卡斯帕罗夫进行了一场六番棋的比赛。卡斯帕罗夫是世界上最富传奇色彩的国际象棋世界冠军,他的等级分之高在当时创造了纪录,这个纪录直到十多年后,才由今天的世界冠军卡尔松打破,即便如此卡斯帕罗夫依然保持着有史以来第二高的等级分。在那次对局的第一盘,学习了卡斯帕罗夫过去棋谱的深蓝执白先行,并且先声夺人赢下了这一盘。这让全世界感到震惊,虽然大家觉得计算机最终可能在国际象棋上战胜人类的冠军,但是这一天来得比绝大部分人预料得要早。不过,善于应变的卡斯帕罗夫在随后的五盘棋中没有再输,最后以3.5:1.5的比分战胜了深蓝。对于这次比赛,媒体认为一方面深蓝的表现足够好了,虽然在总比分上它输了,但这毕竟是计算机第一次在国际象棋上战胜人类的冠军;然而,另一方面,计算机还不够聪明,它不仅缺乏应变能力,而且还会出现低级的错误32。因此,大家的结论是计算机在下国际象棋方面全面超过人类还有待时日。

但是,时隔一年,1997年5月,经过改进后的深蓝卷土重来。

这一次比赛还是六盘决胜负,不过第一盘是由卡斯帕罗夫执白先行。卡斯帕罗夫以自己熟悉的王翼印度进攻开局33,然后牢牢把握住先行的优势。到了第44步时,深蓝走出了一步非常怪异的棋,这让卡斯帕罗夫误以为计算机有了超级智能。当然,他还是平稳地走出了第45步,并且让深蓝放弃认输了。事后IBM承认,这步怪棋其实是源于程序的一个bug,使得深蓝找不到合适的走法,而采用了预先设定的保守走法。深蓝虽然输了第一盘,但是给卡斯帕罗夫在心理上造成了压力,因为他不知道计算机到底有多么聪明。后来斯维尔评论道,能够不按常规行事其实是超级智能的表现。

第二盘由深蓝先行,它走了常见的洛普兹开局34,双方行棋平稳,但是进行到残局时,深蓝又走出了一步非常规的走法,在45步后,卡斯帕罗夫想不出破解的方法,推盘认输了。那时候,他观棋的朋友告诉他实际上这盘棋还有救,能够走成和局。不过,今天一些国际象棋下得最好的计算机,比如Stockfish35,能够在深蓝那局棋的基础上,在各种应变的情况下都获胜。因此,那一盘棋卡斯帕罗夫输得并不冤。

在接下来的三盘里,双方下成和棋,其中在第四盘卡斯帕罗夫因为用时过多,被迫弈和;第五盘卡斯帕罗夫在盘面占优的情况下被深蓝逼和。在这两盘棋中,深蓝显示出了超强的计算能力。应该讲在前五盘中,双方发挥正常。

到了第六盘,卡斯帕罗夫在开局时采用了他第四盘的下法——卡罗-康防御36,这是执黑的棋手为了抵消后手劣势采用的一种迅速简化棋盘、拼比残局实力的走法。但是,深蓝没有重复第四盘的走法,通过大胆弃马攻破了卡斯帕罗夫的防线。这一盘只下了20多手,卡斯帕罗夫还没等到进入残局就认输了,这比通常国际象棋的进度短了一半。

从我描述的这个过程来看,似乎计算机已经足够聪明了,以至于卡斯帕罗夫拿它没有办法——它甚至像人一样会做出一些想象不到的反应。当时的媒体对深蓝的评论也是这样的,以至于IBM的股票都因此而飆升。但在这看似聪明的表象背后,其实是大量的数据、并不算复杂的算法和超强计算能力的结合——深蓝从来没有,也不需要像人一样思考。

IBM其实在1996年那次对弈之前,就收集了所有能够找到的卡斯帕罗夫的对弈记录。IBM深蓝小组所做的事情,就是利用这些数据建立了一些模型。具体的做法如下:

计算机利用数学模型,能够在棋盘的任何一个状态下,比如说某个状态叫作S,评估出自己和对方获胜的概率为P(S)。当它要考虑接下来可能的走法,比如说有N种37走法时,先要考察这些走法分别对应状态,假设是S’1、S’2……S’N,计算出相应的获胜概率P(S’1)、P(S’2)……P(S’N)。根据这些概率,深蓝找出一个让自己获胜概率最大的状态,我们不妨假设是S’K,它就往这个方向走。接下来,该对方走棋了,对方走出一步棋后棋盘进入一个新的状态S”。这时深蓝再根据自己能够选择的有限种走法,假如这回是M种,分别对应状态S’”1、S’”2……S’”M,,再计算出每一个对应的新状态的胜率P(S’”1)、P(S’”2)……P(S”’M),然后挑一个产生最大胜率的走法,比如是P(S”’i),如图2.14所示。

当然,深蓝在评估自己和对方的胜率时,会根据历史的数据考虑卡斯帕罗夫可能采用的走法,对不同的状态给出可能性的估计,然后根据对方下一步走法对盘面的影响,核实这些可能性的估计,找到一个最有利于自己的状态,并走出这步棋。因此,深蓝的团队其实把一个机器智能的问题变成了一个大数据的问题和大量计算的问题。顺便提一句,AlphaGo在具体的算法上和深蓝略有差异,但是它们博弈的原理是相同的。

图2.14 计算机下棋的博弈图

在1996年的那次对弈中,深蓝的团队研究了卡斯帕罗夫的历史数据,对他的棋风还是颇有了解的,如果卡斯帕罗夫按照通常的习惯走,深蓝应该是能够应付的。这或许是深蓝能够出奇制胜第一盘的原因。但是,深蓝使用的数据量显然不够,因此卡斯帕罗夫稍微变着数,深蓝就处于被动状态。到了1997年,深蓝团队不仅把计算机的速度提升了两个数量级,而且召集了全世界上百位国际大师38,收集和整理全世界各位大师的对弈棋谱,供计算机学习。这样一来,深蓝其实看到了名家们在各种局面下的走法,或者说人类能够想到的各种好棋,它都见识过了,这就具备了大数据的完备性。在第二次六局对弈中,除了第一盘深蓝因为bug最后负于卡斯帕罗夫,最后五盘非胜即平,一些走法甚至出乎卡斯帕罗夫的意料,也就是说,深蓝看过的棋局其实已经超过了后者。此外,作为机器,深蓝还具有卡斯帕罗夫所不具备的另一个优势,那就是不受情绪的影响,发挥可以相对稳定。这个性质在很多智能应用中至关重要。

自1997年之后,计算机下棋的本领越来越高,而且进步速度超出人们的想象。今天在国际象棋上,任何人都无法与好的计算机抗衡了。按照早期对机器智能的定义,如果计算机能够在国际象棋上超过人,就说明它有了智能。然而尽管如此,大部分人,包括围棋界和科技界的权威人士,在2015年年底仍然认为AlphaGo还达不到顶级围棋手的水平。但是2016年1月,AlphaGo战胜了人类的欧洲围棋冠军樊麾二段。2016年3月,AlphaGo再次用事实证明了它的水平已超过人类的顶级高手——它与韩国著名棋手李世石九段进行了五番棋比赛,结果以4:1大胜,震惊世界围棋界和科技界。关于AlphaGo的具体算法,我们在后面介绍深度学习时再详细讨论。

机器智能真的在很多方面已经超过了人类?大家对此的看法不一。一些人是持否定看法的,他们习惯于把计算机已经完成的问题归结到非智能问题中。在过去,当计算机能够识别语音并理解其含义时,这个问题也从智能问题中被删除出去了。当计算机战胜人类的象棋冠军后,他们会说计算机还不会下围棋;当计算机在围棋上也表现卓越时,他们就把下棋这件事由过去的智能问题改成了计算问题。当然,虽然机器的智能在不断地提高,但总是有几件事情一直做得不好,因此人类还可以很自豪地说自己的智能水平比机器高。

在计算机尚未做好的事情中,回答那些需要进行推理的复杂问题或许可以算是一种。比如计算机是否能够回答“夏天为什么比冬天热”这样的问题。在计算机自动问答研究领域,科学家们已经研究了多年。通常我们把问题归结为7类:”是什么”(What)、”什么时候”(When)、”什么地点”(Where)、”哪一个”(Which)、”是谁”(Who)、”为什么”(Why)和”怎么做”(How)。由于它们都是以W或者H开头的,这7个疑问词又被称为WH单词(WH words),各种问题也被称为WH语句。在这7类问题中,容易回答的是询问事实,包括”是什么”(What)、”什么时候,,(When)、”什么地点”(Where)、”哪一个”(Which)和”是谁”(Who),比如:”中国的国家主席是谁?”难回答的是询问原因的”为什么”(Why)问题,以及询问过程的”怎么做”(How)问题。全世界的自然语言处理专家和机器智能专家对这两类问题的机器自动问答研究了很多年,直到2012年,都没有找到好的方法。

2012年,我离开腾讯回到Google,我的上级领导辛格博士和尤斯塔斯对我讲,不指望我做什么马上见成效的产品,希望我解决一些和机器智能有关的根本性问题,前提是这些问题解决之后,微软要花5年时间才能追赶上。我花了一个多月的时间在公司里寻找要解决的问题。当时Google的云计算平台和大数据平台已经搭建得非常完善了,自然语言处理的基础工作(比如所有网页中主要语言每一句话都做了句法分析)都已经完成,对前五类简单问题的回答在林德康博士的领导下已经做得非常完善了。但是,还没有人触及对复杂问题的回答,因为大家都觉得这件事情太难,以前学术界几十个研究所、上百名一流的科学家都没能解决这个问题。

不过,根据我对Google基础条件和数据准备情况的考察,发现如果换一个思路来解决计算机回答复杂问题的难题,就有可能另辟蹊径解决或者至少部分解决这个难题。当我把这个想法告诉辛格博士时,他的第一反应是”如果其他公司和研究所做不到,我们是否有一些别人没有的条件,使得我们能做到”,我回答他说,是数据。接下来我向他介绍说,可以将这个智能问题变成一个大数据的问题。

我们解决问题的方法是这样的:

第一步,根据网页确定哪些用户在Google问过的复杂问题可以回答,而哪些回答不了。根据我们的研究发现,大约70%~80%的问题,在Google第一页搜索结果中都有答案。大家如果想要验证这一点,不妨做一个简单的实验:在Google、必应(Bing)或者百度问一个为什么的问题,比如问”天为什么是蓝色的”或者”为什么夏天比冬天热”,然后打开上述搜索引擎给出的前10条搜索对应的网页,通常都能找到想要的答案。但是,如果只看这些搜索引擎的摘要,只有20%〜30%的问题的答案正好在摘要中。这实际上反映出在2012年的时候,计算机与人在理解问题和回答问题上的差异。那么如果我们把目标设定在只回答那些在网页中存在答案的问题,我们其实就具备了大数据的完备性。

第二步,就是把问题和网页中的每一句话一一匹配,挑出那些可能是答案的片段,至于怎么挑,就要依靠机器学习了。

第三步,就是利用自然语言处理技术,把答案的片段合成为一个完整的段落。

听了我的介绍,辛格博士觉得这个道路似乎走得通,于是我们在山景城很快就成立了一个团队来开发计算机回答复杂问题的原型系统。

出于保密的考虑,我在这里不便透露我们做法的细节。简单地讲,我们建立起了一个由世界各地科学家和工程师组成的联合团队,按照大数据处理的思路,经过两年的努力,使得计算机能够回答30%的复杂问题,包括”天为什么是蓝色的,”为什么夏天比冬天热”,或者”怎样烤蛋糕”之类的问题,我们将计算机产生的答案和人回答的答案拿给测评人评估,对于大部分问题的答案,测评人无法判断机器产生的答案与人回答的哪个更准确、更好。按照当年图灵博士的定义,我们实际上已经让计算机具有了某种等同于人类的智能。

图2.15 Google自动问答

(问题为”天为什么是蓝色的”,问题下面是计算机产生的答案)

计算机下棋和回答问题,体现出大数据对机器智能的决定作用。我们在后面会看到很多各种各样的机器人,比如Google自动驾驶汽车、能够诊断癌症或者为报纸写文章的计算机,它们不需要像科幻电影里的机器人那样长着人形,但是它们都在某个方面具有超过人类的智能。在这些机器人的背后,是数据中心强大的服务器集群,而从方法上讲,它们获得智能的方法不是和我们人一样靠推理,而更多的是利用大数据,从数据中学习获得信息和知识。如今,这一场由大数据引发的改变世界的革命已经悄然发生,我们在后面的几章会更深入地介绍它。这次技术革命的特点是机器的智能化,因此我们称之为智能革命也毫不为过。

我们对大数据重要性的认识不应该停留在统计、改进产品和销售,或者提供决策的支持上,而应该看到它(和摩尔定律、数学模型一起)导致了机器智能的产生。而机器一旦产生和人类类似的智能,就将对人类社会产生重大的影响。毫不夸张地讲,决定今后20年经济发展的是大数据和由之而来的智能革命。


大数据的特征第三章 思维的革命