- 人工智能全传
- (英)迈克尔·伍尔德里奇
- 11字
- 2021-04-08 15:16:39
第一部分 人工智能是什么
第一章 图灵的电子大脑
我建议大家考虑一个问题:“机器能思考吗?”
——艾伦·图灵,1950年
每个故事都有个开头,对人工智能(Artificial Intelligence, AI)而言,可以选择的开头有很多,因为人类对人工智能的梦想,可以追溯到很久很久以前。
我们可以选择从古希腊开始,铁匠之神赫菲斯托斯(Hephaestus)拥有赋予金属物品生命的能力。
我们可以选择从16世纪的布拉格开始,传说中伟大的拉比在那里用黏土制作了一个傀儡魔像,意图保护该城市的犹太人免遭迫害。
我们可以选择从18世纪苏格兰的詹姆斯·瓦特(James Watt)开始,他为正在建造的蒸汽机设计了一个巧妙的自动控制系统——调速器,从而为现代控制理论奠定了基础。
我们可以选择从19世纪初开始,年轻的玛丽·雪莱(Mary Shelley)被恶劣的天气困在瑞士的一栋别墅里,和她的丈夫——诗人珀西·比希·雪莱(Percy Bysshe Shelley),以及他们家的朋友拜伦(Byron)勋爵一起,玩了一场文字游戏,创作了《弗兰肯斯坦》[1]。
我们可以选择从19世纪30年代开始,在彼时的伦敦,阿达·洛芙莱斯(Ada Lovelace),上文提到的那位拜伦勋爵的女儿——虽然父女俩关系非常疏远——与查尔斯·巴贝奇(Charles Babbage)建立了友谊,性情乖张的巴贝奇发明了分析机,这激励着才华横溢的阿达探寻机器是否最终能够具备创造性[2]。
我们也可以选择从18世纪掀起的自动机器装置狂热开始。那些小型自动机器装置被设计得无比精妙,有一种被赋予生命的错觉。
追溯人工智能的开端,我们可以有许许多多的选择,但对我来说,人工智能故事的开头与计算机的开端应该是一致的。对此,我们有一个非常明确的起点:1935年,剑桥大学国王学院,一位才华横溢、不拘泥于传统的年轻学生——艾伦·图灵(Alan Turing)。
剑桥1935
现在,艾伦·图灵是一个家喻户晓的名字,但我们很难想象在20世纪80年代,这个名字在数学和计算机领域以外压根不为人知。虽然相关专业的学生可以在教材上偶遇图灵的名字,但对他非凡的成就知之不详,更不了解他那悲惨的命运。部分原因是图灵在第二次世界大战期间为英国政府效力,承担了一项非常重要的工作,而这项杰出工作的成果一直秘而不宣,直到20世纪70年代才公开[1]。但是,更重要的原因是歧视,因为图灵是同性恋,在当时的英国,同性恋是一种犯罪。1952年,他以“严重猥亵罪”被起诉和定罪,被迫服用某种旨在降低性欲的粗制滥造的药物来进行所谓的“化学阉割”。两年后,他亲手结束了自己的生命,年仅41岁[2]。
尽管如今的我们对图灵的故事所知甚少,但多少略知一二。其中最著名的桥段自然是二战期间他在布莱切利庄园破译密码的传奇,因2014年好莱坞电影《模仿游戏》而天下皆知(虽然电影和现实的差距大得惊人)。他为盟军的最终胜利立下了汗马功劳。但是,人工智能研究人员和计算机科学家崇拜图灵,是出于完全不同的理由:他是真正意义上的计算机发明者,不久,又成为人工智能领域的主要奠基人。
图灵在诸多领域都有非凡成就,最非凡的是在偶然的机会下,他发明了计算机。20世纪30年代中期,图灵还是剑桥大学数学系的一名学生,他给自己定下一个超前的挑战,那就是解决彼时最重要的终极数学问题之一:判定问题。这个令人印象深刻——坦率地说,是可怕——的问题,由数学家大卫·希尔伯特(David Hilbert)于1928年提出。判定问题是指,是否所有的数学描述都是“可判定的”,即是否存在一种方法,可以确认某个给定的数学描述是真是假。当然,希尔伯特关心的领域并非“有没有上帝”或者“生命的意义是什么”之类,而是数学领域中的判定问题。判定问题是一种有着明确“是”或“否”的答案的数学问题。以下是判定问题的示例:
·2 + 2是否等于4?
·4×4是否等于16?
·7919是否是一个质数?
很凑巧,这几个问题的答案都是“是”。前两个问题的答案是显而易见的,但是,除非你是个痴迷于质数的人,否则要回答第三个问题得稍微费点儿劲了。所以,我们来看看最后一个问题。
你应该记得,质数的定义是一个只能被自己和1整除的整数。现在回到这个问题,我相信从原则上讲,你能够寻找到一个验证它的方法。有一个很容易想到的笨办法,当然,对7919这么大的数字来说有些烦琐:依次用每一个整数去除它,看看它能不能被某个数除尽。重复这个过程以后,你会发现,除了1和7919本身,没有其他可以除尽它的数,这就意味着7919确实是一个质数[3]。
重点在于,上述问题可以用一个精准的方式来寻找答案。这种方式不需要任何灵活的应用——只是一些需要死记硬背的方法。要寻找答案,我们只需要严格按照方法所示的步骤执行就可以。
既然有这样的方法保证能够验证这个问题的是与否(只要有足够的时间),我们就可以说,“某个数是否是一个质数”是可判定问题。在此我强调一下,这就意味着,每当我们遇见“数n是否是一个质数”这样的问题时,只要给予足够的时间,就能找到答案:遵循相关步骤执行,最终就能得到明确的答案。
现在,判定问题提出:是否所有的数学判定问题都是可判定的?或者说,是否存在某种数学问题,无论你投入多少时间,都无法寻找到相应的可供严格遵循来解决问题的方法?
这是一个基础法则类问题,本质是数学问题是否都可以简化为寻找对应算法就可以解决的问题。回答这个基础问题是图灵在1935年给自己立下的艰巨挑战,而他以令人难以置信的惊人速度解答出来了。
一想到深奥的数学问题,我们很容易就会认为解决它们的方法是冗长而复杂的,涉及大篇幅的方程式和证明过程。有时候,事实的确是这样,例如英国数学家安德鲁·威尔斯(Andrew Wiles)在20世纪90年代论证著名的费马大定理,数学界花费了好几年时间才消化了他那几百页的手稿,并确信他的论证是正确的。按照这样的标准,图灵解决判定问题的方案简直是颠覆性的。
与大家想象中的不同,图灵的证明短小精悍,而且很容易读懂(在确立了基本框架以后,真正的证明实际上只有几行)。重点在于,图灵意识到,他需要一个精准定义解决问题方法的方案,为此,他发明了一种可以解决数学问题的机器,如今,为了纪念他,我们称之为图灵机。图灵机是一种对方法的具体描述,比如上文提到的检查质数的步骤。图灵机的作用是严格遵循既定的步骤执行运算。在此,我要强调的是,尽管图灵将它称为“机器”,但在那时它只是个抽象的数学概念。通过发明一台机器来解决一个艰深的数学问题,这种想法相当颠覆传统,当年的数学家们肯定都被搞迷糊了。
图灵机就如强悍的神兽,任何你能想出来的数学方法都可以被编码成图灵机。因此,如果所有的判定问题都是可以解决的,就意味着任何判定问题都可以通过设计一个专用的图灵机来解决。也就是说,为了解答希尔伯特的问题,你所要做的是,证明存在某种判定问题是任何图灵机都无法解决的。这正是图灵证明这一命题的方法。
接下来,图灵耍了点小把戏,让他的机器摇身一变,成为能够解决通用问题的机器。他设计了一种图灵机,可以按照人们给它的任意方法进行运算,现在我们把它称为通用图灵机[4]。一台计算机最核心也最基础的部分,就是一台真正的通用图灵机。计算机所运行的程序,本质上就是运算的步骤,类似前文我们提到的确认质数的步骤。
尽管这不是我们故事的重点,但至少得提出来图灵是怎么用它的新发明解决判定问题的。除了惊叹于他精巧独到的心思,我们还应该意识到,它跟人工智能最终是否可能存在有着密切关系。
图灵的构想是存在这样一台图灵机,可以用来判定任意图灵机的运行结果。他考虑了以下问题:给定一台图灵机和相关输入集,它最终是会停止,还是永无止境地运行下去?这就是一个判定问题了,属于我们前文讨论过的范畴,尽管它相对复杂一些。现在,假设存在一个机器能够判定这个判定问题,图灵指出,这个假设会引起悖论[3]。因此,没有办法检测出图灵机是否停止。那么,“图灵机是否停止”是一个不可判定问题。所以图灵得出结论:存在某些判定问题不能简单地按照确定的步骤来解决。他解决了希尔伯特的难题:数学并不能被简化为遵循方法解决问题[5]。
这一结果是20世纪数学界最伟大的成就之一,单凭它就足以让图灵在数学界名垂青史。但更伟大的是它的副产物——通用问题解决机器,即图灵机。图灵发明图灵机的时候,它只是个抽象的概念,他并没有想着将它实体化。不过没过多久,不少人,包括图灵自己,开始着手把这个想法转化成现实。在二战时的慕尼黑,康拉德·楚泽(Konrad Zuse)为德国航天部设计了一台名为Z3的计算机,虽然它算不上一台完整的计算机,但引入了不少关键部分。在大西洋彼岸的美国宾夕法尼亚州,由约翰·穆克里(John Mouchly)和普雷斯伯·埃克特(J. Presper Eckert)领导的小组开发了一台名为ENIAC的机器来计算火炮射击表。杰出的匈牙利裔数学家约翰·冯·诺依曼(John von Neuman)对它进行了相关调整,使ENIAC具备现代计算机的基本架构(为了纪念这位数学家,传统计算机的架构被称为“冯·诺依曼架构”)。在战后的英国,弗雷德·威廉姆斯(Fred Williams)和汤姆·基尔伯恩(Tom Kilburn)建造了昵称为“曼彻斯特宝贝”的小规模实验机,直接促成了世界上第一台商用计算机“费兰蒂一号”的出现(图灵本人于1948年加入曼彻斯特大学的工作团队,并编写了最早运行的程序)。
到了20世纪50年代,现代计算机的所有关键部件都被发明出来了。图灵机已经从数学概念转化为实实在在的机器——只要你有足够的金钱买下它,以及足够的场地摆放它(要装下“费兰蒂一号”,至少需要两个16英尺[4]长、8英尺高、4英尺宽的储藏室。机器的功率为27千瓦——它消耗的电能可以供应至少三个现代家庭用电)。当然,随着时代的发展,计算机变得越来越小巧,越来越便宜。
电子大脑的实际功能
还有什么比耸人听闻的标题更能取悦报社编辑的呢?第二次世界大战结束后,第一台计算机建成,世界各地的报纸都争相报道这项神奇的发明——电子大脑。这些看起来可怕又复杂的机器有着令人炫目的计算能力,用它们处理海量的复杂算术问题,其速度和精确程度远远超乎人类想象。对于那些不了解计算机原理的人来说,能完成复杂算术任务的机器似乎拥有某种高级智能。因此,它被人们称为电子大脑,然而,名不副实(直到20世纪80年代,当我首次对计算机领域产生兴趣时还能听到这类说法)。事实上,这些电子大脑确实能承担许多对人类而言烦琐、复杂且困难的计算,但它们并没有智能可言。所以,了解清楚计算机最初发明出来是做什么的,以及它不能做什么,是理解人工智能局限的核心,也能让我们明白,为什么实现人工智能的宏伟目标如此困难。
请记住,图灵机,以及它的物理表现形式计算机,它们只是遵循各种指令的机器而已。这是它们存在的唯一目的——它们被设计出来就是做这个的,也只会做这个。我们给予图灵机的指令,现在被称为算法或者程序[6]。大多数程序员可能都不太清楚他们打交道的东西本质上跟图灵机类似,这也不怪他们——直接为图灵机编程简直是受罪,无聊、烦躁得令人生厌,一代又一代在编程路上吃尽苦头的计算机专业学生能够证明这一点。因此,我们在图灵机上构建更高级的语言,诸如Python、Java和C语言之类,让编程变得简单。高级语言的作用是向程序员隐藏机器语言中某些烦琐到可怕的细节,让编程变得容易一些。但从本质上来说,编程仍然是枯燥乏味、令人生厌的,这就是为什么学编程这么难,为什么计算机程序总是莫名其妙地崩溃,为什么优秀的程序员薪水总是这么优渥。
在本书中我不会教你编程,不过了解一下程序指令的作用以及电脑怎么按照步骤来执行程序也是有必要的。粗略地说,计算机能做的,就是按步骤执行一系列指令而已[7],例如:
将A与B相加
如果结果大于C,则执行D,否则执行E
重复执行指令F,直到遇见情况G
所有的计算机程序都能归结为类似的指令列表,不管是Microsoft Word还是PowerPoint,不管是《使命召唤》还是《我的世界》,不管是脸书、谷歌还是淘宝,不管是浏览器还是手机App,抑或是支付宝、微信、QQ……全都能归结为类似的指令列表。如果我们要制造智能机器,它的智能最终必须缩减到遵从这些简单的、明确的指令上。这从本质上对人工智能提出了挑战:把这些简单的指令排列组合起来,真的可以产生智能行为吗?
在本章的剩余部分,我会深入挖掘这个问题,并试图明确它在人工智能发展历程上所产生的影响。然而,在讲述之前,我得先为计算机正名。本章截至目前,我向你描述的计算机似乎就是一坨无用的废铁,我觉得有必要强调一下它的伟大之处,以免误导大家。
首先,计算机的运算速度非常快,非常、非常、非常快。虽然这点尽人皆知,但是我们在日常生活中很难直观地感受到。所以,我们来量化一下这个陈述。在我写这本书的时候,一台普通的台式机以全速运行,每秒可以处理1000亿条指令。1000亿大概是银河系所有恒星的数量,不过这么说还是不太直观。所以,请你想象一下自己要通过手动执行指令来和计算机进行一次较量。你大概每10秒执行一条指令。你得做到不吃不喝、不眠不休(全年365天,全天24小时,每小时60分钟,每分钟60秒),那么大概需要31 710年,你才能完成计算机1秒钟就能搞定的工作。
当然,除了速度慢得令人发指以外,跟计算机比起来,你还有一个最关键的劣势:你不可能在执行海量任务的时候保证不出错。相比人类,计算机的错误率极低。当然,程序崩溃是常见的,但那几乎全是程序员编写程序时出的错,而不是计算机本身的问题。现代计算机的处理器可靠性非常高,它们的平均无故障运行时间高达50 000小时,每秒钟都能忠实地执行数百亿条指令。
最后,虽然计算机只是遵循指令的机器,但并不意味着它不能做决定。计算机当然可以做决策,只是我们必须给出它做决策所需要的精准指令。计算机随后可以自行调整这些指令,只要我们指导它在何种情况下应该如何做——这就意味着,计算机可以随着时间推移改变其行为——它能够学习。
人工智能的产生为何如此艰难
现在我们了解到,计算机可以非常迅捷而精准地执行简单的指令,另外,只要输入精准定义过的指令,它就能够做决策。我们可以顺理成章地得出结论,某些需要计算机为我们处理的事务可以用非常简单的方式进行编码,可有些功能则不然。要理解人工智能的产生为何如此艰难,为什么如此难以定义何为人工智能真正的“进步”,我们需要了解一下到底哪些问题是容易用编程来解决的,而哪些问题则很难用编程解决,以及为什么。图1展示了我们希望计算机能够完成的任务,以及它们的难易程度及实现时间。
排在最前面的是计算。让计算机做计算是最简单不过的,因为所有的基础运算(加、减、乘、除)都可以用非常简单的步骤来运行——你在学校里都学过,哪怕现在已经不记得了。这些步骤可以直接编译成计算机程序,早期的计算机本身就是为了解决计算问题而生的(1948年,图灵加入曼彻斯特大学团队,为计算机“曼彻斯特宝贝”编写的第一条程序就是执行长除法。在解决了20世纪最深刻的数学问题之一以后,又回到了学校里学过的基础数学上来,这对图灵而言定然是一次奇特的经历)。
图1 我们希望计算机能完成的任务,按照难易程度排序括号中的年份表示问题解决的大致时间,而目前为止,对于“远未实现”的任务,我们毫无头绪。
接下来是排序,是指把一系列随机的数字按照升序排列,或者一系列姓名按照字母顺序排列。这听起来一点儿都不人工智能,事实上排序的步骤并不复杂。然而,传统的笨办法慢得令人发指。一直到1959年,快速排序法才被发明出来,排序这个老大难问题才算得到了一个有效率的解决方法(快速排序法诞生后50年内,都没出现比它更优秀的排序算法)[8]。
然后我们要讨论需要攻克重重难关才能解决的问题。下棋就是重大挑战之一,它也是人工智能故事中非常重要的一环。事实上,有一种简单粗暴的方式可以玩好棋类游戏,基于一种名为搜索的技术,我们将在下一章详细讨论它。问题在于,尽管基于搜索进行编程是最简单不过的事情,但它除了能适应一些简单的游戏以外毫无用处,因为它需要占用太多内存,消耗太多时间——哪怕我们把整个宇宙的每一个原子都用来建造计算机,它也承担不起用“简单粗暴”的搜索方式来下一盘围棋或者象棋。为了让搜索具有可行性,我们需要增加一些额外的东西——就如我们在下一章即将看到的那样,至此,人工智能开始登场。
我们知道有办法解决问题,但是在实践技术中却无法实施——因为它们需要的计算资源太过庞大。这种情况在人工智能研究领域司空见惯,围绕着怎么处理这类问题,人们也进行了大量的研究。
不过列表中接下来的问题并非此类,人脸识别、自动翻译和实时可用的口语翻译与棋类游戏不一样,传统的计算机技术无法为我们提供解决这类问题的方法,我们需要探索全新的解决方案。当然,在列表上,这类问题已经通过一种名为机器学习的方式得到了解决,我们将在后续章节深入了解有关机器学习的内容。
接下来是一个吸引人的话题,无人驾驶汽车。驾驶对人类而言是一件很简单的事情,开车并不是一项需要高智商的技能。但事实证明,让电脑来控制汽车简直困难重重。主要的问题在于,汽车需要知道它所处的位置以及周围环境。想象一下,一辆无人驾驶的汽车来到纽约繁忙的十字路口,数不尽的汽车从它身边呼啸而过,还有行人、自行车、道路施工、交通标志和各种标线。还有可能遇到下雨、下雪或者大雾,这让周围情况变得更加复杂(在纽约,这三种气象甚至可能同时出现)。这种情况下,难点并不在于你要做什么(减速、加速、左转或者右转等),而是要弄清你的周围发生了什么,即将发生什么——确认你的位置,周围有哪些车辆,它们的位置,它们会朝哪个方向行驶,行人的位置,行人的移动轨迹,等等。如果充分掌握了所有信息,那么你决定接下来该怎么做就非常容易了。(我们会在稍后的章节里面讨论无人驾驶的细节。)
然后就是我们真不知道该怎么解决的问题了:计算机怎么去理解一个复杂的故事,并且回答有关它的问题?计算机如何能把类似小说这种细致入微的文本翻译到信达雅的程度?计算机如何看图说话——不光是识别图中的人物,而是要诠释图中发生的事情?计算机如何能创作出一个有趣的故事,或者解读一件艺术品,比如一幅画?最后,仍然回到我们的“宏伟梦想”上,计算机如何拥有类似人类的智能?
因此,人工智能的进步意味着让计算机能够越来越多地完成图1中所列举的任务,这些任务难以完成的原因通常有两种。第一种是我们虽然知道理论上有某种可以解决问题的方法,但实际上却行不通,因为它需要太过漫长的运算时间,占用太高的内存,像象棋和围棋这样的棋类游戏就属于这一类。第二种是我们不知道解决问题的方法是什么(例如人脸识别),要解决这类问题,我们需要一些全新的东西(例如机器学习)。几乎所有当代的人工智能研究都关注着这两类问题之一。
现在,我们来看看图1中最困难的问题——通用的、人类水准的智能机器这一宏伟梦想。毫无疑问,这一挑战吸引了无数人的关注。而其中最早的以及最有影响力的思想家之一,就是我们的老朋友,艾伦·图灵。
图灵测试
20世纪40年代末至50年代初,第一台计算机的出现引发了一场公开辩论,辩论主题就是这一现代科学奇迹的潜力如何。这场辩论中最瞩目的贡献当归属于一本名叫《控制论》的书,由麻省理工学院数学教授诺伯特·维纳(Norbert Wiener)撰写。这本书将机器与动物大脑神经系统做了详细对比,并触及了许多有关人工智能的想法。《控制论》引起了公众的极大兴趣,但事实上,除了特别专注于此的科学家以及专业数学家,大多数人无法理解这本书。诸如机器是否能“思考”的问题开始在新闻界和广播节目中引起了有模有样的争论(1951年,图灵本人还参加了相关主题的一个BBC广播节目)。虽然还没有名字,但人工智能的萌芽开始浮现。
在公众辩论的推动下,图灵开始认真思考人工智能的可能性。他对公众辩论中经常提到的“机器做不到×××”的说法非常恼火(例如思考、推理或者进行类似创造性的工作)。他想让那些认为“机器不能思考”的人彻底闭嘴,于是提出了一个测试,现在,我们称之为图灵测试。自1950年第一次提出以来,图灵测试一直具有巨大的影响力,直至如今,它仍然是一个严肃的研究课题。不过,令人遗憾的是,到目前为止,它仍然没能让怀疑者彻底沉默,我们接下来就来讨论原因。
图灵测试的灵感来源于维多利亚时代一种叫作“模仿游戏”的室内游戏。“模仿游戏”的基本玩法是通过对一个人提问,从回答来判断对方是男是女。图灵建议对人工智能采取类似的测试。测试通常是这样描述的:
人类询问者通过键盘与屏幕彼端的“生物”进行交互聊天,询问者事先并不知道对方是人还是计算机程序。交互纯粹以文本的形式进行:询问者键入一个问题,然后对方给予一个回应。询问者的任务是确定对方是人还是计算机程序。
现在,假设被询问的确实是计算机程序,但是经过一段合理的时间,询问者无法准确判断他是在与人还是计算机交互。图灵认为,你就得承认这样的计算机程序拥有类似人类的智能(或者自主思维以及别的称呼)。
图灵的杰出之处是避开了所有存在争议的问题,直指计算机程序是否“真正”拥有智能(或者意识以及其他说法)、程序是否真正有“思维”(或者意识、自主意识什么的)并不是重点,重点在于它能够做到“乱真”,即让测试者无法分辨出程序和真人。这里的关键词在于“无法分辨”。
图灵测试是科学界中标准技术的一个优秀例子,如果你想确认两种事物是相同的还是不同的,就思考一下如何设计合理的测试来区分它们。若是有一种合理的测试,两种事物其中一种能通过,另一种不能,那么你可以宣称它们是不同的。如果不能通过合理的测试来区分它们,那么就不能声称它们是不同的。图灵测试就是用来区分机器智能与人类智能的方法,测试的方式是人类询问者是否能够分辨出与之交流的是机器还是人。
然而在这个问题上我们得谨慎一些,多年来,许多定义人工智能的方式都遇到过类似的困境,它们总是根据所使用的技术方法来定义人工智能。例如,如果你最喜欢的人工智能技术是“时间递归最优学习”[5](我随机挑了个时下最流行的人工智能相关词汇),那么你可能更倾向将人工智能的挑战定义为能够使用时间递归最优学习方式通过图灵测试,从而排除掉其他的技术方法。我们需要的是智能行为的测试,它独立于实现智能行为所使用的技术方法之外。图灵测试通过将询问者与测试对象分开来实现这一点:询问者只能通过提问和对方的回答来进行判断——询问者发送问题,并接收测试对象发来的答案。就图灵测试而言,被测试的对象是一个黑盒,从某种意义上来说,我们不允许检查其内部结构,只能对其进行输入和输出。
图灵于1950年在著名国际期刊《心智》上发表的《计算机器与智能》论文中[9],描述了他的测试。尽管在此前有许多关于人工智能思想的论文,但图灵是第一个从现代数字计算机的角度探讨这个问题的,因此,他的文章被公认为首篇有关人工智能的论文。
毫无意义的图灵测试
图灵测试简单、优雅、易懂,然而很不幸,若是将它奉为人工智能测试的圭臬,则无法回避一个致命问题——哪怕时至今日,它仍然存在。
这个问题在于,大多数试图通过图灵测试的程序员都倾向于使用一些简单的小技巧来“骗过”询问者,使他们相信自己正在与真人打交道,即用小伎俩去迷惑询问者,而并非真正去探寻与解决智能行为的本质。最著名的例子应该是名为ELIZA的程序,它诞生于20世纪60年代中期,由美籍德国人、麻省理工学院计算机科学家约瑟夫·魏岑鲍姆(Joseph Weizenbaum)创造。魏岑鲍姆本人倒是无意让ELIZA挑战图灵测试——ELIZA原本是一项严肃的、富有影响力的心理治疗科学实验——但遗憾的是,自此以后,ELIZA就成了采用肤浅的小伎俩伪装人工智能的代名词,尤其在图灵测试领域。
ELIZA扮演的是一名精神病医生的角色,与病人交谈,提出开放式问题,让病人试图敞开自我。ELIZA学习了一些关键词,比如“家人”“朋友”“孤独”“悲伤”等,然后使用关联了关键词的封装脚本来提出后续问题。明白原理以后,你不用太费劲就能轻易看穿它使用的封装A及镜像反问伎俩。以下是现代版本的一段对话A隐藏编程对象的属性及实现途径,只公布其外部接口进行访问。(ELIZA的回复使用斜体字)[10]:
我很孤独。
你经常感觉到孤独吗?
是的,几乎每天都觉得。
为什么你说几乎每天呢?
我想是家里人的原因。
告诉我一些你家里人的情况吧。
他们讨厌我。
是什么让你相信他们讨厌你呢?
他们对我非常刻薄。
所以你刚才说你很孤独?
生命到底有什么意思?
也许你在生活中可以找到生命的意义。
存在的目的是什么?
是因为你的计划让你思考存在的目的吗?
开场白看起来很不错,但几句对话以后,这种互动的肤浅性暴露无遗——显然ELIZA根本没有理解到对话的意义(当然,魏岑鲍姆也从来没声称它能做到理解对话,这并不是他的实验目的)。
魏岑鲍姆没有预料到ELIZA会在精神病学术界以外引起极大反响,显然他自己都很惊讶,用户对他的简单实验性程序非常沉迷,ELIZA正式进入了人工智能的传说中。20世纪80年代,我在读博士期间,就听说过有孤独症和社会适应不良的研究生,整晚整晚与ELIZA聊天,以取代他们无法建立的正常人际关系。坊间甚至还流传着一个可怕的故事——希望只是虚构的——据说ELIZA无意中鼓励一个抑郁症的学生自杀。魏岑鲍姆要求自己的秘书测试一下是否会出现这样的结果,令他吃惊的是,女秘书要求在她和ELIZA对话期间,魏岑鲍姆必须离开房间,尽管她很清楚这种互动的本质并非真人交流。
ELIZA的影响力,以每年一度的罗布纳奖人工智能竞赛的形式流传至今。也不知道图灵本人能否想象他的测试会有这么多人来参与,但1990年美国富豪发明家休·罗布纳(Hugh Loebner)却真正地支持了这件事情。每年,罗布纳基金会邀请参赛的计算机程序员参与图灵测试,试图让评委们相信与之对话的计算机程序是真人,挑战成功的参赛者将获得十万美金。
罗布纳奖竞赛很快就引起了各种争议。著名人工智能科学家马文·明斯基(Marvin Minsky)认为这是一个“毫无意义的宣传噱头”,这项竞赛仿佛每年都会产生至少一个无可救药的误导性标题。问题就在于,罗布纳竞赛的参赛者很大程度上都是ELIZA的变奏曲,他们并没有试图让询问者开展一场有意义的对话,充分证实人工智能拥有类人的领悟力、理解力和常识,而是使用一些误导技巧来赢得比赛。下面是一段2009年的获奖作品对话片段,来自名为“进展无限”的人工智能,它由著名人工智能评论员、计算机象棋专家大卫·利维(David Levy)编写(“进展无限”的回答使用斜体字)。
嗨,过得怎么样?
你好,你过得怎么样?
挺好的,你是谁?
这个,我在学习工程学,这应该会让你猜想到我是谁。
不好意思,不太清楚。
我迫切想知道有关更多实验的知识。
你来自哪里?
我不知道,不过别忘了我不可能同时出现在三个地方。
你住在哪个城市?
哪个城市?这个问题挺棘手,问题在于,城市看起来都差不多。
并不是这样啊,你住在哪里?
我想是河流边上的老牛奶厂吧。
真有意思,这么说你是个农民吗?
好吧,如果你询问一个生理学家,他不会认为我是个农民。他会说我的主要成分是水——足够装满一个大啤酒桶——再加上一些铁、磷和许多平淡无奇的成分。
对这么一个简单的问题而言,这真是个奇怪的回答,你觉得呢?
我当然会的,看我的!
看起来比ELIZA复杂得多,但显然离人类之间进行的对话还有非常漫长的道路要走。
ELIZA算是某种互联网产物的始作俑者,一提到这个产物,研究人工智能的程序员们都得抓狂,那就是互联网聊天机器人。它们是基于互联网的程序,试图让用户参与对话,通常活跃于推特等社交媒体平台。开发能够进行有意义对话的程序是一门严肃的研究课题,但绝大多数所谓的互联网聊天机器人都只是使用了关键字联想的脚本而已,再辅以一些类似反问、提出通用问题之类的小伎俩,就如ELIZA一样。因此,它们的聊天内容都是肤浅并且乏味的,这种聊天机器人,并非人工智能。
人工智能的多样性
尽管图灵测试在今天已经没什么用了,但它仍然是人工智能重要的组成部分,因为它第一次给了对这门新兴学科感兴趣的研究人员一个明确的目标。当有人问起你研究的目标是什么,你可以给出直接并且精准的答案:我的目标是创造一台能够真正意义上通过图灵测试的机器。时至今日我不得不说,除了特别严肃认真的人工智能研究人员可能会给出这样的回答,已经鲜有研究员会以此为目标了。但至少它在历史上有着至关重要的作用,我也相信,如今它仍然具备一定的重要性。
图灵测试最吸引人的地方无疑是它非常简单明了,尽管看起来很清晰,它仍然对人工智能提出了许多挑战。
假设你是图灵测试中的询问者,你能够判断跟你交流的对方是真人,其中很重要的依据就是:另一端的测试对象展示了对你提出问题的理解,并且能够给出人类应该给出的答案,此时你发现跟你交流的其实是一段人工智能程序,这才算通过。现在,就图灵测试本身而言,问题是能够解决的。程序正在做一些与人类相同的事情:结束争辩。但是,其中存在两种逻辑上截然不同的情况:
1. 程序确确实实理解了与询问者的对话,这种理解与人类的理解大致相同。
2. 程序并没有真正理解与询问者的对话,但可以模拟出理解对话以后的回复。
这两种情况简直是天差地别,宣称能做到情况1——程序真正能理解对话的,明显比只能做到情况2厉害得多。情况2只需要我们创建表现出能理解对话的程序即可。
我想大多数人工智能研究人员——可能还包括大多数本书的读者——都能轻松理解情况2是容易可行的(至少原则上是可行的)。但要他们接受情况1是可行的这一点上,恐怕得需要更多的说服力。事实上,我们不知道如何证明一段程序如情况1所描述那样运行——图灵测试本身也没有这么要求(我怀疑,图灵本人肯定会对这两者的区别表示恼火:他会指出,发明图灵测试的主要原因之一就是为了结束关于这两者区别的争论)。因此,立志构建一个类似情况1的程序,比起情况2的程序而言,更具有雄心壮志,也更具有争议性。
构建出具有人类的理解力(或者说是意识之类的词)的目标程序,被称为强人工智能,而次一级的目标,即构建虽然没有具备人类的理解力,但是可以模拟出特定能力的程序,被称为弱人工智能。
超越图灵测试
以图灵的“无法分辨”为原则,图灵测试有许多变种。例如,在一个更强大的测试版本中,我们可以想象机器人试图把自己伪装成人类进行日常生活。在这里,“无法分辨”是以一种非常苛刻的方式来诠释的——这意味着机器人与人类完全无法区别(当然,你不能去解剖它们,所以本质上还是黑盒测试)。在可预见的未来,这类情况只能时常出现在小说里面。事实上,一个无法区分机器人和人类的世界,就是绝佳的电影及小说创作素材。以此为基础的电影可不少,1982年,雷德利·斯科特(Ridley Scott)的经典作品《银翼杀手》中,年轻的哈里森·福特(Harrison Ford)饰演的主角每天都在进行神秘的测试,目的是确认漂亮的年轻女性实际上是机器人。类似的主题还有许多,比如2014年的《机械姬》。
虽然《银翼杀手》中的场景还不曾出现,但研究人员已经在探究图灵测试是否存在一些变式,可以有意义地测试真正的智能,并且可以破解类似网络聊天机器人那种骗过询问者的诡计。一种非常简单的想法就是测试理解力,就如著名的威诺格拉德模式都是一些需要理解力的简短句子,下面举例说明[11]:
句子1a:市议员拒绝给示威者颁发许可,因为他们担心暴力。
句子1b:市议员拒绝给示威者颁发许可,因为他们鼓吹暴力。
问题:谁担心/鼓吹暴力?
注意,这两个句子中只有一个词语不同(加下画线词语),但这个小小的不同会影响整个句子的含义。测试的重点在于确定在每种情况下,被测试对象都能准确地辨认出“他们”指代的是谁。在句子1a中,“他们”显然是指市议员(市议员担心示威者出现暴力行为),而在句子1b中,“他们”指的是示威者(市议员担心示威者会鼓吹暴力行为)。
这里我们再举一个例子:
句子2a:奖杯不能放进棕色手提箱里,因为它太大了。
句子2b:奖杯不能放进棕色手提箱里,因为它太小了。
问题:什么东西太大/太小?
显然,在句子2a中,是奖杯太大,句子2b中,则是手提箱太小。
大多数稍有文化和常识的成年人都能轻易辨认出两个例子中的区别,类似这样的问题完全难不倒真人,但类似聊天机器人使用的那些小伎俩就会被这种简单的句式辨别出来。为了给出正确答案,被测试者需要真正理解这些句子,并且要对讨论的场景有一定了解。比如,要辨别句子1a和1b的差异,你需要了解什么叫示威者(示威往往有可能导致暴力行为),什么叫市议员(他们有权批准或拒绝示威许可,并且他们会努力避免暴力行为出现)。
人工智能所面临的另一个类人挑战是理解人类世界,以及支配其中的许多约定俗成的规则。下面是心理学家兼语言学家斯蒂芬·平克(Steven Pinker)设计的一段简短对话:
鲍勃:“我要离开你。”
爱丽丝:“她是谁?”
你能解释这段对话的意思吗?当然,对你来说这太容易了,这就是肥皂剧中经常会出现的场景:鲍勃和爱丽丝在谈恋爱,现在鲍勃的话让爱丽丝认为他移情别恋了,她想知道那个插足他们感情的女人是谁。并且,我们可以推测出,爱丽丝一定很生气。
但是你怎么能让计算机编程来理解这样的对话呢?这样的理解力对于听故事、写作来说,都是必不可少的。如果能理解这种贯穿于生活中的常识性的东西,以及人类的信仰、欲望和关系,计算机程序就可以欣赏类似《东区人》的肥皂剧了。我们都拥有这样的能力,这似乎也是分辨强人工智能和弱人工智能的关键点。对于如何让机器拥有这样的理解力,我们还只有模糊的想法,到目前为止,没有一个成功的案例。机器要想理解这样的场景,回答关于这些场景的问题,还有漫长的道路要走。
通用人工智能
虽然如我们所证明的那样,人工智能的宏伟梦想听起来简单明了,但要想实现它,目前研究人员简直是毫无头绪,连给它下一个精准的定义都难上加难,更不知道什么时候才能做到。因此,尽管强人工智能是人工智能故事中一个重要而迷人的部分,但很大程度上,它与当代的人工智能研究无关。去参加一个尖端人工智能研讨会,你几乎听不到有关内容的讨论,倒是在深夜的酒吧里面能听到不少。
另一个退而求其次的目标就是制造具有普遍人类智能水准的机器,现在,通常称其为通用人工智能(Artificial General Intelligence, AGI), AGI大致等同于一台拥有一个普通人所拥有的全部智慧能力的计算机,包括使用自然语言交流(参见图灵测试)、解决问题、推理、感知环境等能力,与一个普通人处于同等或者更高等级的智能水准。一个能够实现的AGI系统将能完成图1所示的所有任务,甚至更多。关于AGI的文献通常不涉及自我意识或者自主意识之类,因此AGI被认为是弱人工智能的弱版本[12]。
然而,即使这个次一级的目标,也是当代人工智能研究的边缘。与之相反,人工智能领域的研究人员更关注的是构建能够执行当前必须依靠人脑来执行的任务的计算机程序——逐步遍历图1所示的任务集。这种人工智能的实现方法——让计算机完成某种特殊任务,有时候被称为狭义人工智能。但这个说法并非人工智能科研领域的术语。事实上,如果你在某个人工智能大会上使用这种方式表达,别人会认为你是个外行。我们不会把目前所研究的人工智能加个“狭义”的前缀,因为所谓的狭义人工智能,就是人工智能。对于那些渴望机器人全能管家的人而言,这不是个好消息。但对那些担心机器人叛乱统治人类的人而言,这可能还真是个好消息。
所以,现在你应该明白,人工智能究竟是什么东西了,并且知道它为何如此难以实现。但是,人工智能的研究人员究竟是怎么做到解决各种问题的呢?
心智或者大脑?
我们怎样才能够让计算机产生人类水准的智能行为呢?历史上,人工智能研究人员对这个问题有两种实现方式。粗略地说,第一种是试图建立思维模型:有意识的推理、认知、解决问题的过程,我们在生活中都会用到的过程。这种方法被称为符号人工智能,因为它使用各种符号来代表各种事物,并对此进行推理、认知等行为。例如,机器控制系统中的符号“room 451”可能是机器人用来指代你卧室的符号,而“cleanroom”则是用来定义房间清洁这一活动的符号。当机器人确定要做什么的时候,它会明确使用这些符号。例如,当机器人决定执行“cleanroom(room 451)”操作,这就意味着机器人要对你的卧室进行清洁。符号就意味着机器人语言中的事物及行为。
从20世纪50年代中期到80年代末,30多年的时间里,符号人工智能一直是构建人工智能体系最流行的方式。它有许多优势,或许最重要的一点是,它的过程是透明的:当机器人认为它应该执行“cleanroom(room 451)”操作时,我们可以理解为它知道即将做什么。不过,我认为符号人工智能之所以这么流行,是因为它反映了我们有意识的思维过程。我们本身“思考”的方式就是用符号或者文字流程化了,在决定做什么之前,我们可能会跟自己来一场心灵对话,讨论各种方案的利弊,最终决定执行某一种。符号人工智能渴望捕捉这一切,我们将在第二章讨论相关问题。在20世纪80年代初期,符号人工智能的发展达到巅峰。
另一种模拟智慧的方式是模拟大脑,这是一种极端的可能性,即试图在计算机中模拟一个完整的人类大脑(也许还得包含完整的神经系统)。毕竟,人类的大脑是我们唯一确定能产生智慧的事物。这种方法的问题在于,大脑是一个复杂得难以想象的器官:人脑包括大概1000亿个相连的神经元,我们对它们的成分、结构和如何运作的了解还达不到复制大脑结构的程度。这不是一个很快能够实现的目标,甚至我怀疑它根本没有可实现性(我不得不遗憾地说,这也无法浇灭某些人尝试进军该领域的热情)[13]。
不过我们可以从大脑结构中获取一些灵感,并以此结构为基础构造智能系统中的组件。这个研究领域被称为神经网络——这个名字来自我们大脑微观结构中细胞信息处理单元神经元,它们是呈网状连接的。神经网络的研究可以追溯到人工智能出现之前,并沿着人工智能的主流研究发展。正是神经网络研究在21世纪取得的突破性进展,才带来了目前人工智能研究领域的繁荣。
符号人工智能和神经网络人工智能是两条截然不同的道路,所使用的方法也完全不同。在过去的60年里,它们都有着各自的辉煌和没落,我们也将在后续章节讨论到,两种流派彼此之间也爆发过激烈的争论。然而,在20世纪50年代,人工智能作为一门新兴的学科诞生,符号人工智能在很大程度上占据了主流地位。
[1] 《弗兰肯斯坦》被认为是世界上第一部真正意义上的科幻小说。
[2] 查尔斯·巴贝奇发明的分析机被认为是最早期的计算机雏形,而阿达·洛芙莱斯的算法则被认为是最早的计算机程序和软件。
[3] 图灵指出的悖论即著名的“停机问题”,如果存在图灵机A,对它输入任意图灵机,都能够判定其运行结果是“停机”或者“不停机”,那么可以构造图灵机B,调用图灵机A但输出永远与之相反,即B的输入经A判定“停机”,则B“不停机”,如果B的输入经A判定“不停机”,则B“停机”。那么,图灵机B的输入为图灵机B本身时,则出现矛盾。B只有在“停机”的时候才能“不停机”,反之亦然。此悖论与理发师悖论类似,理发师声称“给而且只给那些不给自己理发的人理发”。如果理发师不给自己理发,那么根据定义,他要给自己理发;如果理发师给自己理发,那么根据定义,他不能给自己理发。
[4] 1英尺≈0.30米。
[5] 2016年NIPS(神经信息处理系统大会,是一个关于机器学习和计算神经科学的国际会议)上,出现一家神秘的创业公司:火箭人工智能,宣称要基于一项革命性的“时间递归最优学习”技术来进行人工智能项目开发。短短几小时,吸引了五家风投公司对此项目进行评估,估值高达上千万美元。事实上,这家公司是参会的专家们注册来恶搞的,该技术纯属子虚乌有,专家们旨在以此来讽刺人工智能领域的投资泡沫太过严重。