建设砖块
建设砖块
荷兰德说,现在回想起来,希伯的理论和他自己基于这个理论之上的神经网络模拟对他产生的最大影响,是形成了他后来三十年的思想,而不是在某一单个方面使他受益。但当时,最直接的结果就是导致他离开了IBM公司。
问题在于,计算机模拟有一些确凿无疑的局限性,特别是701计算机。真正神经系统的细胞集合有一万个神经元分布在大脑的大部分区域,而每个神经元又有一万个突触。但荷兰德和他的伙伴们在701计算机上运行的最大规模的模拟神经网络也只能有一千个神经元,每个神经元只有十六个结合点,还是他们竭尽他们能够加速运转的所有编程技巧才达到这个速度的。荷兰德说:“越往下做我越觉得我们真正能够进行试验的与我所想看到的结果之间的距离实在太大了。”
唯一的选择就是用数学方法来分析神经网络。“但这样做实在太困难了。”他的每项尝试都撞上了南墙。靠他在麻省理工学院学到的数学功底来全面展开希伯式的网络实在太不够了。而他还比大多数物理系毕业生多学了不少数学课程呢。“当时对我来说,仿佛要想更多地了解神经网络,关键在于更好地掌握数学工具。”他说。所以在1952年秋季,他带着IBM公司的祝福和继续为IBM公司的宏伟蓝图做一百个小时顾问工作的允诺,来到安·阿泊,开始在密西根大学攻读数学博士学位。
他又一次成为幸运者。当然,不管在任何情况下密西根大学都不是个糟糕的选择。不仅是因为当时那里的数学系是全美国最好的数学系之一,而且还因为荷兰德还有一个主要的考虑:那儿有一个足球队。“在周末与十强进行足球比赛,有十万观众涌入城内来观战,对此我至今还觉得回味无穷。”
但对荷兰德来说,真正的好运是他在密西根大学碰到了阿瑟·勃克斯(Arthur Burks)这位非同寻常的哲学家。勃克斯是查尔斯·皮尔斯(Charles Peirce)实用主义哲学的专家,于1941年获得博士学位。由于当时在他的学科领域根本无法觅到一个教职,所以他在毕业后的第二年在宾州大学的摩尔学院又读了10周的课程,变成了一个战时工程师。后来证明了这是一个很好的选择。1943年,他毕业不久就受雇于摩尔学院,从事属于最高机密的第一台电子计算机ENIAC的研究。在那里他遇到了传说中的人物、匈牙利数学家约翰·冯·诺意曼。当时冯诺曼作为顾问,经常从普林斯顿的高级研究所来这儿为这个项目工作。勃克斯在冯诺曼的指导下还参与了ENIAC的下一代计算机EDVAC的研制工作。这是第一台能运用程序这种电子化形式储存信息的计算机。确实,冯·诺意曼、勃克斯和数学家荷曼·哥斯廷(Herman Goldstine)1946年发表的论文,《电子计算仪器逻辑设计初探》,一直到今天仍然被认为是现代计算机科学的基石。在这篇论文中,这三位撰写人用精确的逻辑形式规定了编程的概念,同时还描述了一个普通功能的计算机如何通过从计算机记忆系统提取指示,然后再把结果存储到记忆系统这样一种不断循环的方式来执行程序。这个“冯·诺意曼式建筑设计”仍然是今天几乎所有计算机的基础。
当荷兰德五十年代中期在密西根大学遇见勃克斯的时候,勃克斯是一个身材匀称、举止优雅的人,酷似荷兰德想象中的传教士的形象(迄今为止,勃克斯从来没有不打领带、不着外衣地出现在以不在乎穿着著称的密西根大学的校园里)。但勃克斯同时也是一个热情友善的良师益友,他很快就把荷兰德带入了他的计算机逻辑设计小组,这是一个理论学家的圈子,这个圈子的人致力于计算机语言研究和开关网络定理论证,总之是力图从最严格、最根本的层面上掌握计算机这个新机器。
勃克斯还邀请荷兰德加入了一个新的博士学位项目。这是一个致力于在尽可能广泛的领域里探索计算机和信息处理意义的项目,勃克斯本人正在帮助组织这个项目。这个很快就以通讯科学变得众所周知的项目到了1967年终于发展成了一个完整的计算机系,叫做计算机与通讯科学。但在当时,勃克斯感到他只是在为1954年死于癌症的冯·诺意曼填补空白。“冯·诺意曼希望把计算机应用在两个方面。”他说。一方面是一般性功能的计算机设计,这种功能的计算机他们已经发明了。 “另一方面是基于自动机理论。自然和人工智能知识的计算机。”勃克斯同时还感到,研制这样一种程序会符合这些学生的需要,而荷兰德是其中杰出的一位,他的头脑拒绝随波逐流。
荷兰德喜欢上了他所听到的消息。“这就是说要开设生物学、语言学、心理学这类非常艰难的课程和信息理论这样的常规性课程。这些课程是由来自那一个学科领域的教授来上,这样学生们就能将所学知识和他们的计算机模型联系起来。通过学习这些课程,学生们就会非常深刻地理解这个领域的根本——其难点和问题,为什么这些问题如此难以解决,计算机在解决这些问题上能起到什么作用,等等。他们就不会对事物仅仅只是流于表面的了解。”
荷兰德喜欢这个主意更因为他已经对数学完全失去了兴趣。密西根大学数学系就像二次世界大战之后的所有数学组织一样,被法国波巴科学派(Bourbaki school)所控制,这个学派鼓吹数学非人的纯洁性和抽象性。按照波巴科的标准,就连阐述你的原理后面的概念、用实在的图式解释你的定理,也会被认为是粗俗不堪。荷兰德说:“这一派的理念就是要让人们知道数学是可以不用任何解释的。”但这完全不是荷兰德来这儿攻读博士学位的目的。他希望用数学来理解这个世界。
所以当勃克斯建议荷兰德转入通讯科学研究项目时,他毫不犹豫地同意了。他放弃了他几近完成的数学博士论文,再次从头开始。“这意味着,我可以在一个与我希望从事的研究非常接近的领域做我的博士论文。”他说。这个领域,大致上说,就是神经网络(具有讽刺意味的是,他最终决定做的博士论文题目,“逻辑网中的循环”,是对网络开关内部情形的分析。在这篇论文中,他证明的许多定理,与四年以后柏克莱大学一位名叫斯图亚特·考夫曼的年轻的医学院学生独自努力证明的定理如出一辙)。荷兰德于1959年获得博士学位,这是通讯科学项目授予的第一个博士学位。
所有这些都没有改变荷兰德对更为广泛的问题的关注,正是这种关注把荷兰德带到了密西根大学。恰好相反,勃克斯的通讯科学项目正好提供了一个能使这种问题滋生的环境。什么是涌现?什么是思考?思想是如何进行的?什么是思想的法则?一个系统的适应究竟意味着什么?荷兰德记下了对这些问题的一些思考,然后把它们系统地归类为Glasperlenspiel 1号、Glasperlenspiel 2号、等等。
Glas 什么?“Das Glasperlenspiel”是赫尔曼·黑塞(Herman Hesse)的最后一本小说,出版于1943年,当时作者正流亡瑞士。一天荷兰德在同屋从图书馆借来的一堆书中发现了这本书。在德语中,书名的书面意义是 “玻璃珠游戏”,但在英文译文中,这本书通常被称为“游戏高手”,在意大利译文中也是相同的意思。故事以很久以后的未来为背景,小说描述了一个起初是音乐家玩的游戏。这个游戏是先在玻璃珠算盘上设定一个主旋律,然后通过来回拨弄玻璃珠,把这个主旋律的所有多声部和变奏编在一起。随着时间的延续,这个游戏从最初简单的旋律演变成一种极其复杂的乐器,被一群权力强大的牧师知识分子所控制。“最妙的是你能够获得主旋律的组合。”荷兰德说。“有一点儿星相学、有一点儿中国历史、还有一点儿数学。然后力图把它们发展成一种音乐主旋律。”
他说,当然,黑塞并没有十分清晰地说明这些究竟是怎么弄出来的。但荷兰德并不介意这一点。玻璃珠游戏比他所看见和听到过的任何事物都能抓住他的心,就像国际象棋、科学、计算机和大脑一样令他着迷。形象地说,这个游戏正是他一生的追求:“我就是希望能够抓住世界万物的主旋律,然后把它们揉合在一起,看它们会发生什么情况。”他说。
存储在Glasperlenspiel档案库中的思想的一个特别丰富的源泉是另一本书。有一天荷兰德在数学系图书馆创览群书时,发现了费舍尔(R.A.Fisher)1929年出版的里程碑式的巨著《自然选择之基因理论》。
起初荷兰德根为之着迷。“从中学时代起我就一直很喜欢阅读基因和进化方面的书,”他说。每一代人都会重组父母遗传的基因,他对这个思想非常赞赏。你可以计算像蓝眼睛、黑头发这样的特性出现在下一代身上有多么经常。“我总是想,哇,这个计算真是干净利落。但读了费舍尔的书后我第一次认识到,在这个领域里,除了用平常的代数学以外还可以尝试别的东西。”确实,费舍尔就用了许多更加复杂的概念,从微分、积分到概率理论。他的书用真正严谨细致的数学方法对自然选择如何改变了基因分布做了分析。对生物学家来说,这样的书是第一本。这同时也给当代“新达尔文”的进化理论奠定了基石。二十五年之后,这一理论仍然代表了进化动力学理论的最高标准。
所以荷兰德一口气读完了这本书。“我可以把我在数学课上学的积分、微分方程和其他方法都用于动力基因学的这场革命了。这真是一本令人大开眼界的书。我一读到这本书就知道,我不会放过这书里的思想。我知道我必须用这本书里的思想做点什么,我脑子里一直转着这些想法,不断地做着笔记。”
但尽管荷兰德非常崇拜费舍尔的数学,但费舍尔运用数学的某种方法却使他感到困惑。而且他越是深思,越是感到困惑。
首先,费舍尔对自然选择的整个分析着重于一次一个基因的进化,仿佛每一个单个基因对生物体生存的作用是可以完全脱离其他基因而独立存在的。大致地说,费舍尔假设基因的行动完全是线性的。“我知道这肯定是错的。”荷兰德说。对绿眼睛来说,没有几十个、或几百个基因形成绿眼睛的特别结构,单个的绿眼睛基因是微不足道的。荷兰德认识到,每一个基因必须作为一部分才能发挥作用。任何理论如果不把这个事实包括进去,就缺少了进化这个故事中最关键的一部分。对这个问题的思考,正是希伯在精神领域研究中一直强调的。从思想的最基本的单位这一点来说,希伯的细胞集合有点儿像基因。一种声调、一束光线、一簇肌肉的抽动,所有这些能具有意义的唯一方式是把彼此组合成更大的概念和更复杂的行为。
另外,费舍尔一直在谈论进化能达到稳定的均衡,这也使荷兰德感到不解。在这种稳定的均衡状态中,物种的大小达到了理想化、牙齿的锐利程度达到了理想化、生存和繁衍能力也达到了理想化。费舍尔的观点和经济学家的经济均衡的定义基本上是一致的:他说,当一个物种的状况达到了最佳程度之后,任何变化都会降低这种最佳化程度。所以自然选择就无法对变化形成进一步的压力。“费舍尔理论中的大部分内容在强调这样一种观点:‘好吧,由于下述进程,这个系统会走入哈迪-温伯格(Hardy-Weinberg)的均衡状态……’但这在我听起来不像是进化论。”
他又重读了达尔文和赫伯。不,费舍尔关于均衡的概念与进化论毫不相干。费舍尔似乎在谈论某种原始而永恒的完美境界的实现。“但在达尔文那里,事物随着时间的推移越变越宽广,越变越多样化。但费舍尔的数学并不触及这一点。而赫伯说的是学习,不是进化,其道理却是同样的:人的头脑随着不断从外界吸取经验,越变越丰富、越变越灵巧、越变越令人惊异。”
对荷兰德来说,进化和学习似乎与游戏非常相似。他认为,在这两种情况中,都有一个作用者在与自己的环境对抗,为自己的继续发展争取足够的条件。在进化中,所获报酬就是生存,一个让作用者将基因遗传给下一代的机会。在学习中,所获是某种奖赏,比如食物、愉悦的感觉或情感的满足。在这两种情况下,所获(或所缺)都是给予作用者的一种反馈,以利于它们改进自我表现:如果作用者想获得使自己“适应”的能力,就不得不采取能够获得丰厚报酬的策略,放弃其它策略。
荷兰德不禁想起塞缪尔的跳棋下法程序,这个程序正是利用了这种反馈:它可以随着不断吸取经验和更多地了解对方而经常改变战术。但现在荷兰德开始认识到塞缪尔将注意力放在游戏上是多么具有先见之明了。游戏的这一相似性似乎可以解释任何适应性系统。在经济中,所获是金钱,在政治中,所获是选票,等等。在某种程度上,所有这些适应性系统在根本上都是一样的,这反过来又意味着,所有这些系统从根本上就像下跳棋或象棋一样:可能性的空间大得难以想象。一个作用者不断改进下棋技术,这便是适应。但要想寻找到这场游戏的最佳化和稳定的均衡点,就好比下国际象棋一样,你根本就无法穷尽其无限的可能性。
毫不奇怪,对荷兰德来说,“均衡”并不是进化,甚至不像是他们三个十四岁的男孩一起在地下室玩的那种战争游戏。均衡意味着结束。但对荷兰德来说,进化的实质是旅程,是无穷无尽地展现出来的惊异。“我越来越清楚地认识到,我所想了解、所好奇、所为之发现而欢欣鼓舞的是什么。均衡并非其中的一部分。”
荷兰德在撰写博士论文的时候,暂时把这些想法搁置一旁。但1959年他刚刚毕业——那时勃克斯已经邀请他继续留在计算机逻辑小组做博士后——就决定将自己的这些想法变为完整而严谨的适应性理论。他说:“我相信如果我将基因的适应性当作最长久的适应性来观察,把神经系统当作最短期的适应性来观察,那么,这两者之间的总体性理论框架将是相同的。”为了将他脑子里的这些初步想法陈述清楚,他甚至就这个研究课题写了一个宣言,这份他于1961年7月发表的长达四十八页的技术报告的题目是:《适应性系统逻辑理论之非正式描述》。
他在计算机逻辑小组发现了许多紧皱的眉头。但这并不是一种敌意,而是有些人认为他的这个一般性的适应性理论听起来太稀奇古怪了。难道荷兰德不能把时间花在更富有成果的研究上?
“但问题在于,这是一个古怪的想法吗?”荷兰德回忆此事时愉快地承认,如果他在他同事的位置上,他也会对此持怀疑态度。“我所从事的研究不属于既完善又为人熟知的学科范畴。它既不能算硬件,也不能算软件。而那时它当然也不属于人工智能。所以你无法用任何常规标准来对它做出判断。”
勃克斯却并不需要他来说服。“我支持荷兰德,”勃克斯说。“有一些逻辑学家们认为荷兰德的研究并不属于‘计算机逻辑’范畴之内。他们的思想更为传统,但我告诉他们,这正是我们需要做的,为这个项目争取经费的重要性和其他项目等同。”结果勃克斯赢了:作为这个项目的创始人和带头人,他的话有相当大的分量。渐渐地,对荷兰德研究的怀疑消失了。1964年,在勃克斯的大力推荐下,荷兰德获得了终身教职。他说:“那些年,在很大程度上我全靠勃克斯为我做挡箭牌。”
确实,勃克斯的支持所给予荷兰德的安全感使他能够力争获取适应性理论的研究成果。到1962年,他放下了他的所有其它研究项目,基本上全力投入了对适应性理论的研究。特别是他下决心解决基于多基因的选择的难题——这不仅仅是因为费舍尔在书中对单体基因的假设最使他感到困惑,同时也是因为对多基因的研究也是摆脱均衡的困惑的关键。
荷兰德说,公平地评价费舍尔,均衡的概念就每个单独的基因而言不无意义。比如,假设某个物种有一千个基因,大致上与海藻一样复杂。为了使事情简单明了,再假定每个基因只含有两种信息,绿色的或棕色的,叶片皱折的或叶片平滑的,等等。自然选择要经过多少次尝试才能发现使海藻发展到最强壮的那组基因搭配呢?
荷兰德说,如果假设所有基因都是相互独立的,那么,你只需要两次选择就能确定哪种基因信息更好。这就需要对一千个基因各做两次尝试,总共两千次,这不算太多。事实上,相对而言这个数目实在是太小了,如果是这样的话,海藻很快就会达到最强健的状况,而物种确实就能达到进化的均衡点。
但当我们假设基因并不是相互独立的,让我们来看看含有一千个基因的海藻会发生什么样的情形。如果是为达到最强壮状态,自然选择就会检验每一个可能的基因组合。因为每个基因组合都有其不同的强健性。当你计算基因组合的总数,就不是二乘以一千,而是二自乘一千次了,即二的一千次方,或大约为十的三百次方——这个数目大得甚至使跳棋的步数都显得微不足道。荷兰德说:“进化甚至根本就不可能做这么多次数的尝试。而且无论我们把计算机发展到多先进也做不到。”确实,就算在可观察到的宇宙中所有的基本粒子都变成超级计算机,从大爆炸就开始不停地运算,也远不能完成运算。另外必须记住,这还只是就海藻而言。人类和其它哺乳类动物含有的基因数大概是海藻含有基因数的一百倍,而且大多数基因都含有不止两条信息。
所以再次出现了这种情形:这是一个向着无穷无尽的可能性的空间探索的系统,不存在哪怕为一个基因找到“最佳”点的现实希望。进化所能达到的是不断改进,而绝非尽善尽美。但这当然正是他1962年就已经决意要找到回答的问题。但如何寻找答案呢?了解多种基因进化的问题显然不只是用多变量方程式来替代费舍尔的单一变量方程式这么简单的事。荷兰德想知道的是,进化是怎样于无穷无尽的可能性的探索中找到有用的基因组合,而不需要搜遍整个领域。
当时,相似的“可能性爆炸”概念已经为主流人工智能研究人员所熟知。比如,在匹兹堡卡内基理工学院(即现在的卡内基麦伦大学),爱伦·妞威尔(Allem Newell)和赫伯特·西蒙(Herbert Simon)自五十年代中期开始就在进行一项里程碑式的研究,即,研究人类如何解决问题。纽威尔和西蒙让被试验对象猜各种谜语和玩各种游戏,包括下国际象棋,并让被实验对象陈述在这个过程中自己的思想。他们通过这种方法发现,人类解决问题总是会涉及脑力对广阔的可能性“问题空间”的逐步搜索,而每一步都以实际经验为导向:“如果情况是这样的话,那么就该采取那个步骤。”纽威尔和西蒙通过将他们的理论编入“一般问题解决法”(General Problem Solver)程序和将这个程序应用于解那些谜语和游戏,表明“问题-空间”角度能够出色地反映人类的推理风格。确实,他们的经验性检索概念早已成为人工智能领域的金科玉律。一般问题解决法至今仍然是新兴的人工智能发展史上最有影响的程序之一。
但荷兰德仍然对此半信半疑。这并不是因为他认为纽威尔和西蒙对问题空间和经验导向的概念有什么错误。事实上,他取得博士学位不久就特意邀请他们两位来密西根大学讲授人工智能的主课。从此他和纽威尔成了朋友和知识上的伙伴。但纽威尔-西蒙的理论不能在生物进化研究上有助于他。进化论的整个慨念中没有任何经验可循,也没有任何导向。一代代的物种是通过突变和两性基因的随机重组,简言之,是通过尝试和错误,探索于可能性的空间。而且,这一代代物种并不采取逐步逐步的方式搜索于基因组合的可能性之中,而是采取齐头并进的搜索方式:物群中的每一个成员的基因组合都略有不同,所搜索的空间也略有不同。但尽管有这些不同之处,尽管进化的时间更为长久,但它所产生的创意和奇迹恰如脑力活动。对荷兰德本说,这意味着,适应性的真正的统一规律隐藏在更深的层次之中。但到底隐藏在哪儿呢?
起初,只有直觉告诉他,某些基因组之间能够很好地相互作用,形成统一而自我强化的整体。比如像能够告诉细胞如何从葡萄糖分子里吸取能量的基因群,或能够控制细胞分裂的基因群,或能够指导细胞如何与其它细胞组合成某种生理组织的基因群。荷兰德也能从希伯的大脑理论中看到某种相似之处。在这个理论中,一组相互共鸣的细胞集合能够形成一个统一的概念,比如“汽车”,或者一个像举起胳臂这样协调的动作。
但是,荷兰德越是思考统一而自我加强的基因群这个概念,整桩事就越显得微妙。首先,到处都有类似的例子,比如计算机程序中的子程序、官僚体系中的部门。以及国际象棋棋局中的布棋法。而且,这样的例子存在于组织的每一层。如果一个基因群有足够的统一性和稳定性,那么这个基因群通常就可以作为更大的基因群的建设砖块。细胞的结合形成生理组织、生理组织的结合形成器官、器官的组合形成生物体、生物体的组合形成生态系统,等等。荷兰德想,确实,这就是“涌现”的全部意义:一个层次上的建设砖块组合成更高层次上的建设砖块。这似乎是这个世界最根本的规律之一。这一规律当然也表现在所有复杂的适应性系统之中。
但为什么会是这样的呢?事物的这个等级分明的。建设砖块结构的特性就像空气一样司空见惯。它因无所不在而被我们视而不见。但当你认真思考这个问题时,就会发现它急需解释:为什么这个世界会形成这种结构呢?
其实对此已有许多解释。计算机程序员们会把问题分解成许多于程序,因为较小、较简单的问题比较大、较繁杂的问题易于解开。这就是分而治之的古老法则。鲸鱼和红杉这样的庞然大物是由无数个微小的细胞组成的,因为总是先要有细胞,才可能形成庞然大物。当五亿七千万年前巨大的动植物开始出现在地球上时,对自然选择法来说,较之于从一片混乱无序中重新开始形成大团新的原生质,显然不如将现存的单一细胞形成生物体要容易得多。通用汽车公司将自己分为无数个部门和子部门,是因为通用汽车公司的主管不希望公司的五十万名雇员都直接来向他报告。他一天根本没这么多的时间。事实上,在四十年代和五十年代,西蒙在他的商业组织的研究中就已经指出过,设计优良的等级制度是在避免让任何一个人疲于应付会议和备忘录的前提下实施实际工作的最佳方式。
但当荷兰德思考这个问题时,他越来越觉得,更为重要的理由还基于更深的层次,因为这个等级分明的建设砖块结构能够彻底改变系统的学习、进化和适应能力。想一下我们的认知建设砖块,这包含了像红色、汽车和道路这类的概念。一旦这组类别的建设砖块随着经验的积累而被扭转、精炼和调整,那么,这组概念就会被整个改编和重组成许多新的慨念,比如像“路边的一辆红色Saab轿车”。当然,较之完全从头开始,这是一个有效得多的创新的途径,而这反过来又在总体上意味着适应性的一个全新的机制。适应性系统能够重组它的建设砖块,从而产生巨大的飞跃,而不需要总是要逐步逐步地在可能性的无限空间中缓慢进展。
在这个方面,荷兰德最喜欢举的例子是计算机出现之前警方根据目击者的描述来绘出嫌疑犯的画像的办法,即,把嫌疑犯的面孔分为十个基本区域:发际线、前额、眼睛、鼻子,一直到下颚。然后绘像师在许多纸片上对各个部位做不同形状的绘画,比如说,十种鼻子、十种发际线、等等。这加起来就是一百张纸的给像。有了这些之后,绘像师就可以通过目击者的描述,把合适的部分凑在一起,很快得出嫌疑犯的肖像图。当然,绘像师无法用这种办法画出所有可能想象出来的面孔。但他或她总是能够得到近似的肖像:绘像师通过重组这一百张纸片可以得出一百亿张不同的面孔,足够从广大的可能性空间中找到相似的相貌。“所以如果我能够发现形成建设砖块的过程,这些组合就能为我所用,而不会成为我的障碍。我就能够用相对少的建设砖块描述出许许多多的复杂事物。”
他认识到,这就是解开多基因之谜的关键之所在。“进化过程中的放弃和尝试并不只是为形成一个优良的动物,而是在于发现优良的建设砖块,并将这些建设砖块结合在一起,从而产生许多优良的动物。”他现在面临的挑战是要精确而严谨地表明这一切是如何发生的。他决定,第一步是要做一个计算机模拟,一个既能够陈述过程、又能够帮助他澄清脑子里的问题的“基因算法”。
密西根大学计算机科学圈子里的人都看惯了荷兰德拿着折扇状的计算机打印结果跑过来。
“看看这个!”他会急煎煎地指着一张整页都是密密麻麻的十六进位的数据符号的纸说。
“哦,CCB1095E。太棒了,约翰。”
“不!不!你知道这是什么意思吗!?”
事实上,在六十年代初,有相当多的人并不知道,也想不出那些数据表示什么意思。对荷兰德持怀疑态度的同事们对于荷兰德所从事的研究的怀疑,至少在一点是对的:荷兰德最终推出的基因算法是个稀奇古怪的东西。除非从最为书面的意义而论。否则这根本不能算是计算机程序。就它的内部机制而言,它更像是一个模拟生态系统,其中所有的程序都可以相互竞争、相互交配、一代接一代地繁衍,一直朝着程序员设置的任何问题的解答方向不断演化。
说得轻一点,这不是程序的通常编写法。所以荷兰德发现,要向同事们解释为什么这具有意义,最好用非常实际的语言来告诉他们他正在做什么。他通常会告诉他们,我们把计算机编程当作一个由FORTRAN或LISP这样的特殊编程语言写成的一系列指令。确实,编程的全部技艺就在于确保准确无误地按照正确的指示和顺序来编写程序。这显然是编程的最有效的方法——如果你早就知道你想让计算机干什么的话。但假设你并不知道你想让计算机干什么,比如假设你想找到某种复杂的数学功能的最大价值。功能可以表示利润、或工厂的产量。或任何其它东西。这个世界到处都有希望价值被最大化的东西。确实,计算机程序员已经为此设计出先进的计算机算法来了。但即使是其中最优秀的算法都无法保证在任何情况下都能提供正确的最大化价值。在某种层次上,这些算法总是不得不依赖传统的尝试/错误法,也就是猜测法。
荷兰德对他的同事们说,如果情况真是这样的话,如果你反正总是要依赖尝试/错误法的话,也许就值得试试利用大自然的尝试/错误法则,也就是自然选择法。与其编一个程序来执行你自己都不知道该如何定义的任务,还不如让它们通过进化自然产生。
基因算法便是这样的一个方法。荷兰德说,如果想看它怎样发生作用,那就忘记FORTRAN编码,深入到计算机的内核里去。计算机程序在计算机上是以一列1或 0的二进制来表示的:11010011110001100100010100111011……在这种形式下,计算机程序看上去像是一大片染色体。每一个二进制数字都是一个单独的“基因”。一旦你用生物学眼光来思考二进制编码,你就可以用类似的生物方法使之进化。
荷兰德说,首先,让计算机产生一群数量约为100个数字的染色体,其中包含大量的随机变量。假设每一个染色体都相对应一群斑马中的一匹(这是为使事情简化之故。因为荷兰德试图把握进化的最基本的本质,所以在基因算法中舍弃了诸如马蹄、胃和脑这样的细节,而把个体当作单个的纯DNA来模拟。而且,为了使之更便于操作,他把二进制的染色体限制在长度不超过几十个二进制数字之内,所以这些染色体实际上并不是完整的程序,而只是程序的片断。事实上,在他最初的实验中,这些染色体只代表单一的变量。但这并不能改编这个算法的基本原则)。
第二,把现有的问题当作每一单个的染色体,把问题当作计算机程序来运作,用这种方法来进行测试。然后,评价它的运行好坏,给它打个分。从生物学的角度来看,这个分数将评判出个体的“强健”程度,也就是它繁殖成功的概率。个体的强健程度越高,被基因算法选择出来,得以将自己的基因遗传给下一代的机会就越大。
第三,将你所选择的个体当作具有足够繁殖能力的染色体,使它们相互交配,从而繁衍新的一代。让剩余的染色体自行消亡。当然,在实际操作时,基因算法舍弃了两性的差异、求偶礼仪、性爱动作、精子和卵子的结合,以及两性繁衍的所有复杂细节,而只是通过赤裸裸的基因材料的交换繁衍下一代。如果用图解来表示的话,基因算法选择了有ABCDEFG的染色体和有abcdefg染色体的一对个体,随意在中间切断它们的染色体序列,然后将双方染色体相互交换,形成对它们的一对后代的染色体: ABCDefg和abCdEFG(真正的染色体经常会发生这种交换,或交叉,荷兰德从中得到启发)。
最后,通过这种基因交换繁衍出来的下一代之间又会继续相互竞争,同时在新一代的循环中,与它们的父母也发生竞争。这无论是对基因算法来说,还是对达尔文的自然选择法来说,都是最关键的一环。没有两性之间的基因交换,新的一代就会完全像他们的父母一样,物种的发展就会进入停滞状态。低劣的物种会自然消亡,但优良的物种也决不会发生任何改良。但有了两性之间的基因交换,新一代就会相似于它们的父母,但又有所不同,有时会比它们的父母强些。当发生这种情形的时候,被改良的物种就会获得普及的大好机会,从而显著地改良自己所属的整个物种群。自然选择法提供了一种向上进取的机制。
当然,在真正的生物体中,相当大一部分的变量是由于突变、遗传密码的排版错误所致。事实上,基因算法确实也允许通过故意将1改变为0,或把0改为1而产生一些偶然的突变。但对荷兰德来说,基因算法的核心是两性交换。不仅仅是因为两性的基因交换给物种提供了变量,而且这同时也是一个极好的机制,通过这个机制可以寻索到能够相互密切配合,产生高于一般水平的强健的基因群,也就是建设砖块。
比如,你将基因算法用于解其中一个最佳化的问题。这是个为某种复杂功能寻找最大价值的方式的问题。假设当基因算法的内在数群中的数字染色体达到二进制基因的某种模型时,比如像11####11#10###10,或##1001###11101##,获得了很高的分数(荷兰德用#来表示“没有关系”。数字处于这个位置可以是0,也可以是1)。他说,这种模型就具有建设砖块的功能。也许它们凑巧表示的是变量的范围,在这些范围中,其功能确实具有超常的高价值。但不管是什么原因,含有这种建设砖块的染色体都会繁荣发展,并普及于整个物种,从而取代那些不含有这类建设砖块的染色体。
另外,既然两性繁衍使数字染色体能够在每一代都重组它们的基因材料,那么物种就会经常产生新的建设砖块和现有建设砖块的新组合,这样基因算法就会很快产生具有双倍和三倍优势的建设砖块。而如果这些建设砖块的组合又产生出更大的优势,那么具有这些优秀建设砖块的个体特色就会比以往更快地普及于整个物种。结果就是,这个基因算法会很快指向现有问题的答案,即使事先并不知道从哪儿寻找答案。
荷兰德记得当他在六十年代初刚发现这一点时感到非常激动。但他的听众却从未为此而欢欣鼓舞。那时候,在尚属新兴的计算机科学领域里,大多数计算机科学家都感到,在常规性编程方面尚有大量的基础研究要做。从纯粹实际的角度来说,演化一个程序的概念显得不着边际。但荷兰德不在乎这些。这正是他自决心要发展费舍尔的独立基因假设以来一直苦苦探索所获得的成果。繁殖和交叉为基因的建设砖块提供了涌现和共同演化的机制,同时又是物种个体高效率地探索于可能性空间的机制。事实上,到六十年代中期,荷兰德已经证明了基因算法的基本定理,他称其为图解定理:在繁衍、交叉和突变之中,几乎所有具有超常强健性的紧密基因群都能够在物种中成指数比例地发展。(荷兰德所说的“图解”,是指任何特定的基因模型。)
他说:“当我最终将图示定理发展到令我满意的地步后,我才开始着手写书。”