第六章

132 阅读1小时+

可容量

  复杂的机制是如何从更简单的机制进化而来的?

  如果能证明有任何复杂的器官存在,这不可能是由无数的、连续的、微小的修改形成的,我的理论绝对会崩溃。但我发现了这样的情况。

6.1有差距吗?

  《达尔文的起源》是一部具有惊人的洞察力的著作。从对植物和动物的观察中,他推断出了一个已经成为生物学中心理论的进化理论。在这本书中,达尔文承认,生物学中存在一个不可能由连续的微小修饰形成的单一器官,这将与他的进化论相矛盾。此后一个半世纪获得的知识在定性方面证实了他的理论。地球上当前的生命形式是相关的,这一观点得到了它们的DNA之间明显的相似性以及丰富的化石记录的充分支持。达尔文进化的基本模式基本正确的证据让绝大多数生物学家都令人信服。这位作者已经被足够多的自然历史博物馆说服了自己。然而,所有这些并不意味着当前的进化理论有充分的解释。目前,进化理论还不能解释进化过程发展出复杂的机制或在不断变化的环境中维持它们的速度。它并没有解释正如化石记录所暗示的那样,地球上的进化是如何在通常由该记录引起的时间尺度内以及地球的物理资源或这个宇宙的物理资源下发生的。我们面临的是达尔文观察的一个定量推论:一个器官的存在需要太多这样的修改才能在现有的时间内进化,这同样会与他的理论相矛盾。

目前通过自然选择的进化理论与其他伟大的科学理论性质不同,比如牛顿的万有引力定律或爱因斯坦的广义相对论。后者做出有待验证的定量预测。相比之下,进化理论目前没有提供类似的定量预测,甚至没有对过去的定量解释。也许这就是为什么在伟大的科学理论中,进化论引起了最怀疑和有组织的反对。世界各国有相当比例的人口反对这种做法。没有证据表明有任何对球形地球的拒绝,或者是成功的理论中最奇怪的量子力学。人们必须考虑到,进化在这方面的独特地位可能是由于其现有理论的缺点。如果有定量账户,似乎不太可能保持对它的重大反对。

  正如我们所看到的,我们并不详细知道DNA是如何控制生物体的生理或行为的。如果我们不了解DNA是如何影响生理或行为的,我们就不应该期望了解DNA的变化是如何导致更健康的生理或行为的。不幸的是,这个差距并不是唯一的问题。正如我们之前讨论的关于地球时代的问题,达尔文自己对他提出的进化机制如何在有限的可用资源上发挥作用的问题感到非常困扰。其他一些人也对该理论中缺乏令人信服的定量细节表示严重关切。子孙后代会想知道,为什么这些问题没有被更紧迫地问到。

  人口动态的定量理论已经存在了一个世纪。这些理论涉及到分析静态实体之间的竞争,并预测它们的相对种群规模将如何随着竞争而变化。它们与进化有关,但并没有解决日益复杂的生物体进化得有多快的问题。目前还没有一种理论可以定量地解释竞争本身如何导致更大的功能和复杂性。然而,无论如何衡量,生物都是高度复杂的机制。当然,在达尔文或他的继任者看来,他们可以不知道,事实上,也不可能知道我们现在知道的关于生物化学和计算的东西。对我们来说,由于我们的前辈所缺乏的额外知识,有更多的机会和更多的责任,来建立一个更完整的进化理论。

  大多数与进化相关的计算工作,即涉及所谓的遗传算法,都试图调用进化提出的想法,以获得更好的计算机方法,如优化。这项工作通常并没有针对理解进化在生物学中的工作原理,而且一般来说,这些尝试并没有产生暗示复杂生物系统可能是如何进化的结果。达尔文进化论是创造复杂功能机制的灵丹妙药仍有待证明。然而,我认为,计算学习的理论,不是简单地试图模拟进化,而是可以帮助我们理解它。

