在宇宙大爆炸发生之后的138亿年中,最不可思议的事情之一就是,荒芜一片、了无生机的物质之中竟然产生了智能。这究竟是如何发生的?未来会变成什么样?从科学的角度出发,应该如何讲述宇宙中智能的历史与命运?为了解决这些问题,这一章我们先来探索智能的构成要素和基础。那么,说一团物质拥有智能,到底意味着什么?说一个物体能记忆、计算和学习,又意味着什么?
什么是智能
最近,我和我的妻子梅亚很幸运地参加了一个由瑞典诺贝尔基金会举办的人工智能研讨会。在会议中,那些顶尖的人工智能研究者在“什么是智能”这个问题上展开了一场冗长的讨论,最后却未能达成共识。我们觉得这件事很有趣:居然连人工智能研究者也无法就“什么是智能”达成一致意见!因此,关于智能,显然不存在一个无可辩驳的“正确”定义。相反,有许多不同的定义在互相竞争,“参战”的定义有逻辑能力、理解能力、计划能力、情感知识、自我意识、创造力、解决问题的能力和学习能力等。
在这场关于智能未来的探索中,我们想采用一个最广泛、最兼容并包的观点,而不想局限于目前已知的智能范围。这就是为什么我会在第1章对智能下一个很广的定义,并在本书中用一种很宽泛的方式来使用这个词的原因。
智能(intelligence):完成复杂目标的能力。
这个定义很广,足以涵盖前文提到的所有定义,因为理解力、自我意识、解决问题的能力、学习能力等都属于我们可能会遇到的复杂目标。同时,这个定义还能将《牛津英语词典》中的定义“获得和应用知识与技能的能力”也涵盖进去,因为你也可以将“应用知识与技能”作为一个目标。
由于可能存在许多不同的目标,因此,也可能存在许多不同的智能。所以,从我们的定义出发,用IQ这种单一指标来量化人类、动物或机器是没有意义的(13)。假设有两个计算机程序,一个只会下象棋,另一个只会下围棋,请问哪一个更智能?这个问题并没有标准答案,因为它俩各自擅长的事情没法进行直接的比较。不过,假如存在第三个计算机程序,它能够完成所有目标,并且,它在某一个目标上,比如下象棋,做得远比前面所说的两个程序都好,而且在其他目标上完成得也不比它们差,那我们就可以说,第三个程序比前面两个程序更加智能。
另外,争论某些边缘化的例子是否具备智能,也没什么意义,因为能力不是非黑即白、非有即无的,而是分布在一个连续谱上。举个例子,什么样的人算得上能说话?新生儿?不能。电台主持人?能。但是,假如一个幼童能说10个词,她算不算得上能说话?如果她会500个词呢?界限应该划在何处?在我所说的智能定义中,我特意用了一个很模糊的词——复杂,因为人为地在智能和非智能之间画一条界线是于事无补的,不如对不同目标所需的能力进行量化,可能会更有用一些。
对智能进行分类,还有一种方法,那就是用“狭义”(narrow)和“广义”(broad)来进行区分。IBM公司的深蓝(Deep Blue)计算机虽然在1997年战胜了国际象棋冠军加里·卡斯帕罗夫(Garry Kasparov),但它能完成的任务范围非常“狭窄”,因为它只能下象棋,尽管它的硬件和软件都令人印象深刻,但它甚至不能在井字棋游戏中战胜一个4岁的儿童。谷歌旗下DeepMind公司的“DQN”人工智能系统能完成的任务范围稍微广一点:它会玩几十种经典的雅达利电子游戏,并且玩的水平与人类的水平不相上下,甚至更好。相比之下,人类智能的宽度可比它们广多了,人类能掌握多如牛毛的技能。只要经过训练,假以时日,一个健康的儿童不仅能够学会任何游戏,还能学会任何语言、运动或职业技能。将人类智能和机器智能做个比较,我们人类会在宽度上立马胜出。不过,机器在某些比较狭窄的任务上胜过了我们,这些任务虽然小,但数量却在与日俱增。我在图2-1中列出了这些任务。人工智能研究的“圣杯”就是建造最广泛的通用人工智能,它能够完成任何目标,包括学习。我们将在第4章详细探讨这个话题。“通用人工智能”这个词变得流行起来,得感谢三位人工智能研究者:沙恩·莱格(Shane Legg)、马克·古布鲁德(Mark Gubrud)和本·戈策尔(Ben Goerzel),他们用这个词来形容人类水平的通用人工智能,即能够完成任何目标并且完成得与人类不相上下的能力[1]。我将遵照他们的定义。因此,每次我使用通用人工智能时,都是在说“人类水平的通用人工智能”(14),除非我明确地在这个缩写前面加上了形容词,比如超人类水平的通用人工智能。
图2-1 人工智能可以胜出人类的任务
注:智能的定义是,完成复杂目标的能力。它不能用单一的IQ指标来衡量,只能用一个由所有目标组成的能力“谱”来衡量。箭头指的是当今最好的人工智能系统在不同目标上的表现。通过这张图可以看出,当今人工智能的能力总是比较“狭窄”,每个系统只能完成非常特定的目标。与之相比,人类智能则非常宽广:一个健康儿童能学会做任何事情,而且在所有事情上都做得比人工智能更好。
虽然人们在使用“智能”这个词时,总是倾向于带有积极正面的色彩,但我想强调的是,在本书中使用“智能”这个词时,我不会做任何价值判断,它就是完成复杂目标的能力,而无论这个目标被认为是好的还是坏的。因此,一个智能的人可能非常擅长帮助他人,也可能擅长伤害他人。我们将在第7章探讨有关目标的问题。说到目标,我们还需要澄清一个微妙的问题,那就是:我们所说的目标,究竟是谁的目标?假设在未来,你拥有了一台全新的个人机器助理,它虽然没有自己的目标,但会完成你安排给它的任何事情。某一天,你叫它为你做一顿美味的意大利晚餐,然后,它上网搜索了意大利菜的菜谱,了解了如何到达最近的超市、如何煮意大利面等问题,最后成功地买来了所需的原料,并为你烹制了一顿美味的晚餐。那么,你可能会认为它是智能的,即使最原始的目标其实是你的。实际上,当你提出要求时,它就继承了你的目标,并将其分解成几层子目标,从付钱给收银员到磨碎帕尔玛干酪,而这些子目标都是属于它自己的。从这个层面来看,智能行为毫无疑问是与达成目标联系在一起的。
人类总喜欢按难度对任务进行排序(见图2-1),但这些任务的难度顺序对计算机来说却不一样。对人类来说,计算314 159和271 828的乘积,可比从照片中识别一个朋友难多了,但计算机早在我出生(15)以前就已经在计算能力上超过了人类,而接近人类水平的计算机图像识别技术却一直到近期才成为可能。低级的“感觉运动”(16)任务对计算机来说虽然需要消耗大量的计算资源,但很容易完成。这种现象被称为“莫拉维克悖论”(Moravec's paradox)。有人解释说,造成这个悖论的原因是,为了完成这些任务,我们的大脑其实调用了其1/4的资源,即大量的专门硬件,从而使这些任务感觉起来很容易完成。
我很喜欢汉斯·莫拉维克所做的下面这个比喻,并冒昧地将其呈现在了图2-2中:
计算机是通用机器,它们的能力均匀地分布在一个宽广得无边无际的任务区域上。不过,人类能力的分布却没那么均匀。在对生存至关重要的领域,人类的能力十分强大,但在不那么重要的事情上就很微弱。想象一下,如果用地形来比拟人类的能力,就可以画出一幅“人类能力地形图”,其中低地代表着“算数”和“死记硬背”,丘陵代表着“定理证明”和“下象棋”,高耸的山峦代表着“运动”“手眼协调”和“社交互动”。不断进步的计算机性能就好像水平面,正在逐步上升,淹没整个陆地。半个世纪以前,它开始淹没低地,将人类计算员和档案员逐出了历史舞台。不过,大部分地方还是“干燥如初”。现在,这场洪水开始淹没丘陵,我们的前线正在逐步向后撤退。虽然我们在山顶上感到很安全,但以目前的速度来看,再过半个世纪,山顶也会被淹没。由于那一天已经不远了,我建议,我们应该建造一艘方舟,尽快适应航海生活![2]
在莫拉维克写出这段话的几十年之后,“海平面”如他所预言的那样毫不留情地持续上升,就好像全球变暖打了鸡血一样。一些“丘陵”地区(包括下象棋)早已被淹没。下一步会发生什么,我们又应当做些什么,这就是本书余下部分的主题。
图2-2 人类能力地形图
注:这张“人类能力地形图”是机器人专家汉斯·莫拉维克提出的,其中,海拔高度代表这项任务对计算机的难度,不断上涨的海平面代表计算机现在能做的事情。
随着“海平面”持续上升,它可能会在某一天到达一个临界点,从而触发翻天覆地的变化。在这个临界点,机器开始具备设计人工智能的能力。在这个临界点之前,“海平面”的上升是由人类对机器的改进所引起的,但在这个临界点之后,“海平面”的上升可能会由机器改进机器的过程推动,其速度很可能比人类改进机器的速度快得多,因此,很快,所有“陆地”都会被淹没在水下。这就是“奇点”理论的思想。这个思想虽然十分迷人,但却充满争议。我们将在第4章探索这个有趣的话题。
计算机先驱艾伦·图灵曾有一个著名的证明,假如一台计算机能实施一组最小的特定运算,那么,只要给它足够的时间和内存,它就能被编程以实施其他任何计算机能做的任何事情。超过这个临界点的机器被称为“通用计算机”(universal computers),又叫作“图灵通用计算机”(Turing-universal computers)。就这个意义而言,今天所有的智能手机和笔记本电脑都算得上是通用计算机。类似地,设计人工智能所需的智能也有一个临界点,我喜欢将这个临界点视为“普遍智能”(17)的临界点:给它足够的时间和资源,它就可以具备完成任何目标的能力,并且完成得和其他任何智能体不相上下。比如,如果普遍智能认为自己需要更好的社交技能、预测技能或设计人工智能的技能,那它就有能力去获得这些技能;如果它想要了解如何建造一个机器人工厂,它也完全有能力去获得建造工厂的技能。换句话说,普遍智能具备发展到生命3.0的潜力。
然而,既然物理学提出,万事万物在最基本的层面上都只是四处游走的物质和能量而已,那么,信息和计算究竟是什么呢?看得见摸得着、具备物理实体的物体如何体现出抽象无形、虚无缥缈的东西,比如信息和计算呢?换言之,一堆无聊愚钝、按照物理定律飞来飞去的粒子是如何展现出我们认为的“智能”的行为的呢?
如果你认为这个问题的答案是显而易见的,并且认为机器可能会在21世纪内达到人类的智能水平,或者如果你是一位人工智能研究者,那么,请跳过本章余下的部分,直接开始阅读第3章;否则,请你读一读本章剩下的三节,这是我特别为你而写的内容。
什么是记忆
如果说一本地图册包含关于世界的“信息”,那么,书的状态与世界的状态之间就存在着一种关系;具体而言就是指,书中文字和图片的分子的位置与大陆的位置之间存在着一种关系。如果大陆变换了位置,书中的分子也会变换位置。我们人类存储信息的设备多种多样,从书籍到大脑,再到硬盘,这些设备都有一个共同点:它们的状态能与我们关心的事物产生某种关系,因此也能告诉我们有关这些事物的信息。
那么,是哪一项基本物理定律允许这些设备可以被用作“记忆装置”,即存储信息的装置的呢?答案是,它们都能够处于许多不同的长期状态,这些状态能够保持足够长的时间,长到足以把信息编入系统中,直到它被需要的那一天。举个简单的例子,假设有一个崎岖不平的曲面,上面有16个“山谷”,如图2-3所示。你将一个小球放到这个曲面上,它就会滚落到“山谷”中。一旦小球停下来,它一定会位于16个位置中的其中一个上,因此,你可以用它的位置来记忆从1~16的任意一个数字。
这个记忆装置是相当稳健的,因为即使它受到外力的摇晃或干扰,小球也很可能会保持在原来的那个“山谷”中,所以,你还是可以读出它存储的数字。这个记忆之所以如此稳定,是因为想要把小球拿出山谷所需的能量,比随机干扰所能提供的能量多得多。除了曲面上的小球之外,这个原理还可以被运用到更广泛的情况中,以提供稳定的记忆,复杂物理系统的能量可能依赖于各种各样的力学、化学、电学和磁学性质。不过,对于一个你希望记忆装置“记住”的状态,如果它需要一定的能量才能改变这个状态,那么这个状态就是稳定的。这就是为什么固体拥有许多长期稳定状态,而液体和气体却没有;如果你把某人的名字刻在一枚金戒指上,多年以后,这个信息依然在那里,因为重铸金子需要很大的能量,但如果你把它“刻”在池塘的水面,不到一秒钟,这个信息就会丢失,因为水面的形状不费吹灰之力就可以改变。
图2-3 记忆装置的物理定律
注:如果一个物理实体可以处于许多不同的稳定状态,那么它就可以用作“记忆装置”。左图中的小球编码了4个比特的信息,代表它处在24=16个“山谷”中的其中一个中。右图中的4个小球共编码了4个比特的信息,每个小球编码了1个比特的信息。
最简单的记忆装置只有两种稳定状态(如图2-3的右图所示)。因此,我们可以认为它是用二进制数字(简称“比特”),也就是0和1来编码信息的。同样地,复杂一些的记忆装置可以用多个比特来存储信息:比如,图2-3右图中的4个比特组合起来可以有2×2×2×2=16种不同的状态:0000,0001,0010,0011,…,1111,因此,它们组合起来的记忆能力与更复杂一些的16态系统(如左图所示)是完全相同的。因此,我们可以把比特视作信息的“原子”,也就是不能被继续细分的最小信息单元,它们组合起来可以表示任何信息。举个例子,我刚在笔记本电脑上打出了“word”这个单词,在电脑的内存中,它用一个由4个数字组成的序列来表示:119 111 114 100,每个数字存储为8个比特,每个小写字母的编码是96加上它在字母表中的序数。当我在键盘上敲出“w”这个字母时,我的笔记本电脑屏幕上显示出了“w”的视觉图像,这个图像同样也是由比特来表示的:电脑屏幕上共有几百万个像素,每个像素需要32个比特来规定它的颜色。
由于双态系统生产和使用起来都很容易,大多数当代计算机都是用比特的方式来存储信息。不过,比特的体现方式多种多样。在DVD碟片上,每个比特代表其塑料表面上某一点是否存在一个微型凹坑。在硬盘中,每个比特代表它表面的某个点采用的是二选一的磁化方法。在我笔记本电脑的工作内存中,每个比特代表决定“微型电容”是否充电的某个电子位置。某些比特可以方便地传输,甚至能达到光速:例如,在你用来发送电子邮件的光纤中,每个比特代表一个激光束在某一时刻是强还是弱。
工程师喜欢将比特编码进那些不但稳定易读(就像金戒指),而且易于写入的系统中,比如硬盘,改变硬盘的状态所需的能量可比在金子上刻字少多了。他们还偏爱那些使用起来很方便,并能很便宜地进行大规模生产的系统。但除此之外,他们并不关心比特在物理实体中是如何体现的,大部分时候,你也不会关心这件事,因为它根本不重要!如果你通过电子邮件给你的朋友发送了一个需要打印的文件,从硬盘上的磁化到电脑工作内存中的电荷、无线网络中的无线电波、路由器的电压以及光纤中的激光脉冲,信息会以极快的速度在其中复制,最终换句话说,信息仿佛拥有自己的生命,而与它的物质形态如何没有关系。确实,我们感兴趣的只是这些独立于物质形态的信息,如果朋友给你打电话讨论你发送给他的那份文件,他并不是要和你讨论关于电压或分子的事情。这是我们获得的第一个启示:智能这样的无形之物可以体现在有形的物质形式之上。接下来我们将会看到,“物质层面的独立性”这种属性其实具有更深的意义,不仅涉及信息,还与计算和学习有关。
正因为信息可以独立于物质形态而存在,聪明的工程师们才能一次又一次地用新技术更新计算机的记忆装置,而不需要对软件做任何改变。结果相当惊人,如图2-4所示,在过去的60年里,每隔几年,计算机内存就会变得比之前便宜一半。硬盘的价格便宜了1亿倍,而主要用于计算而不只是存储的快速内存的价格骤降了10万亿倍。如果买东西时我们也能获得“99.99999999999%”这么大的折扣力度,那么你只需要花10美分就能在纽约市买一栋房子,也只需花1美元就能买下人类历史上开采出来的所有黄金。
图2-4 过去60年里,计算机内存的变化趋势
注:在过去的60年里,每隔几年,计算机内存就会比过去便宜两倍,相当于每20年便宜1 000倍。一个字节等于8个比特。数据来源于约翰·麦卡勒姆(John McCallum),详细数据请查看http://www.jcmit.net/memoryprice.htm。
对许多人来说,存储技术的巨大进步都与自己的成长息息相关。我记得上高中时,为了买一台内存为16KB的计算机,不得不在一家糖果店里打工。我和我的同学马格努斯·博丁(Magnus Bodin)为这台计算机写了一个文字处理软件,当时我们被迫用超级紧凑的机器码(18)来写,就为了给它要处理的文字信息留点空间。在习惯70KB内存的软盘之后,我被3.5英寸大的软盘震惊了,因为它体积更小,却能存储1.44MB的内容,足以装下一整本书。后来,我拥有了我人生中的第一个硬盘,它可以存储10MB的内容,放到今天,它可能连一首歌曲都装不下。这些青春期的故事回忆起来很不可思议,因为今天的我花100美元就能买到一个比以前的存储空间大30万倍的硬盘。
这些都是人类设计的记忆装置。那么,那些进化而来的记忆装置呢?生物学家还不知道第一个能够复制上一代蓝图的生命形式是什么,但我们猜想,它可能非常微小。2016年,剑桥大学的菲利普·霍利格(Philipp Holliger)带领团队制造了一个RNA分子,它编码有412个比特的遗传信息,能够复制比自己更长的RNA链。这个成果为一个叫作“RNA世界”(RNA world)的假说提供了支持。这个假说认为,早期的地球生命与一些能自我复制的RNA短片段有关。目前,已知进化产生并生存于野外的最小记忆装置是一种名叫Candidatus Carsonella Ruddii的细菌的基因组,它可以存储40KB的信息,而我们人类的DNA能存储1.6GB的信息,与一部电影的大小差不多。正如在第1章提到的,我们大脑存储的信息比基因多多了:大脑中差不多有10GB的电子信息,它们详细描述了在任意时刻,在你的1 000亿个神经元中,有哪些正在放电;还有100TB的化学/生物信息,它们详细描述了神经元之间突触连接的强度。将这些数字与机器记忆相比较,你就会发现,当今世界上最好的计算机的记忆能力比任何生物系统都强大,并且,它们的价格下降得非常快,到了2016年,只需要几千美金就可以买到。
大脑的记忆原理与计算机的信息存储原理截然不同,这不仅体现在它的构成上,还体现在它的使用方式上。你在计算机或硬盘上读取记忆的方式是通过它存储的位置,但你从大脑中读取记忆的方式则是依据它存储的内容。在计算机内存中,每组比特都拥有由一个数字组成的地址。当需要读取某些信息时,计算机检索的是它的地址,这就好像在说:“请你从我的书架上取出最顶层从右往左数的第5本书,然后告诉我第314页上说了什么。”相反,你从大脑中读取信息的方式却更像搜索引擎:你指定某个信息或与之相关的信息,然后它就会自动弹出来。比如,当你听到“生存还是……”这个短语时,它很可能会在你脑中触发“生存还是毁灭,这是一个值得考虑的问题”这句话;如果你在网上搜索这个短语,搜索引擎也很可能会给你同样的搜索结果。实际上,即便我引用的是这句话中的另外一部分,甚至弄混一些字词,结果可能还是一样的。这种记忆系统被称为“自联想”(auto-associative),因为它们是通过联想而不是地址来进行“回想”的。
1982年,物理学家约翰·霍普菲尔德(John Hopfield)在一篇著名的论文中向人们展示了一个由互相连接的神经元组成的网络,它能够实现自联想记忆的功能。我觉得他的基本观点非常棒,对于许多拥有多个稳定状态的物理系统来说,这个观点都成立。例如,一个小球位于一个拥有两个“山谷”的曲面上,就像图2-3中显示的单比特系统那样。让我们对这个曲面做一点设定,让两个最低点的x坐标分别为
和x=π≈3.14159。如果你只记得π与3很接近,但不记得π的具体值,那么你只需要把小球放到π=3处,然后看它滚落入最近的最低点,它就能向你揭示出一个更精确的π值。霍普菲尔德意识到,一个更复杂的神经元系统可以提供一个类似的“地形”,其上有许许多多能量极小值,系统可以稳定在这些能量极小值上。后来人们证明,你可以在每1 000个神经元中塞进多达138个不同的记忆,而不会引起较大的混乱。
什么是计算
现在,我们已经看到了一个物理实体是如何记忆信息的。那么,它又是如何计算的呢?
计算是由一个记忆状态向另一个记忆状态转变的过程。换句话说,计算会使用信息,并运用数学家们所谓的函数来转变信息。我把函数视为信息的“绞肉机”,正如图2-5中所示:你可以从上方放入信息,转动曲柄,然后从底部获得被处理过的信息。你可以输入不同的信息来重复这个过程。如果你输入的是同样的信息,并重复这个过程,那么,这个信息处理过程是确定性的,你每次都会获得相同的输出结果。
图2-5 计算使用信息和函数来转变信息
注:函数ƒ(左图)使用一些代表数字的信息,并计算出它的平方。函数g(中图)使用一些代表棋子位置的信息,计算出白棋最佳的走位。函数h(右图)使用一些代表图像的信息,并计算出一个描述图像的文本标签。
虽然这个计算过程听起来简单得令人难以置信,但实际上,函数的应用范围非常广泛。有些函数相当简单,比如,NOT函数的输入与输出信息是相反的,因此,它能将0变成1;反之亦然。我们在学校里学的函数通常只相当于计算机上的按钮,当你输入一个或多个数字时,它就会输出一个数字。比如,函数x2就是将输入数字乘自身之后输出的结果。还有一些函数很复杂。比如,如果你有一个函数,当输入象棋的位置信息时,它就能输出下一步的最佳走位,那你就能用这个函数来赢得世界计算机国际象棋锦标赛(World Computer Chess Championship)。如果你有一个函数,当输入全世界所有的金融数据时,它就能计算出盈利最佳的股票,那你就能用它大发横财。许多人工智能研究者都致力于研究如何执行某些函数。比如,机器翻译研究的函数能将某种语言的输入文本信息转变成另一种语言并输出,自动字幕研究的函数能将输入的图像信息转变成描述文本(如图2-5右图所示)。
也就是说,如果你能执行高度复杂的函数,那么你就可以建造一台能够完成高度复杂目标的智能机器。这将讨论的焦点投向了我们的问题:物质何以产生智能?尤其是,一团呆笨无生命的物质是如何计算出一个复杂函数的结果的?
与物质形态固定的金戒指或其他静态记忆装置不同,计算系统必须展现出复杂的动态性,这样,它的未来状态就会以某种复杂的(希望是可控的,或是可编程的)方式与当前状态相联系。它的原子组合应该比无聊的坚硬固体更混乱,但又比液体或气体更有秩序。具体而言,我们希望这个计算系统拥有以下性质:如果让它保持在一个编码了输入信息的状态,让其根据物理定律演化一段时间,便能解读它输出的最终状态,最后,这个输出信息符合我们想要的函数计算的结果。如果是这样,那我们就可以说,这个系统计算的是我们想要的函数。
举个例子,一起来看看我们如何从平淡无奇、单调愚钝的物质中构建出一个非常简单却又非常重要的函数——与非门(19)。这个函数的输入为两个比特,输出为一个比特:如果两个输入都是1,那它的输出就是0;否则输出就是1。如果我们将两个开关、一块电池和一块电磁铁顺次连接,那么,只有当第一个开关和第二个开关都闭合时,电磁铁才会通电(“开启”)。现在,让我们在电磁铁下方放置第三个开关(如图2-6所示),每当电磁铁通电时,这个开关就会断开。如果我们把前两个开关看作输入信息,把第三个开关视为输出结果,其中,0=开关断开,1=开关闭合,那么,我们就做出了一个与非门:只有在前两个开关都闭合时,第三个开关才会断开。若想构建更实用的与非门,还有许多其他方法,比如,使用图2-6右图所示的晶体管。在现如今的计算机中,与非门通常是由微型晶体管等能自动蚀刻在硅片上的电子元件制作而成的。
图2-6 与非门的计算过程
注:所谓的“与非门”使用两个信息A和B作为输入信息,并根据下列规则计算出一个输出信息C:如果A=B=1,那么C=0;否则C=1。许多物理系统都可以用作与非门。在中间的例子中,我们将开关解读为信息,其中0=开关断开,1=开关闭合,如果开关A和B都闭合,那电磁作用就会断开开关C。在最右边的例子中,电压(电势)也被解读为信息,其中1=5伏,0=0伏,并且,当电线A和B都是5伏时,两个晶体管通电,电线C的电压会降至接近0伏。
计算机科学中有一个非凡的公理,认为与非门是通用的。意思是说,如果你想要执行任何定义明确的函数(20),只需要将若干个与非门以某种方式连接起来就可以了。因此,只要你能制造出足够多的与非门,就能建造一台能计算任何东西的机器。如果你想一窥它是如何工作的,请看图2-7,我在图中画出了如何只用与非门来做加乘法。
图2-7 如何只用与非门做加乘法
注:任何定义明确的计算过程都可以用与非门组合起来的系统来执行。例如,在这张图中,加法模块和乘法模块都输入两个用4个比特来表示的二进制数字,并分别输出用5个和8个比特来表示的二进制数字。相应地,更小一些的模块“非门”“与门”“或非门”和“+”(将3个1比特的二进制数字加总为一个2比特的二进制数字)也是由与非门构建出来的。想要完全理解这张图片是很难的,不过,这张图对理解本书接下来的内容没太大帮助,我在这里放这张图只是为了解释“通用性”(universality)的思想,也为了满足我内心中的那个“极客”的自己。
麻省理工学院研究者诺曼·马格勒斯(Norman Margolus)和托马索·托福利(Tommaso Toffoli)提出了“计算质”(computronium)的概念。计算质指的是可以执行任何计算的任何物质。我们已经看到,获得计算质并不是一件非常困难的事:这种物质只要能够执行以我们想要的方式连接在一起的与非门就行。事实上,还存在许多其他类型的计算质。有一种成功的计算质用“或非门”(21)来取代与非门。或非门只有当两个输入数据都是0时,才会输出1。在下一章节,我们将探索神经网络,它也能够执行任意的计算,即可以作为计算质。科学家兼企业家斯蒂芬·沃尔夫拉姆(Stephen Wolfram)证明,还有一种东西也可以作为计算质,那就是一种被称为“元胞自动机”(22)的简单装置,它可以基于“邻居”的行为来更新自己的行为。早在1936年,计算机先驱艾伦·图灵在一篇划时代的论文中就已经证明,一个能在纸带上操作符号的简单机器也可以执行任意计算,这个简单的机器就是现在的“通用图灵机”。总而言之,物质不仅可能会执行任意定义明确的计算,其执行的方式也可能是多种多样的。
正如之前所说,图灵在1936年那篇论文中还证明了某些影响力更加深远的事情。他得出,假如一种计算机能执行一组最小的特定运算,那么只要给它提供足够的资源,它就能完成任何其他计算机能完成的所有事情。图灵证明了他的图灵机是通用的。回到物理层面,我们刚刚已经看到,许多东西都可以被视为通用计算机,包括与非门网络和神经网络。实际上,沃尔夫拉姆曾经说过,大多数复杂的物理系统,从天气系统到大脑,如果它们可以做得无限大,存在无限久,那么,它们都可以成为通用计算机。
同样的计算过程可以在任意一台通用计算机上运行,这个事实意味着,计算和信息一样,是独立于物质层面而存在的:计算就像拥有自己的生命一样,与它采取什么样的物质形态无关。因此,如果你是未来计算机游戏中的一个拥有意识的超级智能角色,那么,你不可能知道自己所栖身的系统是运行Windows系统的台式机,还是运行Mac OS系统的笔记本电脑或者运行安卓系统的手机,因为你是独立于物质层面而存在的。同时,你也无法知道,自己栖身的这个系统的微处理器用的是什么类型的晶体管。
我第一次意识到“物质层面的独立性”这种属性的重要性,是因为它在物理学中有许多美丽的例子。比如,波。波有许多性质,例如速度、波长和频率。我们物理学家不需要知道波存在于何种物质之上,就可以研究它们遵守的方程。当耳朵听见声音时,我们就探测到了声波,它是由分子在被我们称为“空气”的混合气体中来回跳跃产生的。我们可以计算与这些波有关的各种有趣的事情,比如,它们的强度如何随距离的平方而衰减,它们经过敞开的门洞时如何弯折自己的路线,以及它们如何从墙上反弹回来以形成回声。研究这一切,都不需要知道空气的组成成分。实际上,我们甚至不需要知道它是由分子组成的。我们之所以可以忽略所有关于氧气、氮气、二氧化碳等的细节,是因为在著名的波动方程中,波所栖身的物质层面只有一个性质是要紧的,那是一个可测量的数字——波速。在这个例子中,声波的波速是每秒300米。但实际上,2016年春天,我在麻省理工学院的一门课上教给学生的波动方程,其发现的年代远远早于物理学家们发现原子和分子存在的年代。
波的例子说明了三个重要的道理。第一,物质层面的独立性并不是说,物质层面是不必要的,只是说,物质层面的大部分细节都是无关紧要的。如果没有气体,那你就没法产生声波,实际上,任何一种气体都足以产生声波。同样地,如果没有物质,你当然没法完成任何计算,但是,无论是什么物质,只要它可以排列成能实现通用计算的基本单元,比如与非门、互相连接的神经元等,就都能完成计算。第二,独立于物质层面的现象仿佛拥有自己的生命,与它们栖身的物质形态无关。波虽然可以从湖岸的一边传播到另一边,但湖水中的水分子却并没有随之传播,它们大部分时间只是在原地上下移动,就像体育场里球迷们组成的“人浪”一样。第三,我们感兴趣的方面,通常都是独立于物质层面而存在的。冲浪运动员通常更关心海浪的位置和高度,而不关心它的分子组成。我们对信息和计算的态度也同样如此:如果程序员正在寻找代码中的故障,他们感兴趣的东西可不是晶体管!
我们之前提出了一个问题:在有形的物理实体中,如何产生了那些抽象、虚无缥缈的东西,例如智能?现在,对这个问题,我们已经有答案了:在感觉上,智能之所以没有物质形态,是因为它独立于物质层面而存在。它似乎拥有自己的生命,而且,这个生命并不依赖于、也不会反映出物质层面的细节。简而言之,计算是粒子在时空中排列出的形态。粒子并不重要,重要的是它们组成的形态。所以,物质是无足轻重的。
换句话说,硬件就是物质,软件就是形态。计算的“物质层面的独立性”暗示着我们,人工智能是可能实现的:智能的出现并不一定需要血肉或碳原子。
正因为计算有了这种物质层面的独立性,精明的工程师们才得以突飞猛进地更新计算机中的技术,而不用对软件做任何更改。结果就和记忆装置一样令人刮目相看。正如图2-8所示,计算机每隔几年就会比过去便宜一半,这个趋势已经保持一个多世纪了。如今的计算机价格已经比我祖母出生的年代便宜了1018倍。如果把所有东西的价格降低1018倍,那么,你只用1/100美分的价格就可以买下在地球上今年生产的所有商品和服务。价格骤降,正是如今计算机无处不在的关键原因。不久以前,计算设备还像房子那么大,而如今,它们已经进入了我们的家庭、汽车和口袋里,甚至出现在意想不到的地方,比如运动鞋里。
图2-8 1 000美元可以买到的计算能力
注:自1900年以来,每隔几年,计算的价格就会降低一倍。这张图展示了1 000美元可以买到的计算能力,以每秒可进行的浮点运算次数(FLOPS)来衡量[3]。一次浮点运算所能完成的计算量相当于105次基本逻辑运算,比如取反(bit flips)或与非门运算。
为什么技术的能力每隔一段时间就会翻倍,呈现出数学家所谓的指数型增长呢?为什么它不仅体现在晶体管的微型化(23)上,还体现在更广泛的整个计算领域(如图2-8所示)、记忆装置领域(如图2-4所示)以及许许多多不同的技术(从基因测序到脑成像)上?未来学家雷·库兹韦尔将这个不间断的翻倍现象称为“加速回报定律”(law of accelerating returns)。
在自然界中,我知道的所有“持续翻倍“现象都有一个相同的诱因,技术能力的翻倍也不例外。这个诱因就是:每一步都会创造出下一步。比如,从你还是个受精卵的那一刻起,你就经历了一次指数型增长,导致你身上的细胞总数日益增加,从1到2,再到4、8、16等。目前,关于我们宇宙起源最流行的科学理论是暴胀理论(inflation theory)。根据暴胀理论,曾经有一段时间,我们的婴儿宇宙也像你一样,经历过指数型增长,以固定的周期,规律地将自己的尺寸翻倍,从最初那一小团比原子还小还轻的物质迅速膨胀,一直到超过我们用望远镜可以看到的所有星系。在这个过程中,每次翻倍都会引发下一次翻倍。技术进步的过程也同样如此:当一项技术的能力变成过去的两倍时,通常情况下,它又可以用来设计和建造能力翻番的技术,引发不停歇的能力翻倍,这就是摩尔定律的精髓。
技术能力每隔一段时间就会翻倍,相应地,每隔一段时间,就会出现“翻倍即将终结”的言论。是的,摩尔定律当然会终结,晶体管不会无限地变小,因为它们的尺寸下限受到物理定律的限制。但是,有些人错误地认为,摩尔定律就是技术不断翻倍的同义词。相反,库兹韦尔指出,虽然图2-8中的5项技术范式为计算领域带来了指数型增长,但摩尔定律与第一个技术范式无关,只与第五项有关:只要一项技术不再增长,我们就会用更好的技术来取代它。当真空管的尺寸无法继续缩小时,我们用晶体管来取代它们,接着是允许电子在二维方向上运动的集成电路。当这项技术逼近它的极限时,还有很多其他选择供我们尝试,比如,用三维电路,或者采用电子之外的其他什么东西来听候我们的差遣。
虽然没人知道计算层面的下一波剧变会在什么时候到来,但我们知道,我们距离物理定律的极限还很遥远。我在麻省理工学院的同事塞思·劳埃德(Seth Lloyd)已经发现了这个极限在哪里。一团物质到底能进行多少次计算?他发现,当今最先进的技术与物理的极限之间,还有庞大的33个数量级(1033倍)需要跨越。我们将在第6章进行详细探讨。因此,就算我们的计算能力每隔几年都会翻一番,我们仍然需要两个世纪的时间,才能到达那个终极的前线。
虽然所有通用计算机都能够完成同样的计算,但它们的效率却有高有低。比如,一个需要做几百万次乘法的计算过程并不需要几百万个晶体管(如图2-6所示)构成的乘法模块,因为它可以重复使用同一个模块。为了效率起见,大多数现代计算机使用的范式都会将计算过程分成多个时间步骤(time step),在其中,信息会在记忆模块和计算模块之间来回移动。这种计算架构是由计算机先驱们于1935—1945年开发出来的,包括艾伦·图灵、康拉德·楚泽(Konrad Zuse)、普雷斯伯·埃克特(Presper Eckert)、约翰·莫奇来(John Mauchly)和约翰·冯·诺依曼等。更具体地说,计算机的记忆装置不仅存储了数据,还存储了软件,即程序,也就是一组指令,告诉计算机用这些数据来做什么事情。在每个时间步骤中,CPU执行程序的下一步指令,这些指令详述了对数据采取何种简单函数。在计算机的记忆装置中,还有一个叫作“程序计数器”(program counter)的小程序,它的功能是追踪下一步要做什么,它存储了程序当前的行编号。若想进行下一个指令,只需要在程序计数器上加1就好。若想跳到程序的另一行,只需要将相应的行编号复制到程序计数器就行,所谓的“if”语句和循环就是这样执行的。
今天的计算机通常能通过“并行处理”(parallel processing)获得更快的速度。并行处理能巧妙地避免一些模块重用的情况。如果一个计算能分成若干个可以并行完成的部分(因为任何一个部分的输入不需要另一个部分的输出),那么,它们就可以同时用硬件的不同部分进行计算。
终极的并行计算机是量子计算机(quantum computer)。量子计算先驱戴维·多伊奇(David Deutsch)曾经说过一句颇具争议的话。他说:“量子计算机能与无数个平行宇宙中的自己分享信息”,并且能在其他自己的帮助下,更快地在我们的宇宙中获得答案。[4]我们尚不知道,量子计算机是否能在接下来的10年里走向市场,因为这不仅取决于量子物理是否如我们所愿,还取决于我们是否有能力克服可怕的技术挑战。不过,世界各地的公司和政府每年都会在这个领域赌上几千万美元。虽然量子计算机不能加速普通计算,但人们已经开发出了一些巧妙的算法,可以极大地加速某些特定类型的计算,比如加快破解密码系统和训练神经网络的计算速度。量子计算机还能够有效地模拟量子力学系统的行为,包括原子、分子和新材料的行为,可以取代化学实验,就像传统计算机上的模拟程序取代了风洞实验(24)一样。
什么是学习
虽然一个普通的袖珍计算器就可以在算数比赛中完胜我,但无论它如何练习,它也永远无法在速度或精确度上颠覆自我,因为它不会学习。每次按下它的开方键,它只会用完全相同的方式计算同一个函数。同样地,过去第一个战胜我的象棋程序也永远无法从自己的错误中学习,它只能执行那个聪明的程序员设计的最佳走法来计算函数。相反,当5岁的马格努斯·卡尔森(Magnus Carlsen)第一次输掉象棋比赛时,他开始了一段长达8年的学习过程,最终让他登上了世界象棋冠军的宝座。
学习能力无疑是通用人工智能最引人入胜的地方了。现在,我们已经了解了一团看似愚钝的物质是如何进行记忆和计算的,那它是如何学习的呢?我们已经知道,要回答一个复杂的问题就相当于计算一个函数,也知道了一团物质只要以合适的方式排列起来,就可以计算任何可计算函数。我们人类之所以能创造出袖珍计算器和象棋程序,是因为我们进行了这种“排列”。因此,一团物质想要学习,必须对自己进行重新排列,以获得越来越强的能力,好计算它想要的函数,只要它遵守物理定律就行。
为了揭开学习的神秘面纱,让我们先来看一个非常简单的物理系统是如何学习计算π的数位和其他数字的。通过前面图2-3的例子,我们已经了解了,如何用拥有许多“山谷”的曲面来作为记忆装置,比如,如果其中一个“山谷”底部的位置使x=π≈3.14159,并且它附近没有其他“山谷”,那么,你便可以把一个小球放在x=3的位置,然后进行观察。这时你就会发现,这个系统会让小球滚落到谷底,从而计算出π的小数位。现在,假设这个曲面是由软泥做成的,就像一块完全平整的空白石板。如果有一些数学爱好者不停地将小球放在他们最喜欢的数字处,那么,万有引力就会逐渐在这些地方创造出“山谷”。之后,这个软泥表面就能用来获取数学爱好者存储在“山谷”处的记忆。换句话说,软泥表面“学习”到了计算数字(比如π)的各个数位的方法。
还有一些物理系统,比如大脑,虽然学习效率很高,但其基本原理并没有什么颠覆性的差异。约翰·霍普菲尔德经证明得出,神经网络也可以用类似的方法进行学习。如果你重复地将神经网络置于某些特定的状态,那么它将逐渐学习到这些状态,并且能够从附近的状态返回到这些状态。比如,如果你总是频繁地见到某一个亲戚,那每次出现一些与他有关的东西时,就会触发你关于他容貌的记忆。
现在,神经网络已经改变了生物智能和人工智能,开始在一个名为“机器学习”(machine learning)的人工智能分支学科中占据主流地位。机器学习的研究对象是能从经验中自我改善的算法。在详细介绍神经网络的学习原理之前,我们先来理解一下它们是如何进行计算的。一个神经网络其实就是一组互相连接、互相影响的神经元。你大脑中神经元的数量和银河系中恒星的数量差不多,都是千亿数量级的。通过突触,每个神经元与大约1 000个其他神经元相连。正是这几百万亿个突触之间的连接使得大部分信息被编入你的大脑。
我们可以用示意图的方式来表现神经网络,用点来代表神经元,然后将这些点用代表突触的线条连接起来(见图2-9)。不过,真实的神经元与这种简单的示意图完全不同,它是一种非常复杂的电化学装置:神经元拥有各种不同的组成部件,例如轴突和树突;神经元还可以分为许多用途各异的种类。此外,神经元中的电活动是如何相互影响的,具体的原因依然处在积极的研究中。
图2-9 神经网络计算函数的过程
注:神经网络就像与非门网络一样,可以用来计算函数。例如,一种人工神经网络经过训练后,当输入的数字代表图中像素的亮度时,就能输出一组数字,代表这张图像描述每个人的概率。在这里,每个人工神经(用圆圈表示)计算出神经连接(用直线表示)传来的数字的加权和,然后应用一个简单的函数计算出结果,并将结果传递下去,接下去的每一层人工神经计算上一层的特征。通常情况下,人脸识别网络包含成百上千个神经元;为了清楚起见,这张图只画出了少量的神经元。
然而,人工智能研究者发现,即使我们忽略掉这些复杂的细节,用极其简单又非常类似、遵守简单规则的模拟神经元代替生物形态的神经元,神经网络依然能完成许多非常复杂的任务,与人类不相上下。这种神经网络被称为“人工神经网络”(Artificial Neural Network)。目前最流行的人工神经网络模型用一个数字来表示每个神经元的状态,也用一个数字来表示每个突触的连接强度。在这个模型中,每个神经元以规律的时间步骤周期来更新自己的状态,其更新的方法是:收集来自所有相连神经元的输入数据,然后用突触的连接强度作为加权权重,有时还会加上一个常数,接着,用得出的结果执行“激励函数”(activation function),并计算出下一个状态(25)。将神经网络作为一个函数的简单方法就是使其“前馈”(feedforward),也就是保证信息只向一个方向流动。将数据输入最顶层的神经元的函数中,然后从底层神经元中获得输出数据,如图2-9所示。
这种简单的人工神经网络在计算上的成功是“物质层面的独立性”的又一个例证:神经网络拥有强大的计算能力,而这种计算能力与它们底层的构造物质毫无关系。实际上,1989年,乔治·西本科(George Cybenko)、科特·霍尼克(Kurt Hornik)、马克斯韦尔·斯廷奇库姆(Maxwell Stinchcombe)和哈尔伯特·怀特(Halbert White)证明了一件了不起的事:这种简单的、由模拟神经元组成的神经网络是“通用”的,因为它们能精确地计算出任何一个函数,只需要相应地调整代表突触强度的数字即可。换句话说,我们大脑中生物形态的神经元之所以能进化出如此复杂的结构,并不是因为这是必要的,而是因为它的效率更高,还因为进化与人类设计师不一样,进化不会奖赏那些简单易懂的设计。
当我第一次听说人工神经网络可以计算函数时,觉得它很神秘。如此简单的东西怎么能计算出复杂度任意高的函数呢?比如,如果你只计算加权和以及应用一个固定的函数,那么,你如何能计算复杂的函数呢,哪怕只是简单的乘法运算?如果你对这个过程的细节很感兴趣,那么请看图2-10。这张图显示了如何只用5个神经元将任意两个数字相乘,以及单个神经元如何将三个二进制数字相乘。
图2-10 神经元计算乘法的过程
注:这张图显示了物质如何用神经元而不是图2-7中的与非门来计算乘法。这张图的关键点是,神经元(人工或生物)不仅能进行数学计算,而且,用神经元来计算乘法所需要的神经元数量少于用与非门来计算时所需的与非门数量。如果你是数学迷,那我可以再告诉你一些额外的细节:图中的圆圈处执行加总运算,方块处运行函数σ,直线处乘上其上标注的常数。输入数据是实数(左图)和二进制数字(右图)。当左图中的a趋近于0和右图中的c趋近于无穷大时,该乘法运算可以达到任意高的精度。左图中的网络适用于任何在原点处弯曲的函数σ(x),也就是原点处的二阶导数σ" (0) ≠ 0,这可以用σ(x)的泰勒展开公式来证明。右图的网络则需要满足当x非常小和非常大时,函数σ(x)分别趋近于0和1,这可以由下面的推导看出:只有当u+v+w=3时,uvw=1。(26)将许多乘法(如上图所示)和加法组合起来,你就可以计算任意多项式。我们知道,多项式能对任意光滑函数进行近似。
虽然从理论上来说,你能用一个任意大的神经网络来执行任意一个计算,却没法证明,在实践中如何用一个大小合适的神经网络来执行计算。实际上,我想得越多,就越对神经网络如此可行感到好奇。
假设我们想将兆像素级别的灰度图像分成两类:猫和狗。如果每张图的100万个像素中的每个像素都可以取256个值,那么,可能的图像数量就有2561 000 000张。对其中的每一张图,我们都想计算出“它是猫”的概率。这意味着,这个输入数据为图片、输出数据为概率的任意函数,是由一个包含2561 000 000个概率的列表所定义的。这个数字如此之大,超过了我们整个宇宙中的原子总量(大约1078)。但不知为何,一些只包含了几千个或几百万个神经元的神经网络却可以很好地完成这种分类任务。为什么如此“便宜”(也就是所需的参数特别少)的神经网络能够完成这种任务呢?毕竟,你可以证明,如果一个神经网络小到可以放进我们的宇宙中,那它几乎无法对任何一个函数进行近似。在你安排给它的任务中,它只能成功完成很小的比例。
我和我的学生亨利·林一起愉快地讨论了这些奇妙的事情。我非常高兴能和许多了不起的学生合作,亨利就是其中之一。当他第一次踏进我的办公室,询问我是否有兴趣与他合作时,我心想,应该由我问他是否有兴趣与我合作会更合适。这个谦逊、友善、眼睛会发亮的孩子来自路易斯安那州的什里夫波特市,当时他已经写过8篇科学论文,入选了《福布斯》30位30岁以下的精英榜;他还曾在TED发表过演讲,有超过100万人收看,而他却只有20岁!
与亨利合作了一年之后,我们一起写了一篇论文,道出了我们研究出的一个惊人的结论:神经网络之所以如此有效,不能仅用数学来回答,因为答案的一部分取决于物理学。我们发现,在物理定律带来的函数中,很少有让我们对计算充满兴趣的,这是因为,由于一些尚不为人所知的理由,物理定律是非常简单的。此外,神经网络能计算的那一小撮函数,与物理学中吸引我们兴趣的那一小撮函数竟然非常相似!我们还对早先的研究进行了扩展,证明了在许多我们感兴趣的函数上,深度(27)学习型神经网络比那些较浅的神经网络更加有效。举个例子,我和另外一位了不起的麻省理工学院的学生戴维·罗尔尼克(David Rolnick)一起证明了,如果神经网络只有一层,那么计算n个数字的乘法就需要2n个神经元;但是,如果神经网络的层数很多,那么只需要4n个神经元就足够。这不仅解释了为什么神经网络在人工智能研究者中十分受欢迎,还解释了我们的大脑中为什么也进化出了神经网络:如果大脑的进化是为了预测未来,那么,我们进化出的计算结构正好擅长计算那些在物理世界中十分重要的问题,也就不足为奇了。
我们已经探索了神经网络是如何工作和计算的,现在,让我们回到“它们是如何学习的”这个问题上。具体而言,神经网络是如何通过更新自己的突触来提升计算能力的呢?
1949年,加拿大心理学家唐纳德·赫布(Donald Hebb)写了一本影响深远的书。在书中,他提出了著名的赫布定律:如果两个邻近的神经元被同时激活(放电),它们之间的突触连接就会被强化,这样,它们就学会了触发彼此。这个思想可以被总结为一句流行语“一起放电,一起连接”(fire together, wire together)。虽然我们还不了解大脑学习的具体细节,并有研究表明答案可能非常复杂,但我们已经证明了,即便是简单的赫布学习规则(Hebbian learning rule),也能允许神经网络学习有趣的事情。约翰·霍普菲尔德证明,在赫布学习规则之下,用极其简单的神经网络也能存储许多复杂的记忆,只需要一次又一次地在神经网络上“暴露”相关信息即可。对人工神经网络或者学习技能的动物或人类来说,这种“暴露”信息的情形,通常被称为“训练”(training),有时也被称为“学习”(study)、“教育”(education)或“体验”(experience)。
如今,人工神经网络能使人工智能系统用一些更加复杂、精巧的学习规则来替代赫布学习规则,比如反向传播算法(backpropagation)和随机梯度下降算法(stochastic gradient descent)。不过,它们的基本思想是相同的,那就是:存在一些与物理定律十分类似的简单的决定性规则,通过这些规则,突触可以随着时间的变化不断更新。只要用大量数据进行训练,神经网络就可以用这个简单的规则学习到许多惊人而复杂的计算过程,就像魔法一般。我们还不知道人脑运用的是什么样的学习规则,但是,无论答案是什么,都没有任何迹象表明,它们会违反物理定律。
大多数电子计算机会将任务分解成多个步骤,并重复使用相同的计算模块来提高效率,许多人工神经网络和生物形态的神经网络也同样如此。在大脑中,有部分神经网络是计算机科学家所谓的递归神经网络(recurrent neural network),而不是前馈神经网络。在递归神经网络中,信息可以流向各个方向,而不像前馈神经网络一样只局限在一个方向,因此,前一步的输出是可以作为下一步的输入的。从这个意义上来说,笔记本电脑微处理器中的逻辑门电路(28)也是递归的:它始终在使用过去的信息,并让来自键盘、触控板、摄像头等的输入信息影响它正在进行的计算过程,而这个计算过程又决定了传输到显示屏、扬声器、打印机和无线网络的输出信息。同样地,你脑中的神经网络也是递归的,来自你眼睛和耳朵等的输入信息影响它正在进行的计算过程,而这个计算过程又决定了输出到你肌肉的信息。
学习的历史至少与生命的历史一样漫长,因为所有自我复制的生物都展现出了两种能力,即通过某种学习获得的信息复制能力和信息处理能力。这十分有趣。然而,在生命1.0时代,生物并不是从个体一生的经验中学习的,因为它们处理信息和做出反应的规则是由天生的DNA决定的,所以,唯一的学习过程只会发生在物种层面上,通过达尔文的进化论,代代相传。
大约10亿年前,地球上的一个基因系(gene line)发现了一种方法,能让动物产生神经网络,让它们能从自己一生的经验中学习。于是,生命2.0降临了。由于生命2.0学习的速度加快了许多,在竞争中占有优势,所以便像野火一样席卷全球。正如我们在第1章所说,生命通过学习变得越来越好,其进步的速度也变得越来越快。一种像猿猴一样的动物进化出的大脑特别擅长获取关于工具、生火、语言和创造复杂的全球社会的知识。这个社会自身也可以被看作一个能记忆、计算和学习的系统,并且这些过程正在不断加速,因为我们有了一些能催生更多新创造的发明,比如书写、印刷出版、现代科学、计算机、互联网等。未来的历史学家还会在这个“赋能式发明”表中加上什么呢?我猜,是人工智能。
我们都知道,计算机的存储能力和计算能力的爆炸式发展(如图2-4和图2-8所示)推动了人工智能的大踏步前进。但是,机器学习花了很长时间才逐渐变得成熟。当IBM的深蓝计算机在1997年战胜国际象棋冠军加里·卡斯帕罗夫时,它最大的优势是记忆能力和计算能力,而不是学习能力。它的计算智能是由人类创造出来的,而深蓝计算机之所以能战胜创造它的人类,是因为它的计算速度更快,因此在同一时间内能够分析更多的走棋招数。当IBM的沃森计算机在益智电视节目《益智问答》(Jeopardy)上抢过人类头上的桂冠时,它依靠的也并不是学习能力,而是为其专门编程的技巧、超人类的存储能力和速度。机器人学早期的大多数突破,从步行机器人到无人驾驶汽车和自动着陆火箭,也都同样如此。
相比之下,近期,人工智能方面的许多突破的推动力都是机器学习。比如,请看图2-11。你很容易就能说出这张照片描绘的是什么场景,但是,想要写一个程序,让它仅凭图像的像素色彩信息就输出“一些年轻人在玩飞盘游戏”这样精确的描述,却让全世界的人工智能研究者头疼了几十年。然而,2014年,谷歌公司的伊利娅·苏特斯科娃(Ilya Sutskever)带领团队完成了这项任务。当他们给所写的程序输入一张图片的像素色彩信息后,它说“一群大象在干燥的草地上行走”,又一次回答正确。这个团队是如何做到的呢?是不是像深蓝计算机那样,依靠手工编写的算法来检测飞盘、人脸等物体?不是的。这个团队创造了一个比较简单的神经网络,它没有关于物理世界的任何知识。然后,他们将这个神经网络暴露在海量的数据之下,让它学习。人工智能预言家杰夫·霍金斯(Jeff Hawkins)在2004年写道:“没有一台计算机能够达到老鼠的视觉水平。”这句话已经远远过时了。
图2-11 一些年轻人在玩飞盘游戏
注:这个描述是由计算机程序写出来的,它并不理解人类、游戏和飞盘都代表着什么。
我们还没完全理解儿童是如何学习的。同样地,我们依然还没完全理解神经网络是如何学习的,以及为什么它们几乎不会失败。但是,一个明显的事实是,它们非常有用,越来越受青睐,并掀起了一波针对深度学习的投资风潮。从手写文本识别到无人驾驶汽车的实时视频分析,深度学习已经改变了计算机视觉的方方面面。同样地,它也极大地提高了计算机识别语音并翻译成另一种语言的能力,有时甚至可以实现实时翻译,这就是为什么我们现在可以与个人数字助理比如Siri、Google Now和Cortana进行口头对话的原因。
恼人的验证码是我们向网站证明“我是人”的必要步骤。为了避免被日益提升的机器学习破解,验证码正变得越来越复杂。2015年,DeepMind公司发布了一个人工智能系统,让人工智能深度学习系统像儿童一样在无人指导的情况下学习了几十种计算机游戏的玩法。唯一不同的是,学着学着,人工智能深度学习系统玩游戏的水平就超过了人类。2016年,DeepMind公司创建了AlphaGo,这是一个会下围棋的人工智能,它通过深度学习的原理评估不同棋子赢棋的概率,并击败了全世界顶尖的围棋冠军柯洁。这个过程点燃了一个良性循环,将越来越多的投资和人才吸引到了对人工智能的研究中,进一步推动了该领域的巨大进步。
在第1章,我们探索了智能的本质以及它目前的发展情况。机器到什么时候才能在所有认知任务上都超过我们人类?我们显然不知道答案。此外,我们还需要做好“机器可能永远无法超过人类”的思想准备。但是,本章还传递了一个我们必须考虑的可能性,那就是它可能会发生,甚至就可能会发生在我们的有生之年。因为,物质在遵守物理定律的前提下,也可以组合出能够记忆、计算和学习的形态,而这种物质并不一定是生物体。人工智能研究者常被诟病过于乐观,总难实现自己承诺的目标。但平心而论,某些批评家也并不总是正确的。有些人总在转移重点,用计算机还无法做到的事情或者用哗众取宠的事情来定义智能。现在,机器在计算、下象棋、证明数学公理、挑选股票、描述图像、驾驶、玩电子游戏、下围棋、合成语音、转录语音、翻译和诊断癌症等众多任务上,成绩显著。不过,一些批评家还是会轻蔑地嘲笑说:“说得没错,但那不是真正的智能!”接下来,他们可能会声称,真正的智能只存在于汉斯·莫拉维克提出的“人类能力地形图”中尚未被淹没的山巅上(见图2-2)。曾有些人声称,会描述图像和下围棋的智能是真正的智能,但随着水位的不断上涨,这二者都已经被淹没。
既然我们假设“水平面”还会一直上升,那人工智能对社会的影响也会随之变大。在人工智能在所有技能上达到人类水平之前,它会带来许多迷人的机遇和挑战,涉及其带来的突破和故障,以及法律、武器和就业等领域的变化。这些机遇和挑战究竟是什么?我们如何才能未雨绸缪?下一章,让我们一起来探讨这些问题。
本章要点
◦ 当智能被定义为“完成复杂目标的能力”时,它不能仅用单一的“IQ”指标来衡量,而应该用一个覆盖所有目标的能力谱来衡量。
◦ 今天的人工智能还是比较“狭义”的,也就是说,只能完成非常特定的目标,而人类智能却相当“广义”。
◦ 记忆、计算、学习和智能之所以给人一种抽象、虚无缥缈的感觉,是因为它们都是独立于物质层面的。它们仿佛具有自己的生命,而不需要依赖和反映它们所栖息的物质层面的细节。
◦ 任何一团物质,只要它拥有许多不同的稳定状态,就可以作为记忆的基础。
◦ 任何物质,只要它包含某种组合起来能运行任何函数的通用基本构件,那它就可以作为计算质,也就是计算的物质基础。
◦ 神经网络是一个强大的学习基础,因为只要遵守物理定律,它就能对自己进行重新排列组合,执行计算的能力也会随之变得越来越好。
◦ 由于人类知道的物理定律极其简单,所以在能想象到的所有计算问题中,人类关心的非常少,而神经网络总能游刃有余地解决这些问题。
◦ 当某项技术的能力翻倍时,它通常又可以被用来设计和建造强大两倍的技术,引发不断的能力翻倍,这正是摩尔定律的精髓。信息技术的成本大约每两年就会减半,这个过程已经持续了约一个世纪,催生了今天的信息时代。
◦ 如果人工智能方面的进步持续下去,那么,早在人工智能在所有技能上都达到人类水平之前,它会给我们带来迷人的机遇和挑战,涉及其带来的突破和故障,以及法律、武器和就业等领域的变化,我们将在下一章探讨这些问题。
