郑文盼 16020150021
【嵌牛导读】1956年达特茅斯会议之后,人工智能迎来井喷发展,许多数学定理被计算机证明,程序可以战胜跳棋州际冠军,在这个黄金时代,人工智能看上去前景光明。然而好景不长,更难的数学定理难倒了计算机,跳棋程序始终无法战胜世界冠军,相关科研经费被大幅削减,人工智能进入寒冬。危难之间,携带大量人类知识来解决问题的专家系统出现了……
【嵌牛鼻子】AI,历史
【嵌牛提问】人工智能的产生发展历史脉络是怎样的呢?
【嵌牛正文】
人工智能之梦——群龙问鼎(1980—2010)
专家系统、知识工程的运作需要从外界获得大量知识的输入,而这样的输入工作是极其费时费力的,这就是知识获取的瓶颈。于是,在20世纪80年代,机器学习这个原本处于人工智能边缘地区的分支一下子成为了人们关注的焦点。
尽管传统的人工智能研究者也在奋力挣扎,但是人们很快发现,如果采用完全不同的世界观,即让知识通过自下而上的方式涌现,而不是让专家们自上而下地设计出来,那么机器学习的问题其实可以得到很好地解决。这就好比我们教育小孩子,传统人工智能好像填鸭式教学,而新的方法则是启发式教学:让孩子自己来学。
事实上,在人工智能界,很早就有人提出过自下而上的涌现智能的方案,只不过它们从来没有引起大家的注意。一批人认为可以通过模拟大脑的结构(神经网络)来实现,而另一批人则认为可以从那些简单生物体与环境互动的模式中寻找答案。他们分别被称为连接学派和行为学派。与此相对,传统的人工智能则被统称为符号学派。自20世纪80年代开始,到20世纪90年代,这三大学派形成了三足鼎立的局面。
符号学派
作为符号学派的代表,人工智能的创始人之一约翰·麦卡锡在自己的网站上挂了一篇文章《什么是人工智能》,为大家阐明什么是人工智能(按照符号学派的理解)。
(人工智能)是关于如何制造智能机器,特别是智能的计算机程序的科学和工程。它与使用机器来理解人类智能密切相关,但人工智能的研究并不需要局限于生物学上可观察到的那些方法。
在这里,麦卡锡特意强调人工智能研究并不一定局限于模拟真实的生物智能行为,而是更强调它的智能行为和表现的方面,这一点和图灵测试的想法是一脉相承的。另外,麦卡锡还突出了利用计算机程序来模拟智能的方法。他认为,智能是一种特殊的软件,与实现它的硬件并没有太大的关系。
纽厄尔和西蒙则把这种观点概括为“物理符号系统假说”(physical symbolic system hypothesis)。该假说认为,任何能够将物理的某些模式(pattern)或符号进行操作并转化成另外一些模式或符号的系统,就有可能产生智能的行为。这种物理符号可以是通过高低电位的组成或者是灯泡的亮灭所形成的霓虹灯图案,当然也可以是人脑神经网络上的电脉冲信号。这也恰恰是“符号学派”得名的依据。
在“物理符号系统假说”的支持下,符号学派把焦点集中在人类智能的高级行为,如推理、规划、知识表示等方面。这些工作在一些领域获得了空前的成功。
人机大战
计算机博弈(下棋)方面的成功就是符号学派名扬天下的资本。早在1958年,人工智能的创始人之一西蒙就曾预言,计算机会在10年内成为国际象棋世界冠军。然而,正如我们前面讨论过的,这种预测过于乐观了。事实比西蒙的预言足足晚了40年的时间。
1988年,IBM开始研发可以与人下国际象棋的智能程序“深思”——一个可以以每秒70万步棋的速度进行思考的超级程序。到了1991年,“深思II”已经可以战平澳大利亚国际象棋冠军达瑞尔·约翰森(Darryl Johansen)。1996年,“深思”的升级版“深蓝”开始挑战著名的人类国际象棋世界冠军加里·卡斯帕罗夫(Garry Kasparov),却以2:4败下阵来。但是,一年后的5月11日,“深蓝”最终以3.5:2.5的成绩战胜了卡斯帕罗夫(见图1-5),成为了人工智能的一个里程碑。
人机大战终于以计算机的胜利划上了句号。那是不是说计算机已经超越了人类了呢?要知道,计算机通过超级强大的搜索能力险胜了人类——当时的“深蓝”已经可以在1秒钟内算两亿步棋。而且,“深蓝”存储了100年来几乎所有的国际特级大师的开局和残局下法。另外还有四位国际象棋特级大师亲自“训练”“深蓝”,真可谓是超豪华阵容。所以,最终的结果很难说是计算机战胜了人,更像是一批人战胜了另一批人。最重要的是,国际象棋上的博弈是在一个封闭的棋盘世界中进行的,而人类智能面对的则是一个复杂得多的开放世界。
然而,时隔14年后,另外一场在IBM超级计算机和人类之间的人机大战刷新了记录,也使得我们必须重新思考机器是否能战胜人类这个问题。因为这次的比赛不再是下棋,而是自由的“知识问答”,这种竞赛环境比国际象棋开放得多,因为提问的知识可以涵盖时事、历史、文学、艺术、流行文化、科学、体育、地理、文字游戏等多个方面。因此,这次的机器胜利至少证明了计算机同样可以在开放的世界中表现得不逊于人类。
这场人机大战的游戏叫作《危险》(Jeopardy),是美国一款著名的电视节目。在节目中,主持人通过自然语言给出一系列线索,然后,参赛队员要根据这些线索用最短的时间把主持人描述的人或者事物猜出来,并且以提问的方式回答。例如当节目主持人给出线索“这是一种冷血的无足的冬眠动物”的时候,选手应该回答“什么是蛇?”而不是简单地回答“蛇”。由于问题会涉及各个领域,所以一般知识渊博的人类选手都很难获胜。
然而,在2011年2月14日到2月16日期间的《危险》比赛中,IBM公司的超级计算机沃森(Watson)却战胜了人类选手(见图1-6)。
可以说,人机大战是人工智能符号学派1980年以来最出风头的应用。然而,这种无休止的人机大战也难逃成为噱头的嫌疑。事实上,历史上每次吸引眼球的人机大战似乎都必然伴随着IBM公司的股票大涨,这也就不难理解为什么IBM会花重金开发出一款又一款大型计算机去参加这么多无聊的竞赛,而不是去做一些更实用的东西了。
实际上,20世纪80年代以后,符号学派的发展势头已经远不如当年了,因为人工智能武林霸主的地位很快就属于其他学派了。
连接学派
我们知道,人类的智慧主要来源于大脑的活动,而大脑则是由一万亿个神经元细胞通过错综复杂的相互连接形成的。于是,人们很自然地想到,我们是否可以通过模拟大量神经元的集体活动来模拟大脑的智力呢?
对比物理符号系统假说,我们不难发现,如果将智力活动比喻成一款软件,那么支撑这些活动的大脑神经网络就是相应的硬件。于是,主张神经网络研究的科学家实际上在强调硬件的作用,认为高级的智能行为是从大量神经网络的连接中自发出现的,因此,他们又被称为连接学派。
神经网络
连接学派的发展也是一波三折。事实上,最早的神经网络研究可以追溯到1943年计算机发明之前。当时,沃伦·麦卡洛克(Warren McCulloch)和沃尔特·匹兹(Walter Pitts)二人提出了一个单个神经元的计算模型,如图1-7所示。
在这个模型中,左边的I1,I2,…,IN为输入单元,可以从其他神经元接受输出,然后将这些信号经过加权(W1,W2,…,WN)传递给当前的神经元并完成汇总。如果汇总的输入信息强度超过了一定的阈值(T),则该神经元就会发放一个信号y给其他神经元或者直接输出到外界。该模型后来被称为麦卡洛克-匹兹模型,可以说它是第一个真实神经元细胞的模型。
1957年,弗兰克·罗森布拉特(Frank Rosenblatt)对麦卡洛克-匹兹模型进行了扩充,即在麦卡洛克-匹兹神经元上加入了学习算法,扩充的模型有一个响亮的名字:感知机。感知机可以根据模型的输出y与我们希望模型的输出y*之间的误差,调整权重W1,W2,…,WN来完成学习。
我们可以形象地把感知机模型理解为一个装满了大大小小水龙头(W1,W2,…,WN)的水管网络,学习算法可以调节这些水龙头来控制最终输出的水流,并让它达到我们想要的流量,这就是学习的过程。这样,感知机就好像一个可以学习的小孩,无论什么问题,只要明确了我们想要的输入和输出之间的关系,都可能通过学习得以解决,至少它的拥护者是这样认为的。
然而,好景不长,1969年,人工智能界的权威人士马文·闵斯基给连接学派带来了致命一击。他通过理论分析指出,感知机并不像它的创立者罗森布拉特宣称的那样可以学习任何问题。连一个最简单的问题:判断一个两位的二进制数是否仅包含0或者1(即所谓的XOR问题)都无法完成。这一打击是致命的,本来就不是很热的神经网络研究差点就被闵斯基这一棒子打死了。
多则不同
1974年,人工智能连接学派的救世主杰夫·辛顿(Geoffrey Hinton)终于出现了。他曾至少两次挽回连接学派的败局,1974年是第一次,第二次会在下文提到。辛顿的出发点很简单——“多则不同”:只要把多个感知机连接成一个分层的网络,那么,它就可以圆满地解决闵斯基的问题。如图1-8所示,多个感知机连接成为一个四层的网络,最左面为输入层,最右面为输出层,中间的那些神经元位于隐含层,右侧的神经元接受左侧神经元的输出。
还是以水流管道为例来说明。当网络执行决策的时候,水从左侧的输入节点往右流,直到输出节点将水吐出。而在训练阶段,我们则需要从右往左来一层层地调节各个水龙头,要使水流量达到要求,我们只要让每一层的调节只对它右面一层的节点负责就可以了,这就是反向传播算法。事实证明,多层神经网络装备上反向传播算法之后,可以解决很多复杂的识别和预测等问题。
几乎是在同一时间,又有几个不同的神经网络模型先后被提出,这些模型有的可以完成模式聚类,有的可以模拟联想思维,有的具有深厚的数学物理基础,有的则模仿生物的构造。所有这些大的突破都令连接学派名声大噪,异军突起。
统计学习理论
然而,连接学派的科学家们很快又陷入了困境。虽然各种神经网络可以解决问题,但是,它们究竟为什么会成功以及为什么在有些问题上会屡遭失败,却没有人能说得清楚。对网络运行原理的无知,也使得人们对如何提高神经网络运行效率的问题无从下手。因此,连接学派需要理论的支持。
2000年左右,弗拉基米尔·万普尼克(Vladimir Naumovich Vapnik)和亚历克塞·泽范兰杰斯(Alexey Yakovlevich Chervonenkis)这两位俄罗斯科学家提出了一整套新的理论:统计学习理论,受到连接学派的顶礼膜拜。
该理论大意可概括为“杀鸡焉用宰牛刀”。我们的模型一定要与待解决的问题相匹配,如果模型过于简单,而问题本身的复杂度很高,就无法得到预期的精度。反过来,若问题本身简单,而模型过于复杂,那么模型就会比较僵死,无法举一反三,即出现所谓的“过拟合”(overfitting)现象。
实际上,统计学习理论的精神与奥卡姆剃刀原理有着深刻的联系。威廉·奥卡姆(William Occum,1287—1347)是中世纪时期的著名哲学家,他留下的最重要的遗产就是奥卡姆剃刀原理。该原理说,如果对于同一个问题有不同的解决方案,那么我们应该挑选其中最简单的一个。神经网络或者其他机器学习模型也应该遵循类似的原理,只有当模型的复杂度与所解决的问题相匹配的时候,才能让模型更好地发挥作用。
然而,统计学习理论也有很大的局限性,因为理论的严格分析仅仅限于一类特殊的神经网络模型:支持向量机(Supporting Vector Machine)。而对于更一般的神经网络,人们还未找到统一的分析方法。所以说,连接学派的科学家们虽然会向大脑学习如何构造神经网络模型,但实际上他们自己也不清楚这些神经网络究竟是如何工作的。不过,他们这种尴尬局面也是无独有偶,另外一派后起之秀虽然来势汹汹,却也没有解决理论基础问题,这就是行为学派。
行为学派
行为学派的出发点与符号学派和连接学派完全不同,他们并没有把目光聚焦在具有高级智能的人类身上,而是关注比人类低级得多的昆虫。即使这样简单的动物也体现出了非凡的智能,昆虫可以灵活地摆动自己的身体行走,还能够快速地反应,躲避捕食者的攻击。而另一方面,尽管蚂蚁个体非常简单,但是,当很多小蚂蚁聚集在一起形成庞大的蚁群的时候,却能表现出非凡的智能,还能形成严密的社会分工组织。
正是受到了自然界中这些相对低等生物的启发,行为学派的科学家们决定从简单的昆虫入手来理解智能的产生。的确,他们取得了不错的成果。
机器昆虫
罗德尼·布鲁克斯(Rodney Brooks)是一名来自美国麻省理工学院的机器人专家。在他的实验室中有大量的机器昆虫(如图1-9所示)。相对于那些笨拙的机器人铁家伙来说,这些小昆虫要灵活得多。
如果说符号学派模拟智能软件,连接学派模拟大脑硬件,那么行为学派就算是模拟身体了,而且是简单的、看起来没有什么智能的身体。例如,行为学派的一个非常成功的应用就是美国波士顿动力公司(Boston Dynamics)研制开发的机器人“大狗②。如图1-10所示,“大狗”是一个四足机器人,它能够在各种复杂的地形中行走、攀爬、奔跑,甚至还可以背负重物。“大狗”模拟了四足动物的行走行为,能够自适应地根据不同的地形调整行走的模式。
进化计算
约翰·霍兰(John Holland)是美国密西根大学的心理学、电器工程以及计算机的三科教授。他本科毕业于麻省理工学院,后来到了密西根大学师从阿瑟·伯克斯(Arthur Burks,曾是冯·诺依曼的助手)攻读博士学位。1959年,他拿到了全世界首个计算机科学的博士头衔。别看霍兰个头不高,他的骨子里却有一种离经叛道的气魄。他在读博期间就对如何用计算机模拟生物进化异常着迷,并最终发表了他的遗传算法。
遗传算法对大自然中的生物进化进行了大胆的抽象,最终提取出两个主要环节:变异(包括基因重组和突变)和选择。在计算机中,我们可以用一堆二进制串来模拟自然界中的生物体。而大自然的选择作用——生存竞争、优胜劣汰——则被抽象为一个简单的适应度函数。这样,一个超级浓缩版的大自然进化过程就可以搬到计算机中了,这就是遗传算法。
遗传算法在刚发表的时候并没有引起多少人的重视。然而,随着时间的推移,当人工智能的焦点转向机器学习时,遗传算法就一下子家喻户晓了,因为它的确是一个非常简单而有效的机器学习算法。与神经网络不同,遗传算法不需要把学习区分成训练和执行两个阶段,它完全可以指导机器在执行中学习,即所谓的做中学(learning by doing)。同时,遗传算法比神经网络具有更方便的表达性和简单性。
无独有偶,美国的劳伦斯·福格尔(Lawrence Fogel)、德国的因戈·雷伯格(Ingo Rechenberg)以及汉斯·保罗·施韦费尔(Hans-Paul Schwefel)、霍兰的学生约翰·科扎(John Koza)等人也先后提出了演化策略、演化编程和遗传编程。这使得进化计算大家庭的成员更加多样化了。
人工生命
无论是机器昆虫还是进化计算,科学家们关注的焦点都是如何模仿生物来创造智能的机器或者算法。克里斯托弗·兰顿(Chirstopher Langton)进行了进一步提炼,提出了“人工生命”这一新兴学科。人工生命与人工智能非常接近,但是它的关注点在于如何用计算的手段来模拟生命这种更加“低等”的现象。
人工生命认为,所谓的生命或者智能实际上是从底层单元(可以是大分子化合物,也可以是数字代码)通过相互作用而产生的涌现属性(emergent property)。“涌现”(emergence)这个词是人工生命研究中使用频率最高的词之一,它强调了一种只有在宏观具备但不能分解还原到微观层次的属性、特征或行为。单个的蛋白质分子不具备生命特征,但是大量的蛋白质分子组合在一起形成细胞的时候,整个系统就具备了“活”性,这就是典型的涌现。同样地,智能则是比生命更高一级(假如我们能够将智能和生命分成不同等级的话)的涌现——在生命系统中又涌现出了一整套神经网络系统,从而使得整个生命体具备了智能属性。现实世界中的生命是由碳水化合物编织成的一个复杂网络,而人工生命则是寄生于01世界中的复杂有机体。
人工生命的研究思路是通过模拟的形式在计算机数码世界中产生类似现实世界的涌现。因此,从本质上讲,人工生命模拟的就是涌现过程,而不太关心实现这个过程的具体单元。我们用01数字代表蛋白质分子,并为其设置详细的规则,接下来的事情就是运行这个程序,然后盯着屏幕,喝上一杯咖啡,等待着令人吃惊的“生命现象”在电脑中出现。
模拟群体行为是人工生命的典型应用之一。1983年,计算机图形学家克雷格·雷诺兹(Craig Reynolds)曾开发了一个名为Boid的计算机模拟程序(见图1-11),它可以逼真地模拟鸟群的运动,还能够聪明地躲避障碍物。后来,肯尼迪(Kennedy)等人于1995年扩展了Boid模型,提出了PSO(粒子群优化)算法,成功地通过模拟鸟群的运动来解决函数优化等问题。
类似地,利用模拟群体行为来实现智能设计的例子还有很多,例如蚁群算法、免疫算法等,共同特征都是让智能从规则中自下而上地涌现出来,并能解决实际问题。
然而,行为学派带来的问题似乎比提供的解决方法还多。究竟在什么情况下能够发生涌现?如何设计底层规则使得系统能够以我们希望的方式涌现?行为学派、人工生命的研究者们无法回答。更糟糕的是,几十年过去了,人工生命研究似乎仍然只擅长于模拟小虫子、蚂蚁之类的低等生物,高级的智能完全没有像他们预期的那样自然涌现,而且没有丝毫迹象。
三大学派间的关系
正如我们前面提到的,这三个学派大致是从软件、硬件和身体这三个角度来模拟和理解智能的。但是,这仅仅是一个粗糙的比喻。事实上,三大学派之间还存在着很多微妙的差异和联系。
首先,符号学派的思想和观点直接继承自图灵,他们是直接从功能的角度来理解智能的。他们把智能理解为一个黑箱,只关心这个黑箱的输入和输出,而不关心黑箱的内部构造。因此,符号学派利用知识表示和搜索来替代真实人脑的神经网络结构。符号学派假设知识是先验地存储于黑箱之中的,因此,它很擅长解决利用现有的知识做比较复杂的推理、规划、逻辑运算和判断等问题。
连接学派则显然要把智能系统的黑箱打开,从结构的角度来模拟智能系统的运作,而不单单重现功能。这样,连接学派看待智能会比符号学派更加底层。这样做的好处是可以很好地解决机器学习的问题,并自动获取知识;但是弱点是对于知识的表述是隐含而晦涩的,因为所有学习到的知识都变成了连接权重的数值。我们若要读出神经网络中存储的知识,就必须要让这个网络运作起来,而无法直接从模型中读出。连接学派擅长解决模式识别、聚类、联想等非结构化的问题,但却很难解决高层次的智能问题(如机器定理证明)。
行为学派则研究更低级的智能行为,它更擅长模拟身体的运作机制,而不是脑。同时,行为学派非常强调进化的作用,他们认为,人类的智慧也理应是从漫长的进化过程中逐渐演变而来的。行为学派擅长解决适应性、学习、快速行为反应等问题,也可以解决一定的识别、聚类、联想等问题,但在高级智能行为(如问题求解、逻辑演算)上则相形见绌。
有意思的是,连接学派和行为学派似乎更加接近,因为他们都相信智能是自下而上涌现出来的,而非自上而下的设计。但麻烦在于,怎么涌现?涌现的机制是什么?这些深层次问题无法在两大学派内部解决,而必须求助于复杂系统科学。
三大学派分别从高、中、低三个层次来模拟智能,但现实中的智能系统显然是一个完整的整体。我们应如何调解、综合这三大学派的观点呢?这是一个未解决的开放问题,而且似乎很难在短时间内解决。主要的原因在于,无论是在理论指导思想还是计算机模型等方面,三大学派都存在着太大的差异。
分裂与统一
于是,就这样磕磕碰碰地,人工智能走入了新的世纪。到了2000年前后,人工智能的发展非但没有解决问题,反而引入了一个又一个新的问题,这些问题似乎变得越来越难以回答,而且所牵扯的理论也越来越深。于是,很多人工智能研究者干脆当起了“鸵鸟”,对理论问题不闻不问,而是一心向“应用”看齐。争什么争呀,实践是检验真理的唯一标准,无论是符号、连接、行为,能够解决实际问题的鸟就是好鸟。
群龙无首
在这样一种大背景下,人工智能开始进一步分化,很多原本隶属于人工智能的领域逐渐独立成为面向具体应用的新兴学科,我们简单罗列如下:
自动定理证明
模式识别
机器学习
自然语言理解
计算机视觉
自动程序设计
每一个领域都包含大量具体的技术和专业知识以及特殊的应用背景,不同分支之间也几乎是老死不相往来,大一统的人工智能之梦仿佛破灭了。于是,计算机视觉专家甚至不愿意承认自己搞的叫人工智能,因为他们认为,人工智能已经成为了一个仅仅代表传统的符号学派观点的专有名词,大一统的人工智能概念没有任何意义,也没有存在的必要。这就是人工智能进入2000年之后的状况。
贝叶斯统计
但是,世界总是那么奇妙,少数派总是存在的。当人工智能正面临着土崩瓦解的窘境时,仍然有少数科学家正在逆流而动,试图重新构建统一的模式。
麻省理工学院的乔希·特南鲍姆(Josh Tenenbaum)以及斯坦福大学的达芙妮·科勒(Daphne Koller)就是这样的少数派。他们的特立独行起源于对概率这个有着几百年历史的数学概念的重新认识,并利用这种认识来统一人工智能的各个方面,包括学习、知识表示、推理以及决策。
这样的认识其实可以追溯到一位18世纪的古人,这就是著名的牧师、业余数学家:托马斯·贝叶斯(Thomas Bayes)。与传统的方法不同,贝叶斯将事件的概率视为一种主观的信念,而不是传统意义上的事件发生的频率。因此,概率是一种主观的测度,而非客观的度量。故而,人们也将贝叶斯对概率的看法称为主观概率学派——这一观点更加明确地凸显出贝叶斯概率与传统概率统计的区别。
贝叶斯学派的核心就是著名的贝叶斯公式,它表达了智能主体如何根据搜集到的信息改变对外在事物的看法。因此,贝叶斯公式概括了人们的学习过程。以贝叶斯公式为基础,人们发展出了一整套称为贝叶斯网络(示例见图1-12)的方法。在这个网络上,研究者可以展开对学习、知识表示和推理的各种人工智能的研究。随着大数据时代的来临,贝叶斯方法所需要的数据也是唾手可得,这使得贝叶斯网络成为了人们关注的焦点。
通用人工智能
另外一个尝试统一人工智能的学者是澳大利亚国立大学的马库斯·胡特(Marcus Hutter),他在2000年的时候就开始尝试建立一个新的学科,并为这个新学科取了一个响当当的名字:通用人工智能(Universal Artificial Intelligence)。
胡特认为,现在主流的人工智能研究已经严重偏离人工智能这个名称的本意。我们不应该将智能化分成学习、认知、决策、推理等分立的不同侧面。事实上,对于人类来说,所有这些功能都是智能作为一个整体的不同表现。因此,在人工智能中,我们应该始终保持清醒的头脑,将智能看作一个整体,而不是若干分离的子系统。
如果非要坚持统一性和广泛性,那么我们就不得不放弃理论上的实用性,这恰恰正是胡特的策略。与通常的人工智能研究非常不同,胡特采用的是规范研究方法,即给出所谓的智能程序一个数学上的定义,然后运用严格的数理逻辑讨论它的性质。但是,理论上已证明,胡特定义的智能程序是数学上可构造的,但却是计算机不可计算的——任何计算机都无法模拟这样的智能程序——只有上帝能计算出来。
不可计算的智能程序有什么用?相信读者会有这样的疑问。实际上,如果在20世纪30年代,我们也会对图灵的研究发出同样的疑问。因为那个时候计算机还没有发明呢,那么图灵机模型有什么用呢?这也仿佛是传说中英国女王对法拉第的诘难:“你研究的这些电磁理论有什么用呢?”法拉第则反问道:“那么,我尊敬的女王陛下,您认为,您怀中抱着的婴儿有什么用呢?”
胡特的理论虽然还不能与图灵的研究相比,但是,它至少为统一人工智能开辟了新方向,让我们看到了统一的曙光。我们只有等待历史来揭晓最终的答案。