6.2如何才能填补这个缺口?

  主要的问题是:考虑到被认为是可用的时间和种群规模,复杂的生物机制是如何进化出来的?幸运的是,现在人们对生物机制的本质知了很多,但达尔文或后来所谓的现代合成物的配方,如罗纳德·费舍尔。我们现在知道的人类生物学是基于人类基因组中编码的2万多种蛋白质。基因组进一步编码了一个网络,这个网络描述了细胞中一次蛋白质的浓度,这是特定的其他蛋白质表达所必需的。人们认为,DNA中的调控区域编码了这些条件。在描述蛋白质或调节机制上的轻微故障可能会使生物体无法存活。目前可以定量地解释这种具有如此多连锁部分的复杂机制是如何在不断变化的环境下维持自己,并进化成更复杂的形式的。当然,达尔文并不能如此明确地问这个问题。很有可能,自从他的时代以来,没有发现有效的具体达尔文机制,仅仅是因为在搜索中投入的努力不足。

  为了更完整地明确地球上进化的机制,人们需要了解每一代的基因组究竟是如何从前一代的基因组中衍生出来的。一个简单的假设,至少对于无性物种来说,DNA序列中的每个碱基对都会随机翻转到其他三种可能性中的一种,具有相同的固定的小概率。然而,没有证据表明这种简单的推导机制是所发生的事情。同样重要的是,没有证据表明这种简单的机制可以以生物学中发生的速度导致进化。将达尔文进化视为一种学习机制提供了一条前进的道路。这种方法使我们不仅能够考虑一种可能的变化机制,如这个机制,而且能够考虑许多机制,并探索所有可能的变化机制的最终限制。如果我们想理解进化如何像地球上那样产生越来越复杂的形式,那么我们完全有理由相信,这样一个更系统的分析是必要的。

  如上一章所述,计算学习只不过是关于在没有设计者的情况下如何获得计算机制的定量研究。生活中充满了计算机制。如果我们要理解这些机制和生命本身,如果没有设计者是如何产生的,那么计算学习正是我们需要看到的地方。一方面,这种方法可能会让那些希望生物进化从一个还未被怀疑的来源获得魔法力量的人感到失望。另一方面,它有一个积极的方面,它提供了一个现有的理论来建立。

  哺乳动物的进化为理解这种方法可能在可预见的未来获得我们的利益提供了一个背景。哺乳动物,代表了超过2亿年的进化,有许多蛋白质在不同的物种,很可能许多物种之间的重要差异导致这些蛋白质的监管不同物种,而不是蛋白质本身的差异。因此,合理的第一步是试图理解具有一组固定蛋白质的物种如何在不断变化的环境和生态条件下,在简化的假设下维持自己和进化。

  在这个思维实验中,比如有20000个变量,x1,...,x20000,它们代表每个蛋白质p1,...,p20000是否存在(或浓度)。对于每个蛋白质pi,都有一个所谓的输入函数变量的fi,指定该蛋白质是否(或在什么水平上)被表达。这些输入函数必须属于我们在前几章中看到的某类类型,如连词或分离。

  我们可以用数学上将这些函数描述为C类的集合,例如,成员f7描述了第七个蛋白的表达水平。f7如何依赖于这2万个变量是问题所在。这可能只取决于三个浓度水平x23、x136和x7641。但其依赖性是什么呢?它可以是f7(x1,...,x20,000)=3.2x23+0.42x136+1.03x7641,或者它可以是一个类似的函数,具有相同的三个变量,但有其他参数。也可能是一个涉及二次项的非线性函数,或者是一些完全不同的东西。选择哪一类功能来探索这些问题提出了一个明显的困境,即锡拉和查里布迪斯之间的困境。如果这个阶级太有限,那么所隐含的生物学机制将会非常有限,以至于不足以表达生命所需的复杂机制。另一方面,如果C太广泛,那么可能没有任何达尔文进化算法能够快速地导航可能函数的复杂空间,以允许在可用的有限时间内进行适应。换句话说,对于一类过于广泛的函数,就不会有进化算法,而对于一类过于严格的函数,就没有生物学了。这些都是达尔文和费雪无法问的问题。

  我们在这里使用的关于固定蛋白质集的输入函数的示例只是一个具体的子问题。真正的问题更困难,因为我们也需要理解其他类型的电路,比如那些模拟进化蛋白质的电路。然而,我认为,更普遍的问题也将受到类似的障碍的控制,并可使用同样的方法加以解决。

  进化理论不能被认为是完整的,除非它详细说明了函数类以及可以导航它的实际进化算法。至少,我们需要证明算法和函数类存在一些可信的候选对象。在这样的演示完成后,达尔文理论将发展到不仅仅是一个隐喻。

  有些人可能会质疑这种对达尔文机制的强调,例如,拉马克的进化论,它早于达尔文,并考虑了广泛的行为类别不仅影响下一代和后代的可能性。确实存在以这种方式运作的遗传机制。例如,怀孕的女性可能会通过不良饮食影响后代的健康。精子和卵子比抽象的DNA串描述包含更多的物理物质。至少在原则上,有许多从父母那里遗传的途径依赖于DNA中不包含的信息。

  这种途径被称为表观遗传学。表观遗传机制是否显著加快进化中功能变化的速度是一个悬而未决的问题。幸运的是,我们可以在这里继续进行,而不需要解决它。这并不仅仅是因为似乎几乎没有证据表明这些证据对地球上的长期进化速率产生了显著的积极影响,尽管这可能是足够的理由来遵循一个纯粹的达尔文多南模型。相反,这门课程是合理的,因为任何不能被视为达尔文式的表观遗传机制也可以被表述为学习,尽管这可能是一种不那么有限的类型。因此,如果人们希望证明一些看似合理的表观遗传机制将产生比达尔文机制更强大的进化,并更好地解释地球上的生物学,那么计算学习将仍然是工作的框架。

6.3进化有一个目标吗?

  我现在要了进化的主要观点,它是一种学习形式。为了达到这个目标,需要面临第一个直接的障碍。大多数进化理论家否认进化有任何形式的目标,而是认为这只是竞争产生的事实。不幸的是,竞争本身不足以解释蛋白质回路如何变得更复杂或更适合解决客观问题,比如如何观察或运行。然而,我们所阐述的学习它确实有一个目标功能,比如识别一种花。如果进化是PAC学习的一个例子,它也必须至少有一个目标,即使不是一个目标。那么,进化的目标是什么呢?

  作为一个比喻,考虑一个制造公司与其他此类公司竞争。仅凭竞争这个事实并不能远远地解释公司的行为。相反,人们认为公司有盈利的目标或目标,而不仅仅是为竞技体育而存在,这一点更具解释性。

  正如达尔文所描述的,进化有一个类似于企业利润的特征:健康。达尔文进化中的适应性是衡量一个实体在某种环境中所享受的好处的一种指标。然后,选择会引导进化发展到有利于具有更高适应度的实体。换句话说,就像一个公司的目标是盈利一样,进化的目标是保持或增加健康。

  在过去的150年里,健身已经有了几个定义。许多人,跟随种群遗传学家J.B.S.霍尔丹,用它来表示由一个特定类型的平均个体对下一代基因库的平均贡献。这个概念适用于分析静态实体之间的竞争结果,但它并没有通过影响它的因素来了解适应度本身的实质。我用赫伯特·斯宾塞在1864年创造的“适者生存”一词来描述自然选择,就像达尔文在后来版本的《物种起源》中所采用的那样。

  这里要描述的方法的一个创新是,适应度将根据它明显依赖的因素来定义,即进化实体和环境的行为。为了避免与霍尔丹的描述任何混淆,我称新的测量性能,而不是适合度,尽管它的目的是为了符合斯宾塞和达尔文的适合度概念。

  在达尔文的工作中已经隐含的假设——不同的行动选择对进化的实体有不同层次的好处——我们可以用我称之为理想函数的概念来定义性能和目标。对于任何物种(或其他进化的实体),在任何时刻,在任何特定的环境中,这个理想的函数将在每一种可能的情况下指定最有益的行动过程。例如,在蛋白质表达环境中,理想的功能将指定,对于所有蛋白质的每一个浓度的组合,每个蛋白质接下来要达到的最有益的表达水平。

  这个理想的函数只需要作为一个抽象的函数存在,而不需要任何人都不知道它。在现实世界中,这个函数可能极其复杂。在我们的蛋白质电路示例中,理想的功能将指超过2万种功能的总数,每个功能都描述了一种特定蛋白质的生产。(也就是说,理想的函数将是一组函数,而不是单个函数。我们稍后会再回到这一点上。)因此,尽管进化中的实体将有向理想函数进化的趋势,但它只对来自足够简单的类的理想函数成功,就像学习只对足够简单的类成功一样。这个公式完全弥补了我们对每种蛋白质如何与细胞发生化学相互作用,以及什么生态因素对生物体的环境带来好处的知识的缺乏。所有这些知识都总结在理想的函数中。

  因此,进化的目标只是具有更高的性能。这立即使这个过程可以作为PAC学习的一种形式进行治疗。此外,完全作为一个机器学习算法,或一般的算法,进化算法将成功,而不需要任何专业知识,例如,生态学。实现这些行为的学习回路的反应将是没有理论意义的。

  “理想”一词在这里不应该被误解。没有任何暗示表明所产生的生物在任何意义上都是最优的。没有迹象表明,人类,正如我们现在或可能是,或任何其他现存或可能的生物体,是进化的目标。理想只指一个非常局部的意义,一个不断发展的实体和一个环境。例如,对于当前环境中的人类物种,一些行为比其他行为更有益。我们的第七种蛋白的表达功能又好或差,每天吃的巧克力量或多或多。由于我们在一种情况下所采取的行动可能会影响在另一种情况下最有益的行动,因此被评估的是所有动作函数的组合。理想的方法是在环境的快照中产生最大的好处。

  如果进化是有效的,那么可进化的类本身需要具有一定程度的组合复杂性,即使与自然界中发生的整体结构的复杂性相比,它的范围似乎受到了限制。如果可进化性只适用于非常简单的函数类,例如和和或只有两个参数的函数,那么我们将需要更多的目标追求阶段,并且连续的目标之间更相似,才能得到一个复杂的函数。总体需求类似于在机器学习中发现的需求,在机器学习中,已知算法可以有效地在许多变量上学习函数,如线性分隔符或连接符。在实践中,这样的中等简单的函数类的机器学习算法已经有效了,因为它们可以从可能大量的数字中自动发现相关变量。进化算法需要克服的挑战是相同的,即应对大量变量的函数。

  在可学习的目标追求中,整个学习的过程是由一系列对已知的小型可学习增强决定的,保持以前知识的质量基本不变。这对于进化必须是一样的,而且证据是直接的:在广泛的物种中,基因组的许多部分基本上保持不变。据推测,这些发现编码了重要的复杂发现,比如地球上生命共同的生化基础。这些编码的微小变化将使生物体根本无法生存。基因组的其他部分显然进化得相当迅速。保护而不是丢弃功能良好的有用机制是进化的重要组成部分,就像它是学习一样。

  教师在学生追求可学习目标中的角色在进化中也有相似之处。学生们从为他们的知识水平准备的讲座中学习,作为目标追求。学习一个可接近的目标是他们大脑的一种可预测的生物现象,如果学习者有相似的背景知识,它将以大致相似的方式发生在不同学习者的头脑中。从学生的角度来看,可以学习的东西完全是偶然的。老师选择教的东西就像环境中提出的任何东西一样。由于准备好的学生将无情地(如果概率的话)追求可学习的目标,准备好的生物体也会追求可进化的目标。

  这种观点也很自然地将我们带到了模块的问题上。在工程或计算机编程中,从许多模块中设计复杂的系统是很自然的,每个模块都执行一个可区分的功能,并以一种清晰和简单的方式与其他模块进行接口。对于人工产品来说,模块化是一个重要的设计原则,它具有许多明显的优势,如易于设计、易于人类理解和易于维护。

  生物系统也被认为是高度模块化的。事实上,这似乎是我们理解它们的唯一机会。然而,在生物学的情况下,模块化提供了什么优势并不那么明显。我认为,对进化能力的明显严重限制可以解释这一点。这些限制允许简单的系统,如那些控制参数更少的系统,比那些依赖于更多参数的系统更容易进化。模块化意味着一个复杂的系统可以分解成许多更简单的系统,这些系统基本上是独立作用的。这样更简单的子系统,每个单独进化,与一个复杂的系统相比,不会受到进化能力的固有限制的阻碍。

  另一种说明极端可能性的方法如下。对进化背后的变异过程的一种观点是,它只是在基本遗传过程中发生的错误的结果。因此,在复制过程中复制DNA的错误可能是产生下一代变异基因组的主要机制。相反的观点是,产生变体的过程是高度复杂和聪明的,就像它经历了广泛的进化本身很可能是那样。

