第十五章 人工进化 15.4 计算中的军备竞赛
直到二十世纪八十年代中期,丹尼·希利斯才开始建造第一台大规模并行运算计算机。其实早在几年前,希利斯就已是一个计算机科学专业的神童了。他的那些恶作剧和黑客事迹即使在麻省理工这个号称黑客鼻祖的学校中也颇具传奇性。希利斯以其惯有的清楚明了向作家史蒂文·列维总结了冯·诺依曼计算机的瓶颈所在:“你为计算机输入的知识越多,它运行得越慢。而对人来说,你给他的知识越多,他的头脑越敏捷。所以说我们处在一种悖论之中,你越想让计算机聪明,它就变得越愚笨。”
希利斯真正想做的是生物学家,而他理解复杂程序的特长却将他吸引到麻省理工学院的人工智能实验室。在那里,他最终决定尝试设计一台“会成为我的骄傲”的思考型计算机。他把设计一个无法无天、三头六臂的计算机怪兽的开创性想法归功于约翰·霍兰德的启发。最终希利斯领导的小组发明了第一台并行处理计算机——“连接机”。1988年,每台“连接机”可卖得一百万美元高价,赚得盆满钵满。有了机器,希利斯就开始认真地从事计算机生物学研究了。
“我们知道,只有两种方法能制造出结构极其复杂的东西,”希利斯说,“一个是依靠工程学,另一个是通过进化。而在两者中,进化能够制造出更加复杂的东西。”如果靠设计不能制造出令我们骄傲的计算机,那我们就不得不依靠进化。
希利斯的第一台大规模并行“连接机”能使64000个处理器同时运行。他迫不及待地要启动进化,于是给计算机注入了64000个非常简单的程序。和霍兰德的遗传算法或雷的“地球”一样,每一个个体都是可以发生变异的一串符号。不过,在希利斯的“连接机”中,每个程序都有专门的处理器来对其进行处理。因此,种群能极其迅速地作出反应,而其数量之多,是串行计算机根本不可能做到的。
在他的培养液里,最初的“小家伙”都是些随机的指令序列,但是经过几万代进化,它们就变成能将一长串数字进行排序的程序(排序体)。大多数较大型的软件都会包含这样的排序例程。多年来,在计算机科学领域有无数的人力花费在设计最有效的排序算法上。希利斯让数千个排序体在计算机中增殖,随机变异,偶尔进行有性基因互换。然后,正如通常的进化策略一样,他的系统会测试这些程序,终止那些效率低下的,只有最短的(最好的)排序体才有复制的机会。经过上万代的循环后,他的系统培育出一种程序,它几乎和由人类程序员编制的最佳排序程序一样短。
接着,希利斯重新开始试验,不过这次有一个很重要的不同:允许在对进化的排序体进行测试时,测试程序(测试体)本身也可以发生变异。用来测试的字符串可以变得更复杂,以抵制那些简单的排序体。排序体必须瞄准一个移动的目标,而测试体则需要躲避一支会转向的利箭。事实上,希利斯将测试用的数字列表从一个僵化被动的环境转变成了一个积极主动的有机体。就像狐狸和野兔、黑脉金斑蝶和马利筋一样,排序体和测试体也构成了经典的共同进化关系。
希利斯骨子里还是个生物学家,他把不断变异的测试体看成是一个试图干扰排序程序的寄生生物,把他的世界看成是一场军备竞赛——寄生虫进攻,宿主防卫,寄生虫反攻,宿主防守反击,如此循环。传统观念认为,这种胶着的军备竞赛是在愚蠢地浪费时间,或难逃陷入泥潭的厄运。然而希利斯发现,寄生虫的引入并没有妨碍排序体的发展,恰恰相反,它加快了进化的速率。寄生虫式的军备竞赛也许很丑陋,但它们大大加快了进化的速度。
和汤姆·雷一样,丹尼·希利斯也发现进化能超越通常的人类能力。在“连接机”中发展起来的寄生虫,刺激了排序体去设计更有效的解决办法。在共同进化了1万个周期之后,希利斯的小怪物们进化出一种计算机科学家们前所未见的排序体。最具讽刺性的是,它刚好比人类设计的最短算法少一步。看似愚钝的进化设计出了一个独具匠心又非常有效的软件程序。
“连接机”中的单个处理器很愚蠢,智力跟一只蚂蚁差不多。不管花上多少年时间,单个处理器都无法独自想出任何问题的独创性解决办法。即使把64000个处理器串到一起也好不了多少。
而当64000个又蠢又笨的蚂蚁大脑形成相互联结的庞大网络时,它们就构成了一个进化的种群,看起来就像大脑里的一大堆神经元。那些使人类精疲力尽的难题,却往往在这里得到绝妙的解法。这种“海量连接中涌现出秩序”的人工智能方法便被冠以“连接主义”的名号。
早期认为进化与学习紧密相关的直觉又被连接主义重新唤醒了。探索人工学习的连接主义者通过将愚钝的神经元联结成巨大的网络而大展拳脚。他们研发了一种基于联结的并行处理方法——在虚拟或硬件实现的并行计算机上运行——与遗传算法相似,它能同时进行大量的运算,不过它的评估机制更加精密(更聪明)。这些大大“开窍”了的网络被称为神经网络。迄今为止,神经网络在产生“智能”方面所取得的成就还很有限,尽管它们的模式识别能力非常有用。
然而,一切事物均来自低等连接这一理念着实令人惊诧。网络内部究竟发生了什么神奇变化,竟使它具有了近乎神的力量,从相互连接的愚钝节点中孕育出组织,或是从相互连接的愚笨处理器中繁育出程序?当你把所有的一切联结到一起时,发生了什么点石成金的变化呢?在上一分钟,你有的还只是由简单个体组成的乌合之众;在下一分钟,联结之后,你却获得了涌现出来的、有用的秩序。
曾有那么一瞬间,连接主义者猜想:也许创造理智与意识所需要的一切,不过就是一个够大的互相连接的神经元网络,理性智能可以在其中完成自我组装。甫一尝试,他们的这个梦就破灭了。
但是人工进化者们仍然在追寻着连接主义的梦想。只是,和着进化的缓慢节奏,他们会更有耐心。而这缓慢的、非常缓慢的进化节奏着实令我不安。我这样向汤姆·雷表达我的忧虑:“现成的进化芯片和并行进化处理机让我有些焦虑,因为进化需要的时间多得令人难以置信。这个时间从何而来?看看大自然的运行速度,想一下,在我们谈话期间,有多少微小分子被吸附到一起。大自然的并行速度之快、规模之广之大令人难以置信,而我们却打算尝试超越它。在我看来,根本就没有足够的时间能做成这件事。”
雷回答道:“哦,我也有同样的焦虑。但另一方面,让我惊讶的是,在我的系统里即使仅靠一个虚拟处理器,进化也能进行得如此之快。再者,时间是相对的。进化的时间尺度是由进化中一代的时间跨度来决定的。对人类来说,一代是三十年,但对我的小东西们来说,一代就是几分之一秒。而且,当我扮演上帝时,我能加快整体的突变率。我不敢肯定,但是也许我可以在计算机上得到更多的进化。”
在计算机上进行进化还有其它的原因。比如,雷能记录每个“小东西”的基因组序列,保存完整的人口统计和种群谱系。它生成大量数据,而在现实世界中根本无法收集这些数据。尽管随着人造世界复杂性的激增,提取信息的复杂性和成本也会激增,但做起来仍可能比无法掌控的有机世界更容易些。正如雷告诉我的那样,“即使我的世界变得像真实世界一样复杂,但我是上帝,我无所不知。我能获取任何我感兴趣的信息而不打扰它,也不用走来走去踩坏植物。这是一个根本的不同。”