生物进化与信息获取Biological Evolution and Information Acquisition
将生物进化机制与经济学中的技术演进模型相联系,探讨复杂系统如何通过信息积累实现跃升。文章引用了经济学家 Brian Arthur 的技术进化模拟实验,展示了从简单的构建块(如 NAND 门)起步的过程。通过随机组合越来越有用的现有组件,该模拟最终演化出了极其复杂的电路(如 12 路 AND 门或 4 位加法器)。这种基于组合优化的进化路径,为理解生物演化如何获取和处理信息提供了全新的视角。
Brian Potter
几周前,我们探讨了经济学家布莱恩·阿瑟(Brian Arthur)的一项技术演化模拟。在该模拟中,他从简单的构建块(如 NAND 门)起步,通过不断随机组合日益有用的现有组件,演化出了令人惊叹的复杂电路(如 12 路 AND 门或 4 位加法器)。我们将此作为一种简化搜索问题的方法进行分析:通过将现有的、有效的组件作为模块,每次少量地将它们组合成更复杂的模块,然后再将这些模块组合成更加复杂的模块,从而屏蔽掉搜索树中许多前景黯淡且耗时的分支,该模拟便能在极其庞大的分支可能性集合中找到有用的技术。
当然,真正的人类技术并不是通过随机拼凑组件并观察它们是否能派上用场而创造出来的;这些模拟中的随机性,仅仅是为了探究在不同条件下创造新技术的难易程度。然而,生物技术——地球上存在的那一整幅庞大的生命形态画卷,从微观的单细胞生物到体型堪比波音 737 的巨鲸——同样也是由随机性造就的。进化通过一点一滴地汲取基因变异(通常由随机突变引起)的成果来构建生物技术,并优先选择那些最适应环境的生物,让它们的基因繁衍延续。历经数十亿年,这一过程足以孕育出惊人复杂的生物系统。
有趣的是,生物进化采用了与 Arthur 的电路模拟极为相似的策略。通过利用基因层面的模块化,生物种群能够提升有益基因变异在种群内传播的速率,从而有效地提高其获取信息的速度。有性生殖,以及其他共享遗传物质的方式(如水平基因转移),本质上就是实现这一机制的途径。我们可以通过一些简单的模拟来展示这一点。
生物体最简单的繁殖方式是无性繁殖,即亲本产生一个与自身基因完全相同的子代。例如,简单的单细胞生物通过细胞分裂进行繁殖,分裂成两个或多个“子代”,而每一个子代都拥有与原始亲本完全相同的基因。
然而,子代并不一定是亲本的完美复制品。由于基因突变,某些基因可能会在分裂过程中发生随机改变,从而产生基因略有差异的子代。在某些情况下,这些突变可能是有益的,能赋予生物体额外的功能(例如抗生素耐药性),进而提高其生存和繁殖的几率。正是由于这些突变提升了生物体的适应度,随着时间的推移,有益的突变会在种群中变得越来越普遍。
我们可以通过一个简单的模拟来演示这一点。在我们的模拟中,初始种群包含 100 个生物,每个生物拥有一个由 200 个独立基因组成的基因组。基因可以是 1(“好”的基因版本)或 0(“坏”的基因版本)。初始种群是随机的,每个生物拥有的好基因和坏基因比例大约各占一半。在每次模拟迭代中,每个生物会产生两个后代。后代会复制父代的基因,但由于突变的存在,每个基因有 0.2% 的概率发生翻转,即从 1 变成 0,或者从 0 变成 1。我们会选出适应度最高的 100 个后代(在我们的简化模型中,由于 1 代表“好”的基因版本,因此适应度即为所有基因值的总和)来繁衍下一代,如此循环往复。与真实的进化机制相比,这是一个简化的模型——例如,它假设各个基因对适应度的贡献是独立的,而忽略了现实中某个基因的适应度价值往往取决于其他基因的事实——但这已经足以展示进化过程中的一些动态机制。
当我们运行这个模拟时,随着适应度较高的后代在竞争中胜过适应度较低的后代,种群中“好”基因的比例会随着时间的推移稳步上升。根据突变率的不同,种群最终可能会达到 200 的最高理论适应度,也可能在低于该数值的某个水平上达到平台期。
这种策略——即产生仅仅是单一亲本带有随机误差的副本,且完全依赖随机突变作为基因变异来源——的问题在于:一旦生物的适应度高于平均水平,突变在总体上往往是不利的。如果一个基因组中的 1 多于 0,那么随机改变将更有可能把 1 变成 0,而不是把 0 变成 1。因此,对于适应度高于平均水平的亲本而言,其后代的适应度在总体上往往会有所下降。
尽管如此,由于突变是随机的,后代之间依然会存在差异,部分后代的适应度最终会高于它们的亲本。而且,由于每次迭代都会淘汰适应度最低的个体,因此被选中的后代群体的平均适应度会高于它们的亲本,从而使得种群的平均适应度能够随着时间的推移而提升。但是,突变导致平均适应度下降的这一效应,会拖慢整个进化的进程。
你可以在下图中看到这一点。为了更容易观察趋势,该图展示了一个参数略有不同的模拟(基因组长度为 1000,突变率为 2%)。最上方的图表展示了第 50 代种群适应度的分布,第二张图表展示了在选择之前种群后代的适应度分布。你可以看到,由于突变的作用,平均适应度下降了,尽管由于随机性,有一部分后代碰巧获得了更高的适应度。最后一张图表展示了经过筛选、仅保留分布曲线前半部分(即适应度较高的一半)的后代情况。此时平均适应度有所上升,并且超过了初始种群的水平,尽管只是略高一点。
现在让我们来看看另一种繁殖策略的模拟:有性生殖,即子代从两个亲本而不是仅仅一个亲本那里获取基因。在这个模拟中,我们依然有一个包含 100 个生物的种群,它们的基因组由 200 个基因组成,每个基因可以是 0 或 1。但现在子代有两个亲本,在每次迭代中,种群的成员会被随机配对,每对产生四个子代。子代从双亲那里获取基因,每个基因有 50% 的概率来自某一个特定的亲本。然后选择适应度最高的前 100 个子代进入下一代,继续进行迭代。在这个模拟中,没有突变发生,因此遗传变异完全来自于亲本基因的重新组合。
与之前的模拟一样,种群逐渐达到了最大适应度。但有性生殖达到这一目标的速度要快得多。在无性生殖中,经过 200 代后,种群的平均适应度约为 187;而在有性生殖中,仅需 33 代,种群的平均适应度就达到了最大值 200。
关键在于,有性生殖在不降低平均适应度的情况下引入了遗传变异。由于子代是亲本基因的随机组合,它们的平均适应度将与亲本相同(部分子代随机表现出较高的适应度,另一部分则表现出较低的适应度)。当选择适应度最高的子代进入下一代时,实际上是在提取一个平均适应度远高于无性生殖模拟中子代分布的前半部分。因此,平均适应度提升得更快。
如果你亲自去推导数学公式(或者像我一样,直接看别人推导好的数学公式),在无性生殖种群中,适应度的增长率为 1/(8*f),其中 f 为差分归一化适应度。(种群的归一化适应度是指该种群中优良基因的平均比例;因此,在一个基因组长度为 200 的种群中,如果个体平均拥有 150 个优良基因,那么该种群的归一化适应度就是 0.75。差分归一化适应度是指种群的归一化适应度减去 0.5,即随机生成的种群的归一化适应度。)在初期,种群的适应度可以迅速提升,但增长率很快就会降至每代增加 1 个适应度单位以下(即平均每代有一个基因从 0 变为 1)。随着种群越来越接近可能的最大适应度,适应度的增长率会趋近于 0.25(即平均每四代才有一个基因从 0 变为 1)。
另一方面,在有性生殖中,适应度的增长率要高得多:它与基因组长度的平方根成正比。
要理解有性生殖为何如此强大,一种方法是考察遗传谱系。假设我们无性生殖种群中的某个成员偶然获得了一个新的、有益的突变。由于基因是单亲遗传给单个后代的,这种基因要在整个种群中传播(假设种群中没有其他成员也碰巧获得该突变),唯一的途径就是拥有该基因的个体后代在竞争中击败所有其他个体的后代。在这种情况下,该种群最终将完全由某一个特定成员的后代组成——作为这种传播的必要条件,所有其他的基因谱系(连同它们可能碰巧获得的有益突变)都会被淘汰。
我们可以从模拟结果中看到这一点。下图为初始种群的每个成员及其后代分配了独特的颜色。模拟开始时有100种不同的颜色(种群每个成员一种),但这很快就会锐减到更少的数量。几代之后,整个种群只剩下单一的颜色,全部是初始种群中某个特定成员的后代。(此图来自某次特定的模拟运行,但重复运行也会显示出相同的现象。)
如果我们在种群达到所有人都源自单一祖先的节点时重新进行颜色编码,我们会发现这种现象反复发生。在下图中,第48代的种群全部是生活在第25代的某个特定成员的后代。而在第80代,他们又全部是第48代某个特定存活成员的后代。
在进化生物学中,这种现象被称为“克隆干扰”:如果在同一代种群的不同成员中产生了两种不同的有益突变,它们无法被共享,因此最终会相互竞争,导致其中一种有益突变被淘汰。
另一方面,对于有性生殖的种群来说,有益突变的共享要容易得多。在无性生殖种群中,一个成员只有一个亲本,一个祖辈亲本,一个曾祖辈亲本,以此类推。但在有性生殖种群中,一个成员有两个亲本,四个祖辈,八个曾祖辈,以此类推。来自早期世代的有益变异能够更容易地传播开来。
我们可以在下图中看到这一点,该图显示了在任何给定时间,有性生殖种群初始成员的基因在基因库中所占的比例。我们可以看到这个比例一直保持很高:在经历34代之后,初始种群中近75%的成员的基因仍然存在于现有种群中。而在无性生殖种群中,这个比例只有1%(在更大的种群中甚至会更低,因为它刚好等于1除以初始种群总数)。
我们之前提到过,布莱恩·阿瑟(Brian Arthur)的电路模拟利用了模块化优势,即寻找有用的子组件,锁定它们的设计,然后用它们来构建更复杂的技术。一旦模拟找到了一个3输入与门,它就可以用它来制作一个4输入与门,进而制作一个5输入与门。我们同样提到过,如果你试图通过随机组合与非门来构建一个8位加法器,那么每次只添加一个与非门并验证其正确性,要比一次性猜对全部68个门容易得多。
你可以将此想象成某人在破解密码锁。一个五位数的密码锁,每个数字有 100 种可能的取值,总共会有 100^5 = 100 亿种可能的组合。挨个尝试这些组合会耗费无尽的时间。
技术上的模块化就像是一位技艺精湛的开锁匠,能够验证组合中尝试的每一个数字是否正确(也许通过仔细倾听,当拨盘转到正确位置时,你能听到一声提示性的“咔哒”声)。此时,你不再需要遍历 100 亿种可能的组合,而是进行 5 次搜索,每次遍历 100 个可能的值,总共只需考虑 500 种可能性。必须考虑的候选解空间被大幅缩减了。
据我理解,有性生殖也在做类似的事情:通过将双亲的基因组合来产生后代,它实际上能够对每个基因的适应度进行独立测试,从而将“寻找最佳 200 基因基因组”的搜索,转变为更接近于 200 个并行的“寻找该位置上的最佳基因”的搜索。在我们的密码锁类比中,模块化电路模拟有点像转动拨盘直到听到“咔哒”声,提示该数字是正确的。而有性生殖更像是在尝试大量不同的随机组合,并获得一个关于“该组合离正确解锁有多近”的得分,然后利用这个得分来推断哪几个“拨盘”的数字是正确的。相应地,搜索空间被大幅缩小,搜索过程也大大加快。
在 Arthur 的技术搜索中,我们用信息论来描述这种搜索空间的缩减,计算每次迭代所获取的比特(bit)数。(提醒一下,“比特”就是“能让需要考虑的可能性数量减半的东西”。)在我们寻找由 68 个与非门(NAND gate)构成的 8 位加法器时,找到可行的排布方案需要从 2^853 种可能性中缩小范围,即需要 853 比特的信息。试图一次性让所有 68 个逻辑门都正确,每次尝试获取的信息量不到 0.000001 比特,这就需要漫长且痛苦的搜索。但引入模块化后——逐个检查逻辑门并确认其是否在正确位置——我们积累信息的速度大大加快,每次尝试约能获取 0.003 比特(比非模块化搜索快 3000 倍)。
我们同样可以从信息获取的视角来审视生物进化及有益基因变异的传播。在我们的模拟中,特定时刻所拥有的信息量,是种群对每个基因取值的“确定性”程度的函数。在我们初始的随机种群中,对于每个基因大约有 50% 的个体为 1,50% 的个体为 0,此时处于最大不确定性状态,我们对每个基因拥有的信息量为 0 比特。当种群达到最大适应度时(每个成员的每个基因都为 1),我们处于最大确定性状态,每个基因拥有 1 比特的信息量。因此,总信息量大约等于 2 * (F - G/2),其中 F 代表适应度(fitness),G 代表基因组长度(genome length)。
可以看出,在我们的模拟中,有性生殖比无性生殖获取信息的速度要快得多。
对于上述所有分析,有一个重要的前提:它假设基因对适应度的贡献是独立的,也就是说,27号基因的作用并不是145号基因的函数。当基因像这样发生耦合,且某个基因变异的效用取决于个体拥有的其他基因变异时(实际情况通常如此),进化搜索过程的分析就会变得复杂得多。(Stuart Kauffman 利用其提出的 NK 景观(NK landscapes)概念在这方面做了大量研究,你可以在这里和这里阅读相关内容。)不过,这种简单的、可加性的适应度模型,对于理解这些进化机制依然非常有用。
同样重要的是要知道,在现实中,像细菌这样的无性繁殖生物也有在彼此间共享基因的方法,从而获得有性生殖的某些益处。细菌广泛进行所谓的“水平基因转移”,这正如其字面意思:基因在种群的现有成员之间进行转移。显然,抗生素抗性基因主要就是通过这种方式传播的,并且有分析表明,细菌基因组中有 20% 到 80% 是这种基因转移的结果。
技术搜索过程极大地受益于模块化:即能够将一项技术分解为具有特定功能的子组件,并能够判定这些子组件是否正常运行。从信息论的角度来看,这极大地缩小了搜索过程中必须考虑的可能性范围。有趣的是,生物进化在一个完全独立的领域中创造并运作,却使用了类似的技巧:它利用基因重组(以有性生殖和水平基因转移的形式)使搜索过程变得更加模块化,从而更快速地获取信息。
(想了解更多关于进化与信息获取的这些观点,包括更严谨的数学推导,请参阅 David Mackay 所著的《Information Theory, Inference, and Learning Algorithms》一书的第 19 章。)
需要完整排版与评论请前往来源站点阅读。