6.4可容量目标追求

  在继续如何将进化表述为学习的主要问题之前,我需要偏离解释所有这些所设置的更广泛的视角。这种观点是可进化的目标追求,是可学习的目标追求的精确模拟,它表明进化需要被认为是有两个组成部分。

  首先,对于任何一个物种(或基因,或任何我们认为是进化的单位),将有许多可访问的目标函数是可由相关的进化算法进化的。如果这样一个可访问的目标比当前基因组所实现的目标具有更高的性能,那么进化将以一种不需要不太可能发生的事件的方式无情地向该目标发展。这是因为新的目标函数属于一个足够简单的类,它的进化可以由一个可识别的进化算法来保证——至少具有很高的概率,该算法只需要真实的种群规模和真实的代数。我将留下一个可进化的技术定义,以及可进化的函数类的示例,以及其他一些不可进化的函数类。

  其次,一个特定的功能,比如一个蛋白质的表达水平,是否比另一个功能具有更高的性能的问题是由与物种的当前状态和当前环境相关的复杂因素决定的。一个物种的状态可以在任何时候发生变化,例如,如果一个蛋白质的输入函数由于DNA的突变而发生变化。函数的性能也会因为环境的变化而突然发生变化。例如,在日常生活中出现的经历的相对频率的变化可能会改变最好做的事情,环境中更多的灾难性事件也会改变。

  可进化的目标追求假设,进化的过程是由随着物种和环境变化时出现的机会的连续变化所指导的。对每个目标的追求是由显式进化算法实现的,就像在学习中对目标的追求是由特定的学习算法实现的一样。因此,进化算法追求其目标的过程和速度是可预测的,这对于学习算法是正确的。相比之下,一个新的有益目标函数的出现,通过一个特定的功能以前有害变得有益,必须被视为是偶然的,因为这可能是一个大型陨石或火山爆发的结果,或更平凡但仍然不可预测的东西。

  这种关于进化的两组成部分的观点与生物形式的进化速率是可变的理论是一致的。间断平衡理论断言,显著的变化往往发生在短时间内,这可能被较长时间的相对停滞分开。可进化的目标追求表明,当一个目标是可访问的和有益的,收敛将以一个可预测的,也许是快速的速度发生,由进化算法的速度决定。相比之下,使可访问目标有益的环境变化以没有设定的速度偶然发生。例如,收敛到一个目标可以立即使第二个目标函数可访问,如果该第二个目标是有益的,那么将立即向该目标收敛。或者,在气候变化或其他物种出现或消失之前,第二个目标可能不会变得有益。

  进化的速度是由重大环境变化发生的速度驱动的,这一观点是很古老的,并被阿尔弗雷德·拉塞尔·华莱士讨论过。他提出了一个问题,即过去由于地球轨道的频繁变化而导致的频繁气候变化是否可能是导致早期更快速进化的原因。然而,这个关于目标成为新获得或新有益的频率的问题,我们认为,这超出了进化理论的范围,是由无关因素决定的。进化理论可能会为进化速率设定一个上限,但在一个贫困的环境中,进化速率可能无法实现。

  这两个组成部分之间的分歧,一方面是收敛到有益的可达目标,另一方面是新的有益目标的出现,是由于对可进化的函数类的明显的严格限制而造成的。这些硬极限类似于我们之前讨论过的关于可计算、高效可计算或可学习的函数类的各种极限。

  如果进化是有效的,那么可进化的类本身需要具有一定程度的组合复杂性,即使与自然界中发生的整体结构的复杂性相比,它的范围似乎受到了限制。如果可进化性只适用于非常简单的函数类,例如和和或只有两个参数的函数,那么我们将需要更多的目标追求阶段,并且连续的目标之间更相似,才能得到一个复杂的函数。总体需求类似于在机器学习中发现的需求,在机器学习中,已知算法可以有效地在许多变量上学习函数,如线性分隔符或连接符。在实践中,这样的中等简单的函数类的机器学习算法已经有效了,因为它们可以从可能大量的数字中自动发现相关变量。进化算法需要克服的挑战是相同的,即应对大量变量的函数。

  在可学习的目标追求中,整个学习的过程是由一系列对已知的小型可学习增强决定的,保持以前知识的质量基本不变。这对于进化必须是一样的,而且证据是直接的:在广泛的物种中,基因组的许多部分基本上保持不变。据推测,这些发现编码了重要的复杂发现,比如地球上生命共同的生化基础。这些编码的微小变化将使生物体根本无法生存。基因组的其他部分显然进化得相当迅速。保护而不是丢弃功能良好的有用机制是进化的重要组成部分,就像它是学习一样。

  教师在学生追求可学习目标中的角色在进化中也有相似之处。学生们从为他们的知识水平准备的讲座中学习,作为目标追求。学习一个可接近的目标是他们大脑的一种可预测的生物现象,如果学习者有相似的背景知识,它将以大致相似的方式发生在不同学习者的头脑中。从学生的角度来看,可以学习的东西完全是偶然的。老师选择教的东西就像环境中提出的任何东西一样。由于准备好的学生将无情地(如果概率的话)追求可学习的目标,准备好的生物体也会追求可进化的目标。

  这种观点也很自然地将我们带到了模块的问题上。在工程或计算机编程中,从许多模块中设计复杂的系统是很自然的,每个模块都执行一个可区分的功能,并以一种清晰和简单的方式与其他模块进行接口。对于人工产品来说,模块化是一个重要的设计原则,它具有许多明显的优势,如易于设计、易于人类理解和易于维护。

  生物系统也被认为是高度模块化的。事实上,这似乎是我们理解它们的唯一机会。然而,在生物学的情况下,模块化提供了什么优势并不那么明显。我认为,对进化能力的明显严重限制可以解释这一点。这些限制允许简单的系统,如那些控制参数更少的系统,比那些依赖于更多参数的系统更容易进化。模块化意味着一个复杂的系统可以分解成许多更简单的系统,这些系统基本上是独立作用的。这样更简单的子系统,每个单独进化,与一个复杂的系统相比,不会受到进化能力的固有限制的阻碍。

