第19章 进化:没有设计师的适应算法 107
核心判断 生命应对不确定世界的办法,不是算准环境再设计出合适的物种,而是同时下很多注、让环境来筛。多样性在这里不是低效——正好相反,它是一套对未知的下注结构:不知道明天会变成什么样,就先备好各式各样的变体,哪种碰巧合用,哪种就留下来。这套办法没有目标、没有蓝图、没有谁在掌舵,却是唯一能在算不准的世界里持续适应的机制。它的名字叫进化,而它最该被记住的一点是:它是筛选,不是设计。 机制 进化的算法只有三步,简单到不像能造出眼睛和大脑:变异、选择、保留。变异负责制造差异——复制不完美,每一代都撒出一批带随机改动的变体,绝大多数没用甚至有害,但这不重要,重要的是差异被源源不断地生产出来。选择负责淘汰——环境作为一道筛子,让活不下去、生不出后代的变体出局,让碰巧适应的留下。保留负责记账——活下来的把自己的配置传给下一代,于是有效的改动被累积,不必每代从头再来。三步循环,没有第四步,也不需要有谁知道"应该"往哪变。 关键在于顺序:变异在前,选择在后,而且两者互不通气。变体不是照着环境的需要定制出来的——它们在环境提出要求之前就已经存在,是盲目撒出去的。环境不参与设计变体,只参与事后筛选。这个"先盲目生成、后无情筛选"的结构,正是它能对付未知的原因:一套需要先知道答案才能行动的系统,遇到全新的问题就瘫痪了;而进化根本不预设答案,它靠手里备着的多样性去撞答案。这就是为什么把多样性当浪费是根本性的误读——那些此刻看着没用的变体,是系统为"还没出现的环境"预付的保险费。 再把"下注结构"讲实。一个物种如果所有个体都长得一模一样、对环境的反应完全一致,那它其实是把全部筹码押在了"环境不变"这一个判断上——环境真变了,团灭。反过来,种群内部保有基因多样性,等于同时押了很多注:抗热的、抗寒的、抗某种病的、耐饥的,平时看谁都不比谁强,可一旦环境往某个方向猛推,总有一小撮原本不起眼的变体正好扛得住,种群就从那一小撮重新长回来。多样性的价值不在平均值——按平均值算,特化的、把资源全投给当前最优解的种群往往更"高效";多样性的价值在尾部,在那个谁也没预报的极端事件到来时,它是唯一还留着火种的配置。这条逻辑和第 16 章的遍历性、第 4 章的厚尾是同一副骨架:终局由极端值决定,所以真正该优化的不是顺境里的效率,是逆境里的存活。 进化里还有一层常被跳过的机制:它不追求最优,只要求够用且能繁殖。筛子问的从来只有一句"你能不能活到生出后代",从不问"你是不是最好的设计"。所以生物身上满是将就的、次优的方案,因为进化只能在现有结构上做微小改动,改不动已经定型的地基,就像不能推倒一栋住人的楼重盖、只能一间间改。这个"就地将就"的性质,恰恰证明了它不是设计而是筛选。 常见误判 第一个,也是最需要连根拔掉的:把进化理解成"进步",以为生物在越变越高级、越变越复杂、朝着某个更好的方向前进。这是彻头彻尾的误读。进化没有方向,也没有"高级"这个刻度——细菌不比人类"低等",按生物量和存活韧性算,它们才是这颗行星上最成功的生命形式。变复杂不是趋势,只是可能性之一:寄生虫的进化方向是变简单、丢掉用不上的器官,因为对它们那才是适应。人容易把进化看成进步,根子是幸存者视角——只看得到活下来的这条支线,看不见旁边被淘汰的无数支,误以为这条线是"目标"。可适应是对具体环境的,不是对某个绝对标准的:恐龙曾经是最适应的,一颗陨石就把这个"最优解"清零了。离开了"对什么环境","高级"二字没有意义。 第二个误判:以为进化有目的——长颈鹿"为了"吃高处的叶子而把脖子拉长。这种目的论在日常里方便,在机制上完全错。没有哪个变异是"为了"某个目的发生的,变异是盲目的;是环境事后筛掉了脖子短的、留下了脖子长的,结果看起来像是"为了吃叶子"。把结果当成原因、把筛选倒读成设计,是理解进化时最深的一个坑:掉进去就会以为自然界处处有智慧、有安排,而那套看似精巧的"安排",全部是盲目试错加无情淘汰的沉淀,没有一处出于预见。 第三个:以为进化很慢、跟当下判断无关,是博物馆里的事。但变异—选择—保留不是生物专利,它是任何"在不可预测环境里持续适应"的系统的通用解——市场淘汰公司、试错筛选想法、免疫系统识别病原,走的都是这套逻辑。看懂它是筛选而非设计,就拿到了一把钥匙:凡是环境不可预测、又必须持续适应的地方,能干的不是"设计出正确答案",只能是"搭一个能高效试错和筛选的结构"。 失败路径 不懂进化是筛选、以为可以靠设计一步到位,会怎么死?标准死法是过度特化加零多样性:把全部资源押在当前环境的最优解上,砍掉一切看似冗余的变体和后备方案,因为它们"拉低效率"。顺境里这套打法会赢,而且赢得漂亮,效率碾压那些还养着一堆"没用"变体的对手——直到环境拐弯。特化得越彻底,越是把命拴在了"环境不变"这一个赌注上,而这个赌注在厚尾世界里迟早输(A2)。单一品种的农作物大面积种植,一种新病害就能引发绝收;一家公司把全部产能压在一个爆款、一个大客户、一条技术路线上,需求一转向就整体崩塌。这条路的隐蔽之处在于:淘汰多样性的每一步,当时都表现为效率提升、都有财务数字撑腰,代价要到环境变化那天才一次性结清,而那时已经没有火种可以重来。 另一条死法是错把进化当进步,笃信"方向对了就会一直好下去",把过去的适应当成未来的保证。历史上适应得最好的物种,往往是环境突变时死得最快的——因为它调到了和旧环境严丝合缝,一点余地不留。个人和组织版是把一次成功路径当成永恒正确方向、不断加码,直到那个曾经让你适应的东西变成绑住你的东西。这正是第 5 章优势半衰期在生物尺度上的回响:没有哪种适应是终点。 设计动作 一,凡是重要而环境不可预测的领域,别追求一次设计出正确答案,改成搭一个能持续试错和筛选的结构。具体三问:我在这件事上有没有同时下几注、还是全押在一个判断上?失败的变体能不能低成本淘汰、不拖垮整体?活下来的经验有没有被记录和累积、还是每次从头再来?三问对应变异、选择、保留——缺哪一环,这套适应算法就转不起来(试错的工程化细节在第 30 章)。 二,给自己的关键配置做一次"多样性审计":收入来源、能力组合、信息渠道、核心关系,是不是都塌缩到了单一来源?单一在顺境里最高效,也最脆——它等于押注环境不变。有意识地保留一些"平时用不上"的冗余变体,接受它们拉低当下效率,因为它们是为未知预付的保险费(余量水位的操作在第 24 章)。 三,定期问自己一个反进步的问题:我现在最引以为傲的那个"最优解",是对哪个具体环境的适应?那个环境如果变了,它会不会从资产变成负债?把"我很适应"和"我很安全"分开——前者是对当下的,后者要求对变化留有余地。凡是让你严丝合缝适应当前环境、一点余量都不留的东西,都要标记为风险而不是成就。 反证与适用边界 如果有证据表明某个复杂适应结构是被一次性预先设计出来、而非经由变异—选择—保留的累积筛选形成的,本章的机制描述就要修正。就生命而言,这样的反例至今没有出现——所有看似"被设计"的精巧,追到底都是长期筛选的产物,"就地将就"的痕迹(视网膜、喉返神经这类绕路)正是没有设计师的铁证。适用边界有两条。其一,变异—选择—保留这套算法要能工作,前提是三个条件齐备:差异被持续生产、筛子真的在淘汰、有效的东西能被保留下来——缺任何一条,它就退化成盲目乱撞或原地打转,不再产生适应。其二,进化解决的是"在不可预测环境里持续适应",不解决"如何快速达到一个已知的最优目标"——目标已知、环境可算的问题,直接设计远比试错高效,那是可知域里的事,别拿本章否定一切规划(可知域划分在第 13 章)。进化不预测,但也不反对在能预测的地方预测。 连接 第 4 章(厚尾)、第 16 章(遍历性):多样性押注的收益全在尾部、由极端值决定,是同一副骨架。第 5 章(优势半衰期):没有终点的适应,环境一直在换筛子。第 20 章(冗余):多样性是冗余在种群层面的形态,两章互为表里。第 30 章(小步试错):把进化算法工程化到个人决策上的操作版。第 32 章(承接机会):留着火种,就是为不可知的机会保有承接力。公理 A2、A5。书库:L4《系统》(进化是带筛选的反馈回路);L3《误判学》(目的论错觉、幸存者偏差是本章两个误判的偏差本体);L2《崩溃》(过度特化种群的崩溃动力学)。