饭饭TXT > 学习管理 > 《生命3.0(出书版)》作者:[美]迈克斯·泰格马克【完结】 > 生命3.0.txt

第 4 页

作者:美-迈克斯·泰格马克 当前章节:15500 字 更新时间:2026-6-23 05:07

人类总喜欢按难度对任务进行排序(见图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个神经元将任意两个数字相乘,以及单个神经元如何将三个二进制数字相乘。

目录
设置
设置
阅读主题
字体风格
雅黑 宋体 楷书 卡通
字体大小
适中 偏大 超大
保存设置
恢复默认
手机
手机阅读
扫码获取链接,使用浏览器打开
书架同步,随时随地,手机阅读
首 页 < 上一章 章节列表 下一章 > 尾 页