6.5进化与学习

  进化是一种学习形式,这种观点在许多人第一次听到进化时听起来难以置信。因此,我将首先认识到一种感觉,即这两种现象确实不同——尽管在某种意义上,进化实际上比PAC学习要弱。稍后我将继续争论,达尔文进化可以被表述为PAC学习的一种特殊形式。

  考虑以下寓言。假设一种生活在森林里的猴子吃香蕉、浆果、橘子和苹果。这可以看作是一个分离体x1、x2、x3或x4,其中x1、x2、x3、x4分别代表香蕉、浆果、橙子和苹果。假设现在有一种味道不好的浆果侵入了这个地区。然后,猴子可以学习最佳的新分离,即x4,通过消除浆果的分离后,x1或x3或x4。这对应于执行我们前面讨论的学习消除算法的分离。

  相反,假设新浆果实际上是致命的。进化能学会避免致命的浆果,就像学习可以避免味道不好的浆果一样?达尔文并不是完全这么说的。如果一只猴子死于吃了有毒的浆果,那么在这一个事件中,其后代的基因组将不会立即得到纠正,以消除它们的分离中的x2。猴子的孩子不只是接触并更新他们自己的基因组。达尔文提出的机制是,通过突变,不同的后代也会产生各种与亲本x1的x2、x2或x3或x4相似但不同的分离。有些包含x1或x2或x4,有些包含x1或x3或x4。只有拥有幸运的DNAx1、x3或x4的个体从其分离中省略了致命的x2,谁才能存活下来。

  当然,虽然这种达尔文机制最终可能会达到同样的结果,即后代中有一群猴子像消除算法一样避开浆果,但它不那么直接,效率更低,更多的个体过早死亡。从糟糕的经验到好的基因组的达尔文反馈机制,至少比允许学习算法的直接消除更迂回。与直接学习方法相比,达尔文机制的效率是否难以忍受,这是需要回答的基本问题。很明显,在某种无限的极限下,达尔文机制肯定会达到同样的结果。现实世界,一如既往,是另一个故事。

  这种达尔文反馈约束可以改写如下。在感知器算法中,对假设的更新,例如在图3.7中,可以严重地取决于所看到的特定例子,甚至它们被看到的顺序。在进化环境中,这意味着如果猴子吃的最后两种食物是香蕉和浆果,它们被吃的顺序可能会影响后代的基因组。也就是说,感知器算法是拉马克式的。然而,在达尔文进化论中,与拉马克早期的理论不同的是,基因变异是独立于当前的经验产生的。经验的唯一作用是在比较各种后代假设产生后,它们的适合度。相比之下,一般来说,学习一个单一的例子可以立即影响学习过程的后续过程的所有方面。事实证明,这种区别确实在计算能力上有一个明显的差异:存在PAC可学习的概念类,但在这个达尔文约束时不会。由此产生的实质性问题是:达尔文进化论是几乎和PAC学习一样强大,还是它在它可以学习的机制范围上明显较弱?

  还有另一个方面是,进化比学习更繁重。在学习中,或者至少在机器学习中,坚持从任何初始假设开始这个过程是合法的。我们可能想要选择计算上最有效的初始假设。在学习连接的消除算法中,我们总是以相同的方式开始,使用所有变量及其负值的结合。由于该算法只在路上消除了变量,所以如果要能够学习任何连接,它需要从所有可用的变量开始。

  进化负担不起这种奢侈。它需要能够从它所拥有的任何基因组开始取得成功。重新初始化到一个在算法上方便的起点的可能性是不现实的。移动到这样一个新的起点的问题是,它可能会使物种不适合目前的数量,因此不能与任何没有做出这样的举动的表亲竞争。生物实体一般不能承受如此任意大的适应度下降。事实上,人们认为,生物学中持续存在的突变在被采用时大多是有益的,或至少接近中性的。令人高兴的是,这个对任意起点的要求对于一般的学习算法来说并不是完全陌生的,并且可以由一些特定的算法来满足。例如,已知感知器算法从任何初始假设开始都可以正确地工作。

