《计算机与人脑》的思想和方法
《计算机与人脑》是在冯·诺伊曼去世后于1958年出版的。这本来是他为耶鲁大学西利曼讲座(Silliman Lectures)准备的讲稿,讲演原定在1956年春天举行,但由于冯·诺伊曼在1955年10月被查出患有癌症,未能去讲演,讲稿也没有写完。但单就现存的这两部分,已经可以看出冯·诺伊曼对这个问题的关注以及他的一些想法。
其实,冯·诺伊曼考虑的问题可以追溯到很久以前,其中涉及许多至今未能很好解决的基本问题:
——大脑是如何工作的?
——机器能否有思维?
在计算机已经空前普及的今天,把电子计算机(常常形象地译成电脑)与人脑进行比较更是十分自然的事:
——机器能思考吗? 也就是它是否自动产生思想?
——是否有朝一日,机器的智能会超过人类?
这里面当然还牵涉到更深入的问题,例如,人类大脑能否进化? 人脑与电脑能否耦合,使人脑更聪明,等等。
冯·诺伊曼在考虑这些问题时,并没有把自己局限于大脑乃至神经系统之中,他考虑问题的范围还包括“什么是生命”“生命的本质是什么”“生命是如何运作的”“能否用机器模拟生命”等问题。他的一些研究成果可散见于他的著作手稿和信件之中。
一、 主要思想
冯·诺伊曼的《计算机与人脑》篇幅不大,但思想丰富,对后来的理论与实践产生了不可忽视的影响。
1. 给研究像生物体以及神经网络这种复杂的对象提供了一种全新的研究方法
冯·诺伊曼在引言中明确地提出“本书是从数学家的角度去理解神经系统的一个探讨”。我们必须看到,这种探讨方法与传统方法根本不同。在物理学中,我们十分熟悉的方法是对所研究的物理系统,建立一个理想化的模型,这个模型在可处理的情况下,可以得出各种物理量之间的关系,这些关系通常用微分方程来表示。这样最后所需要的结果都可以通过求解这些方程得到。要知道,这种方法获得了空前的成功。牛顿力学、麦克斯韦电磁理论乃至爱因斯坦的相对论与量子物理学都是这样。从理论的角度来看,问题到此已大功告成,剩下的是数学家的事了。然而,数学家也不能解决所有的方程,特别是非线性方程,例如冯·诺伊曼多次提到的流体力学方程。而务实的科学家还是需要得到具体的结果,他们对那些满足于抽象化的专门数学家不以为然。1940年,著名空气动力学家冯·卡门(Theodore von Karman,1881—1963)写了一篇长文《科学家同非线性问题奋力拼搏》。冯·诺伊曼是务实的数学家,他给出了解决问题的新方向——计算机。另一方面,一些像冯·诺伊曼那样既能搞理论,又能搞应用和计算的数学家(如拉克斯)也解决了一系列非线性问题,第一个得到解决的是浅水波方程(即KdV方程)。
对于复杂的现象,例如生物学中的问题,也有人用物理学的方式去研究,的确也产生了少量的微分方程。但是,这些模型不是过于简单,就是无法求解。而且这种严格的、精确的数学不大适合研究不那么精确的生命现象。这样,冯·诺伊曼采用模拟的方法并用已经大量存在的计算机及数学模型来应对这种复杂的生命现象,看看是否合适。如果合适,由于对计算机以及数学模型的了解,自然就对要研究的生命现象有所认知了。
从复杂的神经系统看来,我们造出的数字计算机和模拟计算机显得十分简单。这样我们只需比较简单的电脑以及复杂的人脑就可以对人脑有初步的了解了。
这样,冯·诺伊曼从最简单的电脑开始研究。当然,现在电脑的复杂性大大增加,不过基本的思想还离不开冯·诺伊曼提出的一些理念。
2. 模拟方法与数字方法
冯·诺伊曼在书中多次提到模拟与数字这两种不同的方式。他指出,“现有的计算机,可以分成两大类:‘模拟’计算机和‘数字’计算机。这种分类是根据计算机进行运算中表示数目的方法而决定的”。除了数目显示之外,还有指令、存储以及各种控制方式。
冯·诺伊曼之所以强调数字和模拟的区别,主要在于他提出了混合计算机模型 ,即混合数字和模拟两种原则的计算机,而这正好是神经网络的特点。正是因为神经网络具有混合计算机的特征,单独用数字计算机的模型,如麦卡洛克-皮茨模型就显示出其不足之处。换句话说,神经系统没那么精确,而混合计算机也没那么精确。因此,冯·诺伊曼自然谈到误差问题,也就是精确度问题。他对当时模拟计算机和数字计算机的描述已是数十年前的事了,不过,他用的词汇并不过时。现在的人对此应该是耳熟能详的。
3. 大脑的混合结构
《计算机与人脑》第二部分是人脑。人脑是经过上亿年进化所形成的最复杂的自然结构。20世纪50年代,对于人脑的结构与功能的了解已有长足的进步,但其中许多奥秘远未为人所知。有着关于计算机的知识,冯·诺伊曼对电脑与人脑以及与人脑的相同与不同之处进行了深入比较。他已经明确注意到计算机与神经网络的相似之处在于,它们具有混合计算机即兼有数字计算机和模拟计算机的特点。显然,这是一种极大的简化,可是即便是这种简化也对神经系统的复杂性有不少启发性的认识。冯·诺伊曼很明确它们之间的差别,他也经常强调其中的重要差别。
首先,他从表面的一些数据进行比较,神经元的数据差别不大,但计算机人造元件现在比50年前差别巨大。不过,他得出的结论仍有参考价值。
按照大小,天然元件比人造元件远为优越,当时的比例系数是108~109,体积比较与能量消耗比较,这个系数大体也是如此。
按照运行速度,人造元件比天然元件要快,当时的系数是快104~105倍。
两相比较,神经系统比计算机的优越之处在于天然元件数量大却运行缓慢,而人工元件虽然运行快,但数量较少。这只是表面上的原因。冯·诺伊曼指出,天然系统的优越性主要是源于天然系统组织的高度的并行性。而当时的有效计算机,基本上都是串行的。
在这里,他提出了“逻辑深度”的概念,也就是为了完成问题的求解过程所需进行的初等运算的数目。天然的人脑并行处理所需逻辑深度要比他当时估计的计算机的逻辑深度(约107或更大)小得多。
现在的计算机结构体系都是冯·诺伊曼制定的。其中一个最主要部分是存储器,这相当于神经系统的记忆。他明确地指出: “我们在人造计算自动机方面的所有经验,都提出了和证实了这个推测。”这也表明冯·诺伊曼方法的优越性。根据这个假定,他估计出了神经系统的记忆容量。他估计的结果为: 人的一生所需的记忆容量为2.8×1020 位,远远超过当时计算机的容量105位到106 位。长期以来,他对基因的信息理论很感兴趣,但我们还没有充分资料来证明他的见解。本书中讲道: “基因本身,很显然地是数字系统元件的一部分。但是,基因可发生的各个效应……却是属于模拟领域的。这就是模拟和数字过程相互变化的一个特别显著的例子。”单就基因研究来看,这句话真是惊人的准确,然而,就基因与神经系统关系来讲,这些想法当然太过简单了。
4. 大脑的信息加工
《计算机与人脑》最后四章十分简短,但包含了丰富的思想。大脑的基本功能就是信息处理或信息加工,计算机当然也是。从信息论的角度来看,处理信息的基本问题就是编码,计算机的编码问题不在话下,神经系统当然远为复杂,更不用说如何理解语言及用语言进行思考了。冯·诺伊曼关注的基因密码问题可以说原则上已得到解决,而大脑的编码问题当然远为复杂。冯·诺伊曼为解决这个问题,提出了把代码区分为完全码和短码。完全码像计算机的代码那样,由一套指令构成,控制计算机去按规则解决问题。除此之外,他提出短码的概念,其目的是使一台机器可以模仿任何其他一台机器的行为。实际上可以把短码看成一种翻译码,它把其他机器的语言翻译为自己的语言,这样就可以在自己机器上实现其他机器的指令,完成必要的工作。
冯·诺伊曼提出的另外一个概念是算术深度。算术运算一般是串行运算,算术深度即这种基本运算的长度。数字计算机计算一般是准确的,然而,神经系统的模拟性质造成了误差,而且随着计算步骤进行,误差会积累和放大。冯·诺伊曼认为神经系统中所使用的记数系统并不是数字的,而是统计的。它使用另一种记数系统,消息的意义由消息的统计性质来传达。这样,虽然算术的准确性较低,却可以通过统计方法提高逻辑的可靠程度。他还进一步设想,是否还有其他的统计性质也可以作为传送信息的工具?
这样,他最后得出结论: 人脑的语言不是数学的语言。“神经系统基于两种类型通信方式: 一种不包含算术形式体系,一种是算术形式体系。也就是说,一种是指令的通信(逻辑的通信),一种是数字的通信(算术的通信)。前者可以用语言叙述,而后者则是数学的叙述。”
这样,他得出更为深远的哲学结论:
① “语言在很大程度上只是历史的事件。”
② “逻辑与数学也同样是历史的、偶然的表达形式。”注意,他先说这是合理假定,现在又强调是表达形式。
③ “中央神经系统中的逻辑和数学,当我们把它作为语言来看时,它一定在结构上和我们日常经验中的语言有着本质的不同。”
④ “这里所说的神经系统的语言,可能相当于我们前面讲过的短码,而不是相当于完全码。”
二、 思想来源
冯·诺伊曼对电脑与人脑的比较的思想背景,概括起来,可以归结为下面三个来源。
1.数学来源
冯·诺伊曼归根结底是大数学家,他不到20岁已经受到希尔伯特的公理化思想以及元数学或数理逻辑的思想影响。他十分明确地意识到数学中离散与连续的对立。他对新兴数学中结构观念的理解,特别是他对量子力学公理化及数学化的成功经验,都推动他对于更复杂的问题——特别是涉及生物学问题——使用数学方法。然而,数学对于大多数人来说,甚至对不同研究方向的数学家来说,都是令人不快又不解的理论,即使到现在,这种状况也没有得到多少改变。冯·诺伊曼在有些场合回答别人所提问的问题,其中许多是涉及提问者不能理解数学的本质及数学的思维方式的问题。尽管如此,由另一位大数学家维纳和冯·诺伊曼开创的广义的控制论运动,即包括冯·诺伊曼的电子计算机的大量工作,还是实实在在地改变了整个社会,尽管还没那么深刻地改变人们的思维方式。
2. 1943年开展的控制论运动
控制论的建立以维纳在1948年出版的《控制论》为标志,但是带有宣言性质的两篇论文都是在1943年发表的。一篇是麦卡洛克(Warren McCullock,1898—1969)和皮茨(Pitts Walter,1923—1969)发表的《神经系统中普遍存在的原理的逻辑演算》,另一篇是维纳与毕格罗(Julian Bige-low,1913—2003)和罗森布吕特(Arturo Rosenblueth, 1900—1970)合著的《行为、目的和目的论》。
前一篇论文可以看成冯·诺伊曼工作的前奏之一。这篇论文实际上给出神经系统,即由神经元组成的一个简化的网络模型。后来,冯·诺伊曼称之为形式神经网络。在对神经网络做出一些假设,例如神经元活动满足“全或无”原则,神经系统的功能就可以用命题逻辑来研究。他们证明,任何神经网络的行为都能用逻辑来描述。复杂的神经网络可用复杂的逻辑来描述。反过来,对应于满足某些条件的逻辑表达式,也可以找到对应的神经网络来实现相应的行为。这样,他们就把神经功能十分严格地、从逻辑上不含混地加以定义,这是一个伟大的进步,但终究无法解释复杂的神经网络的活动。正是这些不足之处引导冯·诺伊曼从反方向来研究。
3. 冯·诺伊曼对电子计算机的开发与应用
虽然有人不能完全同意冯·诺伊曼是“电子计算机之父”,但他确实是对电子计算机的开发及应用做出最重要贡献的人物。众所周知,人类很早就有制造计算机的需要以及各种设想,而且在专用机及模拟机方面也取得了一些进展。冯·诺伊曼比同时代几乎所有人都眼界更宽、看得更远。虽说英国科学家图灵(Alan Turing, 1912—1954)建立了通用计算机的数学模型,但在1936年,这是数理逻辑的理论上的成就,而不是能够实际应用的技术成就。现在大家都能看到的,则是由冯·诺伊曼首次设计程序内存的通用数字计算机。
冯·诺伊曼看得更远,他从一开始就十分关注计算机本身的发展及各方面的应用。即便从计算机的原始需求——用于武器设计来看,提高速度也极为重要。由于当时技术条件限制(后来不断明显改进),他必须考虑通过其他途径加速提高计算的功效,一方面是设计优良的、面向计算机的算法,例如乌拉姆(S.M.Ulam,1909—1984)与他一起发展起来的蒙特卡罗法;另一方面进行数值分析,克服误差传播与放大。
三、 自动机理论
本书以极少的篇幅比较电脑与人脑,但这只是他的庞大纲领的一部分。虽然他因病没有完成整个课题,不过,他以前的研究加上本书已经形成计算机科学的一个核心领域——自动机理论。不仅如此,他关注的问题还涉及生命科学的基本问题以及后来所说的人工智能及人工生命的问题,这些也都是现在十分热门的课题。
冯·诺伊曼是自动机理论的创立者。从计算机与神经系统通过数学抽象就产生出有限计算机的数学模型。而数学模型给了科学家极大的自由度去修改、扩充已知的自动机,例如计算机。冯·诺伊曼作为大数学家深知这种方法的威力,他早在1948年9月在希克松(Hixon)会议上,作了题为“自动机的一般逻辑理论”的报告。他的关注点是一般生物体,并试图给出一般逻辑理论。其中特别指出,自动机的逻辑与一般形式逻辑不同之处主要有二:
第一,推理链即运算链的实际长度。
第二,逻辑运算在整个过程中容许存在一些例外,这些失误的概率可以很小但不是零。
由此也产生误差问题及数字化问题,另外他还涉及更重要的问题,复杂性概念与图灵机理论。后者是无限自动机理论的模型。
冯·诺伊曼明确指出,自动机理论是处在逻辑、通信理论及生理学中间地带的一门学科。“更确切地讲,它兼具逻辑数学、计算机科学、生命科学的特征,涉及广阔的领域,而且有着极其重要的应用。冯·诺伊曼不仅给这门学科奠定了理论基础,而且还开拓了一些新的分支。其中最主要的是概率自动机理论与细胞自动机理论。
概率自动机是内部或环境都存在随机因素的自动机。它与通常的计算机有着明显差别: 通常计算机的元件十分可靠,程序的指令十分可靠,元件的连接方式确定,只有这样,我们才能得出准确的结果。因为其中的某一个小的差错,就会造成完全错误的结果。然而自然的机器与某些人工设备难以满足这种要求。当时知道的最典型的机器一是大脑,二是通信的信道。大脑的神经元并不可靠,因为它们经常处于损伤、疾病之中甚至遇到事故,然而从整体上讲,大脑的某些功能并没有受到影响。通信的信道也是如此,尽管有误差,但我们仍能够获得可靠的消息。这些都推动冯·诺伊曼得出概率自动机的初始概念。他考虑的问题是如何应用不可靠元件构成可靠的计算机。其目标是让误差的概率尽可能的小。
冯·诺伊曼通过两种方法解决这个问题。一种是比较法,即从三个不可靠子网络出发,加上一些比较装置,不断构成一个更大、更可靠的子网络来实现同样的功能。对某个具有可靠元件的自动机的网络,系统地施行下去,即可以实现用不可靠元件的可靠机器。第二个方法是多重输出法,即把二元输出的一线变成一丛线,可以构造一个输入线丛对应输出线丛的子网络,通过冗余,它可以大大降低误差的概率。冯·诺伊曼认为这可能也是人脑可靠性的基础。
冯·诺伊曼更重要的贡献在于创立细胞自动机理论。这个理论完全是从生物学出发的,它具有一般机器完全不同的特点,即自繁殖性。冯·诺伊曼的细胞自动机与原来自动机不同之处主要是: 细胞自动机的“元件”是小的自动机,运算是并行运算,他提出细胞自动机论最基本的概念称为细胞空间——它已引出许多研究方向。冯·诺伊曼最原始的细胞空间就像棋盘,每个格子点处有个细胞。它的细胞都是相同的,具有29个状态的确定的有限自动机。细胞自动机整体构形由每个小自动机的前一时刻状态决定。初始构形以自动的方式决定下一时刻的构形,而自动机论则探讨所有可能构形的结构、功能及其关系。所有后来的细胞自动机都是在这个基础上发展起来的。例如1968年扩展出的L系统就可以描述多细胞的发育过程。即便是最简单的冯·诺伊曼细胞空间,也在设计并行计算机以及大规模集成电路方面有重要应用。这些都足以显示冯·诺伊曼思想的深刻性与前瞻性。