扫码在手机阅读
手机阅读《人人都是伪君子》
人人都是伪君子

第6章 进化与碎片化大脑2

实际上,据我的了解,在计算机科学领域,在复杂的信息处理系统中,模块性是否是一个好的想法并不是一个真正的问题。就像近来所说的,模块性或者“关注点分离”是“软件工程的一条关键指导原则”。计算机科学早已知道,好的系统设计需要将计算分解成子程序,使系统更灵活、更易修改,容错能力更强。甚至模块“内部”的“隐藏”信息的概念(它与我们将在以后的章节中探究的许多观点非常类似)也并不新鲜。考虑到模块性在计算机科学领域中已为大家所公认,我不明白为什么在心理学领域它却还如此有争议。我把这个困惑的问题留到下次再谈。

我们来思考一下被称为“特定领域语言”和多用途语言的区别。根据维基百科(我常常犹豫是否使用它,但为了这个目的我会使用)的说法:

如果特定领域语言与现有的语言相比,能够使一个特殊类型的问题或问题的解决方案可以被更清楚地表达,而且这些问题类型在讨论中频繁地反复出现,那么创造一个特定领域语言(包括支持它的软件)可能会很值得。

包括人类在内的生物体本质上都是机器。但不同的是,人们制造机器通常用来做对我们有帮助的事情,而生物体是被设计用来自我繁殖的机器。(再继续往下谈之前,不得不提的是,尽管这些观念对于现在的人们来说再熟悉不过,而在达尔文之前却并不是那么尽人皆知。那时人们可能会认为生物体及其组成部分的功能并不是为其自身的繁衍服务,而是对保持生态系统平衡,保持自然的多样性,甚至是为了人类的开发利用之类事情有用。)

所以,为了生存和自我繁衍的生物体,就拥有了很多设计出来的为了这个目的而工作的组成部分。一般来说,那些能够成功自我繁衍的生物体,和种群中的其他个体相比,当然是那些能够很好地执行生存和自我繁衍所必需的功能的个体。因为自然选择的影响是一个漫长的时间过程,所以即使是一个很小的优势都会有重要影响,这也就是为什么当你去动物园或者站在野外时,会惊叹于那些为其功能服务的生物体的组成部件。

我的桌子上有一件裱好的叶虫(Phylliumcelebicum)标本,这是以前毕业的一个学生在拿到他的博士学位时送给我的礼物。这种虫子多被认为是一种“像叶子一样的昆虫”,因为它有一个让人惊叹的像一片叶子一样的身体。它身体上面轻微的压痕、部分淡淡的褐色和另外染上的绿色,使其看起来像一片被吃掉一部分并且已经轻微腐烂的叶子。这是它的伪装中最让我喜欢的。

一篇计算机科学领域的文章谈到了由于内在的权衡性,不同的系统是如何更有助于不同类型的问题。我在这里详细地引用其中的一部分,是因为其作者为了让人理解拥有很多专业化工具的好处,使用了进化心理学家们使用过的同样的类比:

在过去,人们认为一套单一的语言就可以很好地适用于所有的编程任务……但是随着时间慢慢过去,更多的语言投入了使用,新的语言仍然在不断出现……正如任何一个强大的机器都会装配各种不同的工具应对一个10mm的螺母(开口扳手、套筒扳手、乌鸦脚扳手、浅插座、**座等);任何一个有能力的程序员都会通晓许多不同的语言,这样他们就能够选择最好的语言来应对某种特定的情况。

同样,意识也是一套包含着各种程序和子程序的软件。当然这并不是说人类没有获取信息、向他人学习或者传递信息等等。没有任何关于专业化的信息来源能说明这些信息对于建造一个能正确运行的机器是必需的。许多模块被设计用来获取关于世界的信息(语言学习系统就是最著名的例子),但是并没有说明模块化系统不能学习,而且很不灵活,或者仅仅是绿色版。许多人像这样推论(不是关于绿色的部分),但是专业化显然和固定化、基因决定论或者任何其他荒谬的东西不一样。

实际上,就像我们在车辆的例子中看到的,增加模块化系统可以增加复杂性和灵活性,这是计算机科学家早已熟练掌握的要领。

不仅仅是计算机科学家,我认为苹果公司iPhone手机的成功很大程度上就是来自于iPhone手机上运行了大量专业化的小程序。iPhone手机被广泛地使用(现在有了拥有类似性能手机的竞争),就是因为它可以运行很多和模块类似的(专业化的)实用性应用程序。人类工程和进化过程采用了同样的解决方案,将许多专业化的应用组合在一起,制造出了一个灵活实用的信息处理设备。