6.6作为一种学习形式的进化

  为了把进化看作是一种学习形式,我们认为进化中的基因组与学习中的假设相对应。基因组的表现对应于它对理想行为的预期接近,其中期望被接管了世界上提供的经验的分布。其目的是表明,如果理想行为可以用适当类中的函数表示,那么进化将通过进化算法发生。进化的过程对应于一个学习算法收敛于一个目标函数的过程。

  回到一组固定蛋白质的输入函数演化的例子,让x1,...,xn是蛋白质p1,...,pn的浓度,为简单起见,让每个蛋白质只取值+1或−1,分别表示它们是否存在。例如,对于第七个蛋白p7,一些功能g7(x1,...,xn)将调节其产生。是否会产生任何一个,将取决于x1,...,xn的−1,+1值的2n个组合中的哪一个持有。

  这种接受并返回否值的函数称为布尔函数。布尔函数,即使是中等数量的变量,也可能非常复杂,其中只有一小部分,那些描述简短的,可以在这个世界的实践中表示,更不用说学习或进化了。为了论证,让我们假设是一类分离,其中一个实例是g7(x1,...,xn)=x2或x4或x11。这一类中的一些分离可能比该环境中的其他分离对所有者更有利。一个特定的进化追求的目标将是定义理想行为的分离。

  接下来的核心问题是,对于一些有用的理想函数类,如分离,是否存在一种资源高效的达尔文机制,当从类中的任意成员开始时,它就会向理想函数进化。为了更精确地表述这个问题,需要一个以理想函数的PAC模型为目标的计算模型,此外,还受到达尔文反馈的限制。

6.7可容量的定义

  发现理想的函数就像发现一个秘密一样。这个进化机制只能通过以下定量上可行的达尔文过程来获得关于这个秘密的信息。它将需要当前基因组的多项式数量的基因组变异,对于每一个,需要一个样本的多项式的许多经验,或输入的功能。这些输入可以指定内部化学的某些方面,如蛋白质浓度,或外部环境,如温度,由环境决定了它们发生的频率。生物体会根据其基因组规定的情况行事——比如,从树荫转向阳光——然后生物体就会享受到随之而来的好处或伤害。在多项式上的许多经验的样本中,对每个基因组的平均好处或伤害是我们对基因组性能的估计。

  所有这些都仅仅对应于不同基因组变异的所有者的经历、有经历和享受利益,这与他们的生活选择对应的频率与更有益的行为有关。任何一个基因组变异的聚合性能越高,它就越接近理想功能的性能,该变异就越有可能在自然选择中存活下来。

  对于给定的条件d分布,当前基因组函数g可以从数学上定义其相对于理想函数f的性能。我们用Perff(g,D)来表示这种性能。在每个不同的条件x下,演化实体的理想动作将被假定为−1或1。从数学上讲,当一个基因组g的输出与理想函数在所有可能条件或经验的任意自然分布D上的输出高度相关时,它具有很高的性能。那么性能的数学定义是Perff(g,D)=∑x∈Xf(x)g(x)D(x)。这里∑x∈X表示对所有可能经验的总和。数量求和是f(x)、g(x)和经验x实际发生的概率D(x)的乘积。(每个D(x)的数值介于0到1之间,所有这些值的和都等于1。)由于g和f取值为−1或+1,如果f和f同意,它们的乘积f(x)g(x)的值为1,如果f和g不一致,它们的值为−1。

  如果对于X中的每一个x,都是f和g同意的情况,那么乘积f(x)g(x)将总是等于1,因此Perff(g、D)将等于1。这是g是理想函数f时的情况。在极端相反的情况下,对于每一个x、f和g不一致,因此f(x)g(x)=−1,然后是Perff(g,D)=−1。这是基因组在每一种可能的情况下所做的与理想行动完全相反的情况。很容易看出,在所有情况下,Perff(g,D)将在−1和+1之间取一个数值。例如,Perff(g,D)=0.9的值是有可能的,并且可以很好地近似于f。这个数字越高,基因组就越频繁地采取理想的行动,我们所说的意思是由现实世界分布d决定。在最常见的情况下行动的选择将具有最大的权重。

  性能函数在数学上形式化了达尔文的适应度概念。当然,如果健身的概念不仅仅是诗意或隐喻的意义,那么我们应该能够定义它是如何与决定它的因素相关的。显然,由其基因组g决定的进化实体的行为有助于适应度。显然,健康程度也是由环境决定的。环境的相关方面既包含在分布D中,它描述了各种经历发生的相对频率,也包含在f中,它描述了该环境中进化实体最有益的行为。以前的理论并没有尝试过这种关系。在后面的一节中,我们将概括性能函数,以允许在任何情况下具有超过两个结果的行为。

  性能功能使我们能够更严格地考虑生物学家所说的基因组适应度景观。在这个类比中,适应度更高的基因组将处于更高的高度。以前的理论都依赖于这个类比,这是讨论基因组如何进化以变得更有效的自然环境,或者,在这种视觉图像中,达到更高的基础。然而,以前的理论并没有根据它所依赖的因素、基因组的作用和环境来定义适应度。性能函数确实如此。为了使这一理论更加完整,我们还需要具体说明基因组是如何突变的,以及它们是如何在具体的计算过程中成功地驾驭这一领域的。

  我们现在是进化的定义作为一种PAC学习,理想的函数f接近通过序列的基因组函数g,每一个是选择的基础上优越的性能生成的一组变异以前的基因组功能的序列。

  正如前面在第6.5节中所讨论的,由于反馈的限制,达尔文进化并没有使用PAC学习的全部能力。与PAC模型相比,假设更新可以任意依赖于单个例子,进化根据其性能从几次尝试过的突变中选择一个新的突变。一个基因的突变可以通过突变发生的个体的后代被复制很多次。具有相同基因的个体将与具有不同基因的个体竞争,而在许多生活经历中平均总表现更好的基因最终将比其他基因更长寿。因此,虽然在学习算法中,假设可能会因为一个例子而改变,但在达尔文进化中,它将会改变——这意味着它将被种群采用,因为它优越——只是因为总体统计上优于许多生活经历。

  这种学习,即聚合的度量,而不是单个的例子,决定了假设,已经被迈克尔·卡恩斯定义为统计查询,或SQ,模型。14在SQ模型中,当人们试图学习区分花的种类时,人们会问,大约物种A中有多少部分花的花瓣长度超过1个单位,而不是要求对单个花的描述。当然,这些问题可以通过举足够的该物种的例子并询问样本中有多少部分满足标准来回答。因此,PAC学习至少与SQ学习一样强大。事实上,一些PAC可学习的类不是SQ可学习的,因此SQ比PAC更受约束。

  上面的进化模型也只问汇总的统计问题,就像SQ模型一样,但它不能问任意的统计问题,比如关于花瓣的长度。它只能问一些关于一件事的问题——性能,即一个给定的基因组函数g与秘密的理想函数f的相关性。此外,基因组获得有关这个秘密信息的唯一方法是让拥有该基因组副本的个体活着。关于这个秘密的信息只会通过这些人在与他人竞争中的生存来揭示。

  总之,在这个达尔文进化的模型中,给定一个特定的基因组,变异的分布将只取决于基因组,而不是任何经验。在这些变体中的选择将通过一个取决于经验的过程,但只能通过对其性能Perff(g,D)的估计,这些例子可以从多项式大小的样本中获得。该模型不要求可以访问性能Perff(g、D)的精确值。它只假设性能的近似,可以从多项式的许多经验中获得。

  如前所述,我们希望从允许的类中的任何起始基因组功能g中成功地追求一个可访问的目标。我们不能期望能够将它“重置”为一种便于长期进化的形式。这种固定重置的问题是,结果的性能可能远低于当前基因组,因此在一开始就无法竞争。

  从一个任意的起点开始,我们希望收敛到f只发生在一个中等规模的人口和在适度的代,适度我所说的他们是多项式,而不是指数,根据相关的数值参数,如变量的数量(例如,蛋白质)。此外,我们还希望从当前基因组中计算变体的算法A的计算成本也是多项式的。前者反映了宇宙中生物体有限的时间和空间。后者模拟了产生来自前一代的每一代变体的生物学机制。

  给定这个模型,主要的算法设计选择在于如何生成下一代的变体。在生物学中,单个碱基替换(即DNA序列中单个点的变化)肯定会发生,但它们并不是变异的唯一来源。DNA序列的整个片段有时会被复制并插入到序列的另一个位置。事实上,整个染色体都可以被复制。删除也可以以类似的规模发生。在这里的模型中,我们将允许所有这些机制,以及更多。我们将允许任何多项式时间随机计算来生成变量。这听起来可能过于慷慨,但正如我们将看到的,即使有了这种考虑,产生独立于经验的变异的达尔文约束似乎对可进化的东西施加了严重的限制。在变异体生产方面的计算慷慨并不足以轻易地解释进化。请注意,这种慷慨只是朝着计算的最终灵活性方向,不会影响定量的可行性。它的定义是这样的,以便允许自然界可能使用的所有机制,即使是那些我们还没有检测到的机制,只要它们只使用可行的资源。其目标是揭示自然界可能在宇宙中任何地方可能使用的任何算法。毕竟,问题是目前还没有一种符合法律要求的算法。关于什么是“自然的”的先入之见将是一种障碍,需要加以抵制。

  人们无法猜测这项工作将导致关于地球上进化的什么结论。生物学可能会使用非常简单的算法来产生变体。也许某些简单的算法比我们目前所理解的更强大。也可以想象,生物学在地球上进化的功能进化起来比看起来更简单。另外,自然界用来生成变体的算法确实非常复杂,我们甚至还没有看到它们是什么。

  另一种说明极端可能性的方法如下。对进化背后的变异过程的一种观点是,它只是在基本遗传过程中发生的错误的结果。因此,在复制过程中复制DNA的错误可能是产生下一代变异基因组的主要机制。相反的观点是,产生变体的过程是高度复杂和聪明的,就像它经历了广泛的进化本身很可能是那样。

