本文所说的“计算机思维”,指的是“计算机象人的大脑那样的工作”。由于我们目前对人类大脑工作的原理还至少处于半无知的状态,我们也就无法确切地界定什么是思维。这样,我们就只能换另外一种方式来讨论 “计算机能不能思维”这个问题,即把“计算机能不能思维”这个问题改变“计算机能不能象人的大脑那样工作”这样的问题来讨论。
从本世纪70年代开始就有不少的计算机科学家预言“能够思维的计算机”很快就会问世。但是,到目前为止,即使全世界最高级的计算机也还始终只是一台按照人编制的程序工作的“机器”。 在现代机器刚刚发明出来之时,不少人希望能够制造出一旦发动就不再需要新的能量、能够永远运转不停的“永动机”。后来,科学家们能够最终能从理论上证明“制造永动机”的不可能。我们现在虽然不能象科学家们证明“永动机不可能”那样证明“计算机不能思维”。但至少可以从逻辑上对这个问题作出一个初步的判断。
一、从计算机语言的角度证明计算机不能象人的大脑那样工作
许多计算机科学认为将来的计算机能够象人的大脑那样思维的主要原因是因为人类使用语言思维,计算机也可以使用计算机语言。这样,计算机最终能够象人的大脑那样思维。
在这里,赞同计算机能够象人的大脑那样思维的计算机科学家犯了如下逻辑上的错误:先把人类思维简单地等同于语言思维,再把计算机语言简单地等同于人类语言。这样,人是用语言思维的,凡是能够使用语言的“事物”---不管是人还是机器,都能够“思维”。我们可以通过人类语言和计算机语言的对比来证明:在现有的计算机硬件水平上,无论采用什么高级的计算机语言,计算机都不可能象人的大脑那样思维。
1.人类自然语言的特点
人类自然语言既是交流的工具,又是认知的工具,同时也是思维的工具。由于人类自然语言同时要满足这三种功能,它就必须达到如下要求:思想、方法、对象三者同时融于语言之中。这就是人类自然语言的“三位一体性”。如果没有这种“三位一体性”, 人类自然语言对人类就失去了意义。试想,如果我们用语言交流,双方却不能通过语言知晓对方的思想和思维的对象以及方法;我们用语言认知,却不能用语言把握对象、掌握方法和认知目的;我们用语言思维,我们却不知用的什么方法,思维的对象是什么,用什么观念控制思维。在这样的情况下,语言对人类还有什么意义呢?与此相应,人类自然语言要同时满足这三个功能,就必须是具有相当程度的不确定性。这也就人类自然语言的“说不准原理”,即在任何一种语境中,语词所指称的对象都只是相对确定的。
人类自然语言的这种“说不准”的特点决定了人类大脑思维过程的模糊性。现代神经生理学和神经心理学等学科的研究已经证明,人的大脑左、右半脑是有相当分工的。对于大多数人来说,语音语词存储在大脑的左头脑,视觉表象或“图景”存储在大脑的右半脑。大脑思维过程的模糊性就是,人类大脑左半脑中的语词与右半脑中的“图景”是一种非常模糊的对应关系。这种模糊的对应关系使得人类大脑根本不可能象电脑那样快速准确地“计算”。然而,正是这种模糊性给人类以极大的适应性,使得人类能够在极端不同的环境条件下生存。人类自然语言具有极大的模糊性,但人类所处的自然环境具有一定程度的同一性,外部世界通过视觉进入人类大脑右半脑的信息具有一定程度的同一性和确定性,大脑右半脑处理这些外部信息的机制具有一定程度的同一性和确定性,大脑左半脑的语词与其指称的大脑右半脑的“图景”也具有一定程度的同一性和确定性,人类在交流过程中使用的语词对外部事物的指称也具有一定程度的同一性和确定性。人类依靠这一定程度的同一性和确定性,通过相互交流达到一定程度的合作,通过在这种合作过程中不断地试错,进而有效地适应环境。这样,人也就成为万物之灵。
2.计算机没有主体,计算机语言没有思想
我们是否能在现有的集成电路的技术之上,“创造”出一种新的计算机语言,使计算机能够象我们人类大脑那样工作呢?这似乎是不可能的。计算机是没有“主体”的。一个没有主体的机器却要使用必须有主体才能使用的语言,似乎从逻辑上也说不通过。现有的计算机的命令语句全部是祈使语句。而人类自然语言中,每一句话都包含着说话的主体,只是我们习惯地省略掉了这个主体。比如,我们对某人说“Copy the file.”时,全部语句是“I want you to copy the file.”在这里,“I”是主体,“you”是“I”祈使的对象,“to copy the file”是“I”祈使的对象的行为。而在计算机语言中,“I”是我们操作计算机的人,“you”则是计算机,“to copy the file”则是计算机的行为。我们通过对计算机语言的分析,也可以看出,计算机是没有主体的。在我们还没有创造出具有主体性的计算机之前,我们不可能为计算机“创造”出一种能够使用必须具有主体性才能使用的语言。
计算机之所以能够比人类大脑更加快速准确地“计算”,正是在计算机克服了人类自然语言上述“三位一体性”的“缺陷”。计算机能够快速、准确地“计算”的最基本的原因,就是硬件与软件的分离、程序与数据的分离。这实际上也就是将我们人类自然语言中的思想与方法、方法与对象、思想与对象实行了分离。由于这些分离,使得计算机的程序语言中的命令与数据,都能非常精确地指称计算机内存里面的确定区域。这样,计算机“计算”的时候,就不会象人类大脑那样,左半脑中的一个语词指称的是一个几乎难以确切地划分出“边界”的右半脑中的图景,而是一块有着确定“地址”的内存区域。这样,计算机就能够达到快速准确地“计算”了。
计算机语言没有思想。计算机语言的“思想”存在于编制程序的人的大脑之中,这就将使计算机语言的思想与方法分离了。计算机的程序语言是一种高度形式化的语言,这种语言与它要处理的对象是严格分离的。而计算机语言所要处理的对象,仅仅是数据。即使我们称现在的计算机能够处理“图象”和“声音”,它也是把这些图象和声音变成了数据之后进行处理的。这样,计算机语言又达到了方法与对象的分离。由于计算机语言没有思想,当然就谈不上思想与对象的分离。而我们之所以能够有效地利用计算机,其中最关键的一条也就是我们把需要计算机处理的信息变成了“数据”。这同样使得我们的思想---我们不同的人之间的关于世界的看法与对象分离了。因为,数据一旦采集之后,就成为一种“客观”的东西,无论我们用什么样的观点看待和处理这些数据,但是,数据本身却不会变化了。由于计算机语言能够达到帮助我们人类在处理信息的过程中使思想与方法、方法与对象、思想与对象三者之间达到非常有效的分离,计算机也就能够为我们做很多的工作。而这一点,则正是计算机的优势。
3.现有的计算机不可能象人的大脑那样思维
通过从计算机语言的角度对计算机的功能的分析,我们可以知道,我们能够使用计算机语言使计算机好好地为我们工作,正是因为计算机语言帮助我们克服了人类自然语言“三位一体”的“缺陷”,使人类自然语言中的思想与方法、方法与对象、思想与对象在计算机语言中产生了较高程度的分离。计算机及计算机网络能够在我们生活中起到那样巨大的作用,最基本的原因就是硬件和软件的分离、程序和数据的分离。硬件和软件的分离并不仅仅只是在计算机技术之中,现代任何工程技术就实行了这种分离。现代大工业机器生产,其硬件和软件都实行了分离。否则,人们不可能在全世界各地生产元部件,然后再在产品的需要地组装。今天,人们可以在全世界各地生产计算机的各种元件和部分,也是由于人们共同使用的是高度形式化的数字逻辑和机器语言。而程序和数据的分离,则是计算机信息处理技术中的一项最重要的革新,计算机网络充分利用了这种技术,使得人们可以在世界各地相对独立地编制程序和收集数据。而这些程序和数据却可以通过网络使各种不同的计算机共同享用。
从上面的证明中可以看出,计算机能够达高速、准确地“计算”,其关键原因就在于计算机没有主体,计算机语言没有思想。这就使得不同的人们能够有效地利用计算机使人类的思维过程中将思想、方法和对象分离开来。由于这种分离作用,不同地区的、不同民族的、不同语言的人们可以在计算机网络上共享信息资源。
在计算机语言的思想、对象和方法的分离的基础上,计算机语言中的命令、变量和常量与计算机存贮器里面的一定的区域有着严格的指称关系,这样,计算机就能够快速、准确地寻址和计算。尽管现代高级计算机的“计算”速度及其准确性令我们吃惊,但是,由于计算机是一台没有主体的机器,计算机语言是一种没有思想的语言,要这种使用没有思想的语言的没有主体的机器象人的大脑那样思维是根本不可能的。并且,我们不可能创造出一种具有“思想”的计算机语言,让没有主体的计算机使用。这似乎在逻辑上是始终讲不通的。就象人类教动物学说话至少有几百年的历史了,但目前还没有成功的一例。动物之所以不能象人一样的说话和思维,就是无论如何,它们是没有主体的。计算机的内部结构比动物的大脑不知简单多少倍,让这样简单的、没有主体的机器使用人类这样复杂的语言、象人的大脑那样工作,简直是不可思议的。
二、从计算机硬件的角度证明计算机不能象人的大脑那样工作
既然我们不能让没有主体的计算机使用具有思想的语言,那么,我们是否可以在不久的将来制造出某种具有主体的计算机,使其能够使用某种具有思想的语言,象我们的大脑那样工作呢?从逻辑上来说,这似乎也是不可能的。因为,“主体性”的产生是一种极其复杂的自组织过程。要制造出一种具有高度自组织过程的计算机,似乎也是不可能的。
1.人类难以制造出象大脑神经细胞那样复杂的计算机“元件”
如果我们要制造出一台具有高度“自组织“过程的计算机,首先就必须使这种计算机的“元件”具有某种“独立性”。目前人类的制造技术虽然达到了极其高级的水平,但是,要制造出象大脑神经细胞那样的“元件”还是非常困难的。尽管目前的神经网络计算机或生物技术似乎有了一些“起色”,但与人类神经细胞相比,差距还是十分大的。人类大脑的神经细胞是生命进化几十万年甚至几百万年的产物。到目前为止,人类还只是了解到其运行机制的极其有限的内容。
2.人类没有能力将类似于大脑神经细胞的“元件”装配在一起
即使人类能够制造出象大脑神经细胞那样复杂的元件,人类有没有技术将其“装配”得象大脑神经网络那样工作。目前的计算机能够这样快速地工作,其根本原因是因为计算机的集成电路中的各种各样的“开关”的连结没有人的大脑神经细胞之间通过神经末梢连结那样复杂。如果计算机技术发展的程度达到了能够把现在的一个个的“开关”变成象人的大脑中的一个个的“神经细胞”一样的机制,人类也可无法将这些神经细胞连结在一起有效地工作。因为,这些“神经细胞”有了某种“独立性”,其“行为”也就具有了相当程度的“任意性”,计算机科学家也就再也无法让它们象现在的集成电路中的“开关”那样按“规律”活动了。人类神经细胞连结成神经网络,是人类生命进化几十万年甚至几百万年的结果。在这个进化过程之中,神经细胞通过其神经末梢的电子跃迁、离子藕合的过程经过了长期的环境适应和内部调适。这个过程是极其复杂的,并且仍然还在进化。就目前人类的知识和技术,以及人类智力的有限性,要想人工制造出象人类大脑神经网络这样的“造化之物”是极其困难的。
3.计算机科学家没有办法将上述“装配”方法说出来
即使个别的计算机科学家碰巧想出了某种能够将这些复杂的元件连结在一起的方法,这个计算机科学家也难以将这种方法“说”出来。现代科学技术能够产生巨大的作用,关键的愿意是因为科学家具有“科学”这种共同语言。科学家能够通过学习和使用这种共同的语言进行合作。某个计算机科学家或许能够通过自己的反复操作、或偶然的机遇将某些类似于大脑神经细胞的“元件”连结在一起,使其正常“工作”。但是,如果这个科学不能使用共同语言将这种方法表述出来,其他的科学家也就难以学习这种方法。这就如同中国古代的“小人”们创造出无数世界领先的技术,但由于中国古代的文字语言只供“君子”论“道”而不论“器”,中国古代也就没有一种有效的语言将这些技术转化为人类可能普遍享用的科学。
4.计算机科学家没有能够进行共同操作的形式化语言
即使个别的计算机科学家“发明”了能够说出这种方法的“私人语言”,计算机科学家也难以用其作为交流的工具。科学技术的发展依赖于共同的语言,但是,这种语言还必须高度形式化的语言。如果某个科学家能够用自己的“私人语言”表述这个过程,其他的科学家或许能在一定的程度上理解某个科学家所说的,但是,这种语言并没有高度的形式化,科学家难以用这种语言进行某些可重复性的操作,科学家也同样难以使用这种方法。现代计算机的研究和制造是在无数的计算机专家分工合作的基础上进行的。这种分工合作的基础,从硬件的角度来说,就是计算机专家能够合作标准的计算机机器语言---实际上就是数字电子线路语言。从软件的角度来说,就是可以共同使用的高级程序语言。如果没有这两种高度形式化的语言,计算机的研究和制造、计算机的推广和使用都是不可能的。
通过上面的说明,我们可以知道:第一,人类难以制造出象大脑神经细胞那样复杂的计算机“元件”;第二,即使制造出这样复杂的元件,人类难以将其有效地“装配”在一起,让它们正常的“工作”;第三,即使某些科学家能够在经验上想出某些办法让将这些元件装配在一起“正常”的工作,但这些科学家无法将这种方法“说”出来,第四,即使这些科学家用“私人语言”将这种方法“说”了出来,但由于这种语言不可能形式化,其他的科学家也难以理解。由于这四个方面的原因,要从计算机硬件的方面来制造出“象人的大脑那样思维”的计算机似乎也是不可能的。
三、计算机不能象人的大脑那样工作
通过上面从计算机语言和计算机硬件两个角度的论证,我们知道,要使计算机能够象人类大脑那样思维,必须具备如下条件。
第一,必须制造出具有“主体”的计算机。
第二,必须创造出具有“思想”的语言。
第三,必须使这种具有“主体”的计算机接受这种有“思想”的语言。
要满足第一个条件,就必须制造出具有一定“独立性”和“任意性”的计算机“元件”。人类要制造出这种具有一定“独立性”和“任意性”的“元件”的可能性是非常之小的。因为人类大脑神经细胞是生命进化的产物,其复杂程度是现在的集成电路仅仅用“开关”来控制电子流动难以比拟的,也是人类难以在实验室内控制生产的。并且,即使制造出具有某种“独立性”和“任意性”的元件,人类就不可能让它们按人类的“意志”装配在一起。因为使用语言包括人类自然语言和科学语言说明复杂系统具有如下困境:仅仅描述单个“元件”的行为,并不能说明整体的行为;描述整体的行为,就只能是极为近似的。用这种极其近似的语言描述这种新的类似于神经网络的整体状况还勉强,要用这种语言制造计算机,则几乎是不可能的。这样,人类制造出某种具有“主体”的计算机的希望是非常眇茫的。制造计算机是一个复杂的合作过程,在这个合作的过程,没有形式化的共同语言,合作就无法进行。
前面我们已经说明,在现有的计算机技术条件下,仅仅使用软件的方法即依靠计算机语言的发展是不可能计算机象人类大脑那样思维的。这样,即使我们的计算机技术发展到了能够满足上述第一个条件的水平,我们也难以为这些计算机“创造”出一种有思想的语言。
即使我们同时满足了制造出了一部有主体的计算机,创造出了一种有思想的语言,我们也不可能将作为硬件的计算机和作为软件的语言有效地结合在一起。如果这些机器具有了“主体性”,他们自己就会“创造”自己的语言,它们怎么还会接受人类为它安排的语言呢?
这样,我们可以说,就人类的智力和技术水平,要使计算机能够象人类大脑那样工作虽然难以说是不可能的,但确实是极其困难的。
四、计算机思维的神话产生的逻辑原因
很多计算机科学家之所以相信计算机能够思维,是因为他们犯了如下的逻辑错误:一是把思维等同于语言思维,二是把计算机语言等同于人类自然语言。由于这两个等同,计算机科学家自然就会产生第三个等同:把计算机信息处理的过程等同于大脑思维过程。
我们要对某些超越了人类认知能力的事物作出解释,一般采用的是用某种神秘的“实在”来解释它。由于我们对自然和社会运转的规律所知甚少,我们就用“上帝”、“天道”之类的东西解释自然和社会所发生的一切。由于我们对我们的“精神”所知甚少,我们用“灵魂”解释我们的“精神”。由于我们对我们的历史还所知甚少,我们就用“文明”或“文化”来解释我们的历史。虽然计算机是由人按照一定的自然规律制造出来的,但由于其内部工作过程的复杂性和层次性,普通人要了解计算机的工作原理也是非常困难的。计算机科学家可以用专业术语将计算机的工作原理和工作过程解释得清清楚楚,但是,这些解释对普通人来说,无异于“天书”。这样,科学家和专业技术人员就必须用“拟人化”的方法和语言解释计算机的工作过程。然而,面对一个由人按照一定的规律制造出来的计算机,计算机科学家不可能再用“灵魂”、“精灵”之类的话语来予以说明:计算机科学家不可能说计算机之所以工作是因为其内部有一个“小精灵”。在这种情况下,选用什么样的话语来解释计算机的工作过程呢?“思维”就是一个最恰当的术语。如果我们说计算机能够思维,任何人都会“理解”这个工作过程,尽管普通人几乎没有对“思维”做过什么研究,但任何人都时时刻刻在思维。使用“思维”这个术语解释计算机的工作过程,科学家和普通人之间就有了“共同语言”。从使用“思维”这个术语解释计算机的工作过程开始,计算机能够思维的神话也就开始产生了。或者说,当计算机科学家开始用“思维”这个术语解释计算机的工作过程,相当一部分计算机科学家也就开始相信计算机能够思维,计算机科学家也就开始制造“计算机能够思维”的神话。
对于计算机科学家,什么是思维呢?计算机科学家一想到思维,自然就会想到语言。无论谁都知道,我们的有意识的思维是利用语言进行的。一想到语言,马上就把计算机程序语言与人类自然语言等同起来。这样,如下的结论就会自然产生:思维就是语言思维,计算机使用语言处理信息,人使用语言进行思维,计算机也就能够象人一样思维。
很多计算机科学家之所以产生相信“计算机能够思维”,其重要原因之一是通过计算机工作过程和大脑工作过程的“形式上的”对比,发现了某种共同的东西。这种共同的东西就是所谓的“信息处理”。计算机能够“接受”信息,“储存”信息、处理信息、输出信息。而我们人则同样可以接受信息---听、看、阅读等,储存信息---记忆,处理信息---思考,输出信息---说、选择性地看、作出反应、阅读等。这也就是说,大脑工作过程与计算机工作过程有着某种形式上的可比性。本来,类比是人类把握外部世界的一种重要方式,形式化的类比更人类思维的一种最重要的方式。利用大脑工作与计算机工作的类比,得出某种形式上的一致性,并用这种一致性做为探索大脑奥秘的某种手段,这一切都无可非议。但是,仅仅因为计算机处理信息的方式和人对外部世界的感受和反应的方式具有某种形式上的可比性就把计算机信息处理的过程和大脑的思维过程看作相同的东西,首先就犯了一个逻辑上的重大错误。
前面我们已经说明了人类自然语言与计算机语言的差别。我们说语言是思维的工具,并不是说语言就是思维。而我们之所以经常产生语言就是思维的错误结论,正是因为前面所说的语言的“三位一体”性---即我们的思维过程中的思维、方法、对象都融合在语言之中。然而,在计算机语言中,这种三位一体性得到了严格的分离。这样,计算机就不可能象人类大脑那样思维。同时,这也是计算机能够在“计算”方面比人类大脑迅速准确得多的原因。
计算机能够思维的神话就依靠如下的逻辑得以产生:人能够思维,思维就是语言思维---任何能够使用语言的事物也就能够思维;计算机能够使用计算机语言,计算机也能够思维;计算机的工作过程就是信息处理的过程,大脑思维的过程也同样是信息处理的过程,计算机能够进行信息处理---计算机能够象人的大脑那样工作---计算机能够思维。
我们的大脑还是一个十分神秘的东西。正是由于这种神秘,我们在进行科学研究的过程中,就必须时刻留心这种神秘性带来的不利作用。因为,稍不留神,我们就会得出荒谬的结论。把思维等同于语言、把计算机语言等同于人类自然语言、再把计算机信息处理等同于大脑思维,这就自然会得出计算机能够思维的结论。当我们把思维与语言区别开来,了解了计算机语言与人类自然语言的巨大差异,了解到计算机信息处理与大脑思维之间的巨大差异,我们就不会盲目信从“计算机能够思维”这个神话了。