泛泛而谈

总之,因为专业化产生效率,效率带来进化上的优势,我们应该期望生物体的身体和大脑以互动模块集合的形式,展现出功能上的专业化。

这只叶虫的伪装色的功能,就是为了使其与周围的环境融合,从而避免被天敌发现和捕食。对此我们可能没有什么疑问。同样的道理,我们清楚地知道眼睛的功能是观察,因为所有我们观察到的性质(绿色伪装色、躯干上的脉状结构、叶片状轮廓等)让我们有可能知道这个生物的伪装色的功能,即便我并没有化石标本也没有做任何基因序列的检测。之所以提及这一点,是因为当我们谈论支持适应性假设的证据时,我们很容易忘记我们要寻找的是那些对特定功能有贡献的特征。

在叶虫的例子中,观察颜色和形状让我们可以对其功能进行推断。这些未必会有用处的物质准备能够成为现实的唯一途径就是进化的过程,颜色和形状也是我们能够用来推断其结构的功能的证据。同样,一个物体的物理性质提供了阐述其功能假设的数据,人类行为的数据阐述了关于构成人类意识的计算机功能的假设,这是因为,人类意识中颜色和形状的等价物是计算指令。也就是说,和物体由于其形态的细节而能够做有用的事情一样,人类意识由于其执行的计算指令而能够做有用的事情。人类意识的计算指令的性质,当然可以根据行为数据来了解,这些数据可以告诉我们一些关于计算指令和功能的信息。心理学实验(包括在这里讨论的)对于我们理解意识模块或子程序的功能很有帮助。

专业化

大脑的功能就是用来处理信息,所以我们需要考虑信息处理系统中特异化的权衡和优势。在思考如何建造以信息处理为目标的机器上花费了大量时间的计算机科学家们,普遍已经发现把庞大的程序任务拆分为许多更小、更明确具体的问题是一个很有效的办法。任何一个尝试去写一个子程序或宏的人都能直觉到这一点。伴随着其他模块化的优势,对于你需要解决的问题有越多的假定,包括信息数据的格式(整数型、实数型、字符串型等等),就越容易写出执行问题中功能的代码。

但是也要注意到,一个烤面包机并不是一个很好的镇纸,它体积太大而且笨重。它也不是一个很好的武器,很难有效地使用它。它也不是个很好的镜子——它有弧度,会扭曲你的样子。它也不是一个好的面包屑制造机:每一片它烘烤的面包只能做出一点点面包屑,这效率实在太低了。

一个烤面包机的专业化

所以,生物体是由拥有各种功能的部分组成的机器,例如躲避被发现和捕食的功能。这就将我们带到了工程学。工程学是很重要的,因为一个生物体的各种不同特征拥有各种不同功能,又因为自然选择是一个具有内在竞争性的过程,所以即使是生物体的组成部分在功能执行效率上的某些微小优势都会有重要影响。

工程学的一个基本原则(该原则的基础性使其扩展到了像经济学和计算机科学这些领域)就是:专业化产生更高的效率。作为一个普遍原理,具有限定功能的机器在执行任务时要比具有更多功能的机器效率更高。一个非常专业化的机器必然无法用于完成无限的大范围的任务,因为不同的任务需要不同的形态来最高效地完成。总是存在工程上的权衡,每一种形态用一种功能换取另一种。

要注意,烤面包机的各个部分都有助于其整体功能的实现,这些部分使它擅于烘烤面包。此外,烤面包机的特性也提供了有关其功能的证据。向某个人说明一个烤面包机的功能并不难。即使没有人告诉你这个烤面包机是用来做什么的,你也很可能猜得到它是被设计用来烤面包的。它的结构非常适合于烤面包,以至于不适合用来做其他任何事情。

为什么我要告诉你关于烤面包机的这些事情?因为大脑和烤面包机一样,也是功能性机器。所以无论你是讨论人类工具还是讨论生物机器,就一个问题的解决方法有其规律性来说,该问题最有效的解决方法必然会体现出这些规律性,使机器能针对特定的任务并且高效率地完成该任务从而解决问题。在生物体的生活环境中,而且这环境具有规律性时,自然选择将会偏爱拥有特定优势的设计,因为设计的效率在进化背景下非常关键。