6.8范围和限制

  事实证明,正如一些函数不能被任何图灵机计算一样,一些函数在我们刚才描述的模型中被证明是不可演化的。此外,划分是相当微妙的;成对相似的函数类可以落在相反的一边。其中一对,我们将详细研究,包括一种特殊的分离,称为单调分离,和一类函数称为奇偶函数。

  单调分离是一种变量不能被否定的分离。例如,分离物x1或x4或x6是单调的。在这种情况下,它可以仅由其中出现的变量的集合{x1、x4、x4、x6}来指定。给定n个变量,我们可以定义2n个单调的分离,因为每个变量都有选择是否包含它。函数的输出是“true”或“是”,只要至少有一个变量是正确的。例如,如果一棵树每天的阳光超过4小时,或者每周接收超过一升的水,或者检测到附近的相关植物,它可能会开花;同样,如果其他三种蛋白质中至少一种已经存在于细胞中,就可能产生一种蛋白质。

  奇偶校验函数同样用变量的一个子集来定义,例如从大小为n的集合中选择的{x1、x4、x6}。同样,有2n个可能的功能。与单调分离不同,当奇偶函数为真(或值为1)时,奇偶函数返回“true”或“是”或“1”。(我们在这里调用其他可能的值0还是−1并不重要。)

  在任何一种情况下,进化算法的问题都是收敛到未知的隐藏理想函数,如果有一个,从2n种可能性中,只有多项式资源。在这两种情况下,目标函数都是由一个隐藏的子集指定的,例如,{x1,x4,x6},这是算法不知道的。对于这两个问题,如果n很大,比如20,000种,就没有可能彻底测试所有的2n种可能性。假设输入的分布是均匀的,所有2n个可能的输入值都以相同的概率发生,1/2n,我们可以证明单调的分离是可进化的。做同样的假设,我们可以证明奇偶函数不是。

  一个产生变异体的简单算法可以用来表明单调分离是可进化的。现有分离的变体是通过将分离中的现有变量交换为新变量、删除变量或添加变量而产生的。将这些变体与其性能进行比较。可以表明,如果从均匀分布为例,则收敛速度与理想函数一样快。但一般都不是这样的。维塔利·费尔德曼已经证明,没有一种适用于所有分布的单调分离(或连接)的进化算法。

  与分离的积极结果相反,奇偶函数在我们的达尔文模型中,即使对于例子的均匀分布,奇偶函数也是不可演化的。搜索2n个可能的函数集需要指数级的努力,并且可以证明没有比这更有效的替代方法。正如在第3.5节中所讨论的,证明像P=NP这样的负计算结果超出了我们目前的能力。这里描述的可演化性模型包含了计算,但我们对它有一个显著的负面结果。原因是仅用统计或信息理论论据证明了负结果。它直接从迈克尔·卡尔斯对统计查询模型的一个相应的负结果中得出。

  差距是不可进化的,因为对达尔文进化的统计约束,即只有在分布上的聚合行为才能被利用(而不是单个例子的性质),排除了差距的可进化性。(为了进行比较,我们注意到,与之形成鲜明对比的是,同样的问题是PAC可学习的,使用了一种基于线性代数的算法,该算法确实检查了单个例子的细节。)

  当然,生物学上的任何证据表明,在地球上的进化过程中发现了大量变量子集上的奇偶性函数,都将与我们在这里的模型的有效性相矛盾。然而,似乎没有这样的证据,这种缺失是一致的,可以被我们的理论预测。事实上,任何关于奇偶性函数在生物学上是不自然的建议都只支持这个理论。

  我们人类已经进化了,可以计算任何固定的、已知的1和0集,即其中100个,这一事实并不矛盾。为此,我们只需要一个计数的能力,这就足以计算这100个特定数字中的1s数是奇数还是偶数。计数很容易。发现一个变量的子集,其中真实值数的奇偶性是一个有益的行动准则要困难得多。

  奇偶函数不可进化的说法似乎有些推测。我真的是说这些东西不可能在达尔文原则上发展吗?答案是肯定的——没有一种多项式时间进化算法可以发现一个具有任何显著成功概率的任意隐奇偶校验函数,如果这些例子来自均匀分布。当然,当这里说进化算法时,我有一些明确的想法,也就是我所描述的进化的定义所捕获的过程。正如前面所强调的,一个关键的问题是,它是否是一个稳健的计算模型,从某种意义上说,试图捕获相同现象的其变体可以被证明没有更大的表达能力。我们希望有一些保证,即模型的结果确实对应于一个鲁棒现象的性质。幸运的是,现在有一些结果证实了在布尔函数进化变化下的这种鲁棒性。此外,即使我们考虑实值函数,正如我们在下一节中所做的一样,我们仍然不能绕过不可能的证明。

  人们可以问,奇偶校验函数不能被任何达尔文过程进化的断言是否与图灵关于停止问题不可计算的断言具有相似的性质。这两种说法都被证明了关于某些计算模型的数学事实。正如我们前面提到的,Godel认为关于可计算的已证明的语句是“绝对”语句,因为它们独立于所使用的形式主义。我们关于平等不可进化的断言会达到类似的绝对地位吗?我相信,这个问题的答案取决于一个问题:这个否定陈述可以被证明的进化模型是否会被接受为达尔文进化的鲁棒模型,就像计算的图灵机一样。我们将在接下来的一节中看到,对进化的稳健性并不是那么简单。

6.9真实值演化

  到目前为止,该公式的一个局限性是,它只指布尔函数,或者只有两个可能的值,无论是真/假,是/否,还是1/0。蛋白质网络是否是布尔值而不是实值还不清楚,但试探性的答案是肯定的。对于某些蛋白质来说,信息可能只是它们是否被表达,但对于其他蛋白质来说,被表达的量似乎很重要。后一种情况为扩展进化模型提供了强大的动机,以允许数值或实数量,而不仅仅是布尔的真和假。

  还有第二个原因,它源于这样一个事实,即找到所有分布的布尔类,而不仅仅是特定的分布,如均匀分布,几乎不成功。正如我们所看到的,即使是连词也不是那么容易进化的。机器学习在实践中的有效性很大程度上依赖于使用对分布变化有弹性的算法,而不是过于专门化的算法。如果每个真实世界的分布都需要一个单独的算法,那么学习就不是一个强大的自然现象。这种对不同分布的弹性对于进化的合理解释都同样重要。

  然而,超越布尔人,带来了一些新的并发症。如果你的蛋白质在3.7级表达,那么环境根据3.7是否次优来惩罚固定数量的你是一回事。取决于3.7与最佳值的距离完全是另一个惩罚,例如,它可能是1.8。在一个世界里,惩罚可以以这种方式承担一般的数值,可能能够向不断发展的实体提供更详细和微妙的反馈。因此,它可能支持更强大的进化机制。但是,对于这一个更通用的模型,需要重新定义性能函数。

  这是一项有趣的任务。对于每种情况x,让基因组给出一个值g(x)而不是理想值f(x)的惩罚或损失将是损失(g(x)、f(x)),其中损失是某个函数。不幸的是,这个损失函数可能有多种形式。也许是这些值的差异,在上面的例子中,1.9中。也许它应该是差异的平方,即3.61,或者又可能是别的东西。如果f和g只能取两个值(如−1和1),则差值为0或一个固定的非零值(在这种情况下为2)。对于重值函数,不采取最优行动所遭受的损失的问题是由环境和不断发展的实体逐个决定的。不同基因的损失功能可能会有所不同,目前尚不清楚哪些损失功能是合理的。PAC学习理论的本质是对世界做出最小的假设。为了获得这样一个最小假设理论,我们似乎需要证明进化算法在另一个新的意义上也是鲁棒的——对于非常一般的损失函数类是收敛。我们很快就会看到,这确实是可能的。

  假设现在我们有一些损失函数。我们应该如何定义性能?我们将再次取不同的x值(例如,蛋白质浓度组合)的损失的总和,每个值都根据该组合发生的概率进行加权。如果从所有可能事件的分布D中随机选择组合x:Perff(g,D)=预期tedValuex∈D(损失(g(x),f(x)),这可以等价地表示为损失的概率期望值。注意,在这个性能函数的实值定义中,随着损失函数取代相关函数,性能随着g接近f而下降,而在第一个定义中则上升。这种差异是为了方便。

  研究实值反馈能力的第一步是由洛伊佐斯·迈克尔在学习布尔函数的背景下采取的。他的中间假设取了数值,但最后的目标是计算出目标布尔函数的近似值。这种方法被维塔利·费尔德曼进一步得到了广泛的发展,他表明,对于广泛的损失函数,所有的SQ都可以进化到所有的分布。这是一个关于进化力量的强大结果,因为它表明进化可以与一个重要的学习类相媲美。然而,它假设有体对其实值假设的函数类进行评估和获得反馈,这可能与最终的布尔目标类有很大的不同。PaulValiant给出了一个完全实值的模型的定义,它还有一个重要的进一步特征,它适用于一组基因组g=g1,...,gn和一组理想函数的f=f1,...,fn。如果我们要同时建模许多功能,比如我们的蛋白质的20,000个左右的表达水平的功能,这是必要的。毕竟,单独谈论单个蛋白质的理想功能是没有意义的,因为随着其他蛋白质的表达水平的改变,第一个蛋白质的理想行为也可能发生改变。举一个更日常的例子,如果一个人想把一个人的卡路里摄入量减少到一定的水平,那么减少一餐的次数和减少每餐的食物量都是相关的行动,但在对方不知情的情况下,两者都不能进行优化。

  对于蛋白质和饮食的例子,整体讨论所有函数集合的理想函数集f是有意义的。此外,在重值设置中,自然会讨论这个多维设置中的损失函数,如图6.1所示。在这里,函数集f和g的值将是高(也许是20000个)维空间中的点,由它们所有组成函数的值决定。一个实体根据其基因组决定的值而不是理想值进行行动的损失,将取决于这两点的距离的某种测量方法。当处理单个基因或功能时,这种损失可能是两点之间的距离、距离的平方或其他一些测量值。

  在这个模型中,保罗·瓦利安特显示出了一些相当大的普遍性的积极结果。21他特别地证明了自然类的实值函数,包括线性函数,如f=a1x1+…+anxn(更一般的,常数的多变量多项式),都可以被证明适用于例子发生在有界区域的所有分布,以及非常一般的损失函数,即所有凸损失函数。(距离函数的距离和平方都是凸函数的例子。)此外,这些结果不仅适用于单个功能,而且也适用于同时进化的一组功能,比如在我们所描述的意义上,每个基因都有一个。这种一般性的正进化性结果的存在使得相信达尔文进化在这里给出的具体计算公式中确实是可行的。

  图6.1该图说明了当变量和目标函数都取实数值时,可演化性的定义。除了比布尔模型更普遍之外,一个概念上的优势是,可以很自然地考虑一组同时作用于输入x的函数,并评估该组合与理想的动作组合相比所遭受的损失。例如,指定大约20,000种蛋白质的表达水平的输入函数集可以评估它们的组合适应度。对于该组合,我们可以将损失量化为这个高维空间中理想组合f(x)和实际1g(x)之间距离的某种度量。

  许多问题仍未得到解决,特别是以下的紧张局势。一方面,一些进化算法简单而有效,但只能证明其有限的通用性,例如,对于分布或损失函数。另一方面,有些算法效率较低,具有更大的多项式边界,但可以证明更普遍地有效。一些非常简单的算法可以证明对二次损失函数的特殊情况是有效的,而只有更复杂的算法是对更一般的情况。更好地理解进化机制的力量仍然是未来的一个重要目标。

6.10为什么这种理论如此不同?

  在他的《物种起源》中,达尔文试图整理所有可以找到的支持他的进化论的论点和证据。他的章节标题描述了他使用的材料:“驯化下的变化”;“自然下的变化”;“为存在而斗争”;“自然选择”;“变异法则”;“本能”;“杂交”;“关于地质记录的不完善”;“关于有机生物的地质继承”;“地理分布”;“有机生物的相互关系:形态学:胚胎学:基本器官”。他还有一章叫做“理论上的困难”,它讨论了物种形成等问题:为什么生物体聚集成不同的物种,而不是有一个连续的品种?在后来的工作中,他研究了性选择的作用。他用所有这些角度来论证自然选择与所有的证据是一致的,也是对证据最简单的解释。

  但请记住佩利在第二章中引用的反对意见,即生命形式太复杂了,不可能进化出来。达尔文和他的继任者一样,都避免了直接面对这个问题。证明自然选择在定性上与证据一致是一回事;在数量上与证据一致,这是另一回事。

  目前进化理论中传统智慧的一个弱点是,它在没有证明该机制就足够的情况下,赋予了竞争本身的中心性。竞争可能是必要的,但他说这并不能解释一切。人们需要一个理论来解释为什么竞争会增加功能。我们需要解释进化是如何可能的,我们是如何从没有生命,或者从非常简单的生命,到像我们今天在地球上发现的那样复杂的生命。这是个大问题。我们还需要一个理论,以解释电路适应不断变化的环境的速率。我们的进化公式通过给出从一个函数进化到一个更好的函数所需的资源的边界来直接解决后一个问题。它还通过给出一个新的附加电路的演化界限,部分解决了这个大的问题。显然,各种不同的回路类型在生物学中发挥着作用,目前还不清楚所有这些都应该如何形成进化。例如,我们不知道新蛋白质的进化应该如何用电路术语来表述。

  这里描述的进化模型和以前研究过的模型之间有许多差异。大多数以前的模型都强调,进化发生在包含广泛基因组多样性的种群中。这里我有一个基因组产生许多变异,经过一些竞争,一个基因组成为唯一的赢家,然后循环重复。

  我们有理由问,为什么在这个模型中没有提到不同的种群。答案是它可以添加,应该是一些额外的力量可以证明。如果能够证明这种种群效应给出了更丰富的可进化函数,那么这将是一个重要的结果。目前的迹象表明,虽然一般情况不是这样,但有性繁殖种群的多样性可能允许以牺牲更大的种群规模为代价来减少代数。

  然而,单基因组模型可能就足够了。我们可以简单地将一个基因组不是解释为一个生物体的基因组,而是解释为一个种群中许多个体生物体的所有基因组的总和。这样做的优点是,一个群体中的个体基因组有许多不同的方式相互作用,这些都可以被描述为这个群体中的适当机制。例如,无性繁殖和有性繁殖在地球上都很成功,尽管后者被认为更成功。第三种相互作用是横向或水平基因转移,即信息在彼此不是后代的个体之间交换。不同细菌之间的基因转移被认为是常见的,也是药物耐药性传播的一个因素。一些人认为水平基因转移在单细胞生物的进化中起着重要作用。所有这些形式的基因转移都可以看作是对一个群体基因组总数的计算,对单个基因的突变也可以。单基因组模型可以通过产生不同的变异的内部机制来包含所有这些。

  进化的很多方面我们根本没有解决。基因库的多样性可能是一种很好的防御机制,以抵御意外,因此对生存至关重要。生存无疑是必不可少的,但它本身并不能解释日益增加的复杂性——并不是生存所需的所有机制都必须有利于增加复杂性。这里的分析可以被看作是一种将进化的复杂性从生物学的许多其他方面分离出来的分析。

  我们的理论的另一个方面是,它以一个静态的世界为前提。它考虑了如何在世界保持固定的同时完成目标追求的一个阶段。这与这样一个观点是一致的,即一旦目标可接近和有益,向它的进化将相当可预测和迅速地进行。然而,该理论也可以适应缓慢变化的世界。

  我已经从学习的研究中找到了一个解决办法。回想起来,这是一个明显的地方。毕竟,机器学习是研究如何在没有设计者的情况下创建复杂机制的一般领域。达尔文和华莱士正在调查一个非常重要但特殊的案例。

  达尔文理论现在普遍存在于生物学和许多其他学科中。在生物学中,进化不仅与达尔文机制有关,而且还与它明显的副产品,即地球上的生命历史有关。这段历史充满了许多戏剧性的故事,从寒武纪爆炸和二叠纪灭绝,到可以绕地球发射到轨道上的生物的出现。我所关心的并不是记录这些事件的历史。它只能理解一个问题:什么机制如何解释这场非凡的戏剧?