回到我们的叶虫上来,它的叶状轮廓和伪装色特别针对和适用于它生活的生态环境。如果被略微吃过并且腐烂的叶子不是它生活环境的一部分,那么它针对这种环境的伪装色就不会成为一种有效的解决方案。如果叶虫身体的形状和颜色可以随着它所身处的环境的背景来变化,是不是会更好呢?也许是的。但是在进化中,经常会有权衡取舍。一个动态变色方案会伴随着代价,一个生物体特征带来的代价和其带来的好处一样,决定着进化上的成功。即使一个能随时变形变色的叶虫真的存在,并且在其所处的环境中的进化比赛中遥遥领先,它特定的颜色和形状几乎从未被识破。

自然选择恐怕不能产生一个“最佳”设计还有很多其他的原因。因为自然选择过程的运行中基因变异是随机的,如果一个变异的基因碰巧没有出现,它就不可能被选择。有些工程上的限制使得一些新的结构出现问题。同样的道理,城市里的新建筑新街道会被已经存在的建筑和街道的布局所限制。所以,预期大脑中的回路被很好地设计用来解决祖先面临的适应问题是非常合理的,当然预期一些数量的不完美、次优性等是很合理的,我们待会儿会再谈这个问题。

和物体形状一样,这也适用于计算的“形状”。当一个计算机器变得非常适于处理信息、解决问题时,它也就会变得不太适合处理其他的问题,这就是为什么一个国际象棋博弈程序和文字处理软件程序如此不同[这也是为什么你下棋能够击败微软的Word软件,但是却不会想去用深蓝(DeepBlue)写一本书]。

由于某种原因,我总是喜欢拿烤面包机举例子。烤面包机有很多设计好的特性使得其非常适合用来烘烤面包片。一个烤面包机有两个开口向上的插槽,开口大到足以放下任何一片面包,但是又小到可以高效地将热量传递到面包片的表面。它有一个灵巧的小塑料柄可以让我把面包放进烤面包机内,但是塑料柄本身却还是凉的,不会烫手。它有一个小定时装置,可以使它在一定的时间之后自动地弹出面包(也许是果酱馅饼或其他食物)。它还有一根电源线和加热元件来保证其能够执行自己的功能。

反对的意见如下:“相对的一面就是一种多用途编程语言,例如C语言或者Java语言……”基本上,特定领域语言非常擅长完成严格定义的任务,而且能够高效和有效地完成。多用途语言在权衡的另一端,它可以用来做很多的事情,但是做任何一件事的效率都不会很高,因为这种语言并不是为特定目标而专门构建的。

维基百科条目规定“讨论中的问题”必须是“频繁反复出现”的问题。除非你将需要一遍又一遍地执行同样的运算,否则建造一个用来处理某一特定信息的机器就没有任何意义。在进化背景下这种观念也适用,但是在自然选择的情况下,这不仅仅是一个好主意,更是一条法则。因为自然选择的作用跨越了许多世代,一个基因为了能够被选中,必须授予自己频繁地成功自我繁殖的优势,使自己能够在群体中增长。如果一个基因在这一代中产生优势,然后在下一代产生了劣势,那么就不要期望它能在自然选择的过程中生存下来。

拿烤面包机来和丁烷点火枪对比一下。我猜你可以用丁烷点火枪来烤面包,虽然不算很有效:会浪费许多热量,面包也不会被烘烤均匀,或者干脆被烤坏了。我不会去尝试这样做。被设计用来烤面包的烤面包机,对于它需要解决的问题有很多有重要意义的“假设”事实:面包将会是特定的形状,烘烤加热需要一段时间,一种持续传递电热能的插槽等。点火枪的设计并没有体现这些假设。烤面包机有限定的功能,若用来完成其他大量的厨房炊事任务则会很糟糕,例如打开罐头瓶、煮咖啡或者分发纸巾。

注意,烤面包机当然也可以有其他的用途。我猜你可以用它做镇纸;你可以用它做武器,就像《回到过去》(Scrooged)里的比尔·默瑞(BillMurray)一样;如果你的烤面包机表面有光泽,你还可以在去约会前把它当作镜子来梳理下自己的发型;你可以用它来做面包屑,在我的烤面包机里就可以收集到一托盘的面包屑。

其逻辑就在于这个事实,专业化机器拥有能很好地执行特定功能的组成部分。为了有良好的功能,物体需要非常特别的形态或者形状,这就是为什么粗齿锯和长柄勺看起来如此不同。当一个物体的形状遵循一个特定任务的需要时,那么这个形状同时就(必然)非常不适合于其他的任务。

  • 加入收藏
  • 目录
  • A+
  • A-