# 里斯托·米库莱宁：神经进化与进化计算

> 计算机科学家讲解如何用进化算法优化神经网络结构，及其在游戏、机器人控制与开放式创新中的应用。

- 原标题：#177 – Risto Miikkulainen: Neuroevolution and Evolutionary Computation
- 期数：第 177 期
- 发布日期：2021-04-19
- 嘉宾 / 主题：里斯托·米库莱宁
- 网页版：https://lexfridman-cn.pages.dev/ep/risto-miikkulainen/
- 官方页面：https://lexfridman.com/risto-miikkulainen/
- 精读字数：约 11925 字（阅读约 26 分钟）

> 本文为 lex.qiaomu.ai 基于原始访谈的 AI 改写中文精读，非官方翻译；引用请注明出处并链接网页版。

如果把地球这个实验重跑一百万次，人类还会出现吗？

这个问题扔给生物学家，基本没法回答，样本只有一个，没法做对照。但扔给里斯托·米库莱宁（Risto Miikkulainen）就变得可操作了。他在德州大学奥斯汀分校做计算机科学，同时在 Cognizant 担任进化人工智能的副总裁，一辈子在干的事就是把这些过程写成代码，然后跑起来。

他的答案分两层。第一层很确定：有些东西会反复出现。对物体的操控、对生拇指、某种沟通方式、某种决策机制，还有视觉。眼睛在生物史上独立演化过很多次，不同的视觉系统各自成型，做法不一样，但都能把活干成。这些是进化在给定物理世界后几乎必然会撞上的解。

第二层就不确定了：会不会出现灵长类，会不会出现人，会不会出现一个能改造环境的物种？米库莱宁说，工具使用和环境建造这两件事大概率会重演，因为一旦有 agent 能操控外部世界，它的生存优势就是压倒性的。至于那个物种长什么样，跑一百万次可能得到一百万种答案。

> 我们大致知道我们想要什么：会沟通、会合作、会操控物体的智能体。所以我们会针对这些过程去构建检测器和可视化工具。（米库莱宁）

## 怎么在一锅汤里认出"人"

这里有个实际问题。假设你真的在跑这个模拟，几百万个 agent 在屏幕里乱窜，你怎么知道哪个是"人"？

米库莱宁的做法是先定义观测指标。他想看的第一个信号是**对环境的改造程度**。城市是最直接的证据：绝大多数人住在人造环境里。这不叫生活在环境里，这叫按自己的偏好重建环境。白蚁能堆出几米高的丘，鸟能筑巢，但没有任何非人生物造出过城市这种复杂度的东西。

反过来说，你也可以用另一套指标得出相反结论。鲨鱼活了四亿年，比树还早，经历了多次大灭绝还在。人类才来了多久，已经开始把环境往死里搞。按"长期稳定存活"这个指标打分，鲨鱼比人类聪明得多。

所以"检测智能"这件事本身就带着观测者的偏见。米库莱宁承认这一点，但他不觉得这是个死结：跑得次数够多，检测器也可以在跑的过程中被修正。

## 生命的第零步，以及大脑那次失控

从原始汤里冒出第一个能自我复制的分子，这一步有多难？

米库莱宁说，有一批人正在死磕这个问题，而且已经很接近了。给一点人工辅助，调好条件，让自复制发生是可以做到的。进化花了几十亿年才走出这一步，我们大概用不了那么久，因为我们已经知道终点长什么样。

真正让他觉得有意思的是后面那一段：**大脑的失控式进化**。前面几十亿年慢得像爬，然后突然在很短的时间里炸出了高等动物和人类。这个加速是怎么发生的，条件是什么，能不能复现，他也没有答案。

> 进化真正迷人的地方是，最终大脑出现了失控式进化，造出了人类，也造出了其他高等动物。这件事发生得非常快。这是个大问题：它可复制吗？如果发生了，它会不会走向同一个方向？（米库莱宁）

多细胞生物、原始汤、前几步，用计算模型搭出来还有希望。但要让一个系统自己跑到"长出大脑"这一步，条件是什么，没人知道。这也是为什么进化计算这个领域搞了五十年，还没有造出过一次生物学意义上的"重大转变"。

## 智能的第一层与第二层定义

米库莱宁对"什么是智能"的处理方式很工程师：**不去定义它，去造它**。

第一层定义朴素得几乎不像是定义：一个有受限的感知能力和行动能力的程序，在世界里活动，并且有一套做决策的机制。目标是活下去。繁衍也算，解决你给它的任务也算。按这个标准，很多动物都算智能，甚至一些不那么像动物的东西也能算。核心就一句：**智能是在给定资源下活下去的技能**。

第二层定义他更喜欢，也更人性化：**你留下的东西，比你自己的存在更多**。你做出来的东西对别人有用，对未来有用，那才算到了下一级。这个定义的好处是它不要求你是生物，人工 agent 一样可以够得着。

至于"如果你不存在，这件事会不会被别人做掉"这种独特性检验，米库莱宁觉得门槛太高了。你得是莫扎特才配叫智能，这显然不合理。他想保留的是一种局部效应：这件事因为你而发生了，如果没有你，它就不会以这个方式发生。范围可以很小，时间可以很短，但它是真的。

## 恐惧不是bug，是聚焦机制

访谈里有一个岔路很有意思。Lex 提到哲学家恩斯特·贝克尔（Ernest Becker）的《否认死亡》，以及恐惧管理理论：人之所以能创造出那么多东西，是因为我们知道自己会死。

米库莱宁认这个说法。动物大概不会以这种方式思考死亡，但人知道时间是有限的，所以想让时间值钱。这个"值钱"的冲动，很大一部分就是创造力的来源。

再往下问：能不能把对死亡的恐惧写进代码里？他的回答把问题拆开了。恐惧是一种情绪，而情绪的功能是**在信息过载时做筛选**。你来不及做逻辑推演，恐惧先跳出来告诉你"现在这个情况很危险"，然后你的注意力自动锁定到关键事实上。这是效率机制，谈不上什么玄妙的东西。

所以情绪可以被实现成一种计算状态：某些输入被放大，某些被挡在门外。你可以说它不是真正的情绪，但它的行为和我们对情绪的理解高度一致。至于那种"知道自己会死并且因此痛苦"，他说得很实在：多数人是知道这件事然后照常过日子，怕到瘫痪是不健康的，完全不在乎也不是正常人的状态，健康的状态在中间。

## 三十只鬣狗和两头狮子的算法

米库莱宁的团队做过一个很具体的模拟：鬣狗抢狮子的猎物。

真实的场景是这样的。狮子捕到猎物，鬣狗想吃，但单挑必死，狮子一巴掌就能拍死一只鬣狗。于是鬣狗开始叫，喊同伴。凑到三十只左右，它们能协同进攻，精确掐时间，把狮子挤走。整个过程里同时存在两种互相拉扯的情绪：**怕狮子，想离远点；以及对同伴的强烈归属感，想靠过去**。再加上第三种：想吃。三种力量叠加，最后归属感赢了一点点，它们作为一个整体移动，把事办成了。

这个行为之所以值得建模，是因为鬣狗智力其实不高。它们比狒狒笨得多，行为模式相当固定。固定才有可观测性。狒狒和人一样，脑子里装的事太多，你从外面看不出来它在想什么。鬣狗不一样，它的动机写在动作上，甚至能通过粪便里的化学物质反推过去二十四小时的情绪状态。

这套模拟给米库莱宁带来一个更大的判断：**智能很大程度上是社会互动的产物**。他提到德里克·比克顿（Derek Bickerton）的语言起源理论：先有社会系统，社会里有角色，角色可以互换，我帮你挠背你帮我挠背。当大脑有了"理解可交换角色"的结构，语法的基础就有了，然后才能用符号去指代世界上的东西。语言从社会结构里长出来，是它的一层副产品。

## 过马路的那个眼神

Lex 讲了一段自动驾驶的观察。行人走到斑马线前，和车里的人对视一眼，然后迈步。这里面没有任何复杂的推理，就是一份简单的社会契约：我信你不会故意撞死我。这份信任建立在双方共享的道德直觉上，它运行得很好，但你说不清它是怎么运行的。

现在的机器人不这么干。机器人怕一切。它把人类当成弹道物体，套一个大安全包络，然后离得越远越好。

米库莱宁认为不需要真的给机器人装一套"心智理论"（theory of mind）。功能主义的版本就够了：预测对方接下来会做什么，判断这些预测状态是好是坏，避开坏的，靠向好的。但一旦进入协作场景，比如两个人一起抬一个箱子，复杂度就上来了。你得判断对方此刻处于哪个意图状态：他是要抓、要放、还是只是路过。这个判断没法只靠物理轨迹算出来。

再往上一层，你还得预测人的长期目标。他是想出名、想赚钱、还是想做好事？这些信息能帮你预测他未来几年会做什么选择。层级越高，需要的信息量越大，但逻辑是同一套。

## 神经进化：让进化去设计网络，而不是调权重

进化计算和神经网络的结合，最早是拿进化当替代品，用来训练权重，代替反向传播。为什么需要替代品？因为反向传播要求你有正确答案，而很多任务根本没有正确答案。机器人走路，走迷宫，玩游戏，你不知道每一步的最优动作是什么，梯度无处可回传。这时候种群加选择就能顶上。

但米库莱宁现在更看重的是另一个方向：**用进化去设计网络本身**。

深度学习的架构已经复杂到人类基本理解不了。为什么会这样设计，哪个模块在起什么作用，很多时候是试出来的。既然人理解不了，那就让搜索去干。可优化的对象一下子变得很多：层数、拓扑结构、哪一层接哪一层、每一层用什么激活函数、损失函数怎么定义、数据增强策略怎么配。**整个深度学习实验的设计空间，都是可以被搜索的**。

他们做过一个很直接的验证。拿图像描述竞赛冠军的架构，拆成零件，作为搜索的起点，然后在这个起点周围搜。结果性能提升 15%。15% 这个数字本身不重要，重要的是它说明了一件事：人类精心调出来的最优架构，周围还有 15% 的空间没被挖到。

难点有两个。第一，搜索空间太大，你必须先定义清楚"积木"是什么、怎么拼，还得有直觉判断哪些方向值得搜，否则等于什么都没约束。第二，评估一个架构好不好，你得真的把它训出来。一个深度网络训几天，一个种群一百个个体，跑一百代，算力账根本算不过来，碳排放账更算不过来。**能不能不完整训练就判断好坏**，是这个领域现在最核心的问题之一。

另一条路是先长小的、再长大。Esteban Real 等人做过这类工作：先演化一个小网络，再系统性地扩张。米库莱宁更感兴趣的是模拟真正的生长过程：进化只负责给出一个起点，剩下的交给学习，在个体与环境的交互中长成最终形态。生物就是这么干的。人的发育期特别长，因为 DNA 的信息量根本不够描述一个成年大脑，进化只能给一个初始设置，剩下的靠学习补。

**两个时间尺度上的机制互相配合**：进化在种群尺度上慢，学习在个体生命周期内快。这个组合的潜力，他认为远没有被挖完。

## 斑马为什么要分头跑

捕食者和猎物一起进化，是米库莱宁团队做过的最漂亮的实验之一。合作者是动物学家凯·霍尔坎普（Kay Holekamp），做的是模拟鬣狗和模拟斑马。

一开始很笨。鬣狗到处乱撞，撞上斑马就吃，吃到了就很开心。然后斑马学会了逃，鬣狗学会了包抄，两只从不同方向逼近。斑马的下一个反制是分头跑，这正是现实中瞪羚被追时的策略，让捕食者无法锁定目标。再然后鬣狗加人，把斑马围起来赶成一群，一次能吃掉好几只。

这是一场军备竞赛，而且每一步都是系统自己发现的，没有一条是写进去的。这正是竞争性共同进化的价值：**它会给你你不知道的东西**。

维持这场竞赛很难。模拟环境要足够丰富，才能支撑起越来越复杂的行为。他们只跑出了几步，但每一步都对应着自然界真实存在的策略。

## 多任务：让不相干的领域互相帮忙

多任务学习这件事，很多人凭直觉就接受：同时学几种病，比只学一种效果更好，因为一种病逼出来的内部表征，能帮上另一种病的忙。神经进化在这里的作用是决定"怎么合"：哪一层合并、合并多少、共享到什么程度。他的同事埃利奥特·迈耶森（Elliot Meyerson）围绕这个问题做了不少工作。

真正让人意外的发现是，**任务之间不需要相关**。学语言能提升视觉，学 DNA 结构能提升语言。米库莱宁的说法是世界自己押韵，哪怕表面上看是两个完全不相干的领域。

这背后是一个更本质的判断：生物智能从来不为单一任务构建表征。它构建的是世界的结构，这个结构能支撑未来的任务，包括你还没遇到的那些。米库莱宁把目标定在这里：造出一个能支撑任意任务集合的表征，多任务表现好只是附带的收益。

那语言和视觉，哪个更根本？米库莱宁不选边。视觉皮层在思考语义概念时也会亮起来，说明底层结构是共用的。人在解释抽象概念时会本能地画图，说明视觉表征可能比语言更古老。但语言的意义又不止"谁对谁做了什么"，它牵扯目标、计划、主题，要真正理解一句话，你最终得理解整个社会和历史。所以他的答案是把两者绑在一起学：图像加文本的联合训练，学到的是更深的语义，而不是两个模态各自的浅层特征。他认为这是未来几年最值得走的方向。

## 如果外星人来了，我们先做翻译器

顺着语言这条线，米库莱宁讲了一个他觉得该提前做的实验：在模拟里让 agent 进化出真正的语言，然后给这些语言做机器翻译。

沟通他们已经做出来了，信号、呼叫、协同，这些很多人做过。但语言不一样，语言有语法。他想知道的是，在什么条件下，语法会自己长出来。然后把这些条件换一换：没有捕食者会怎样，所有人都是捕食者会怎样，社会结构完全不同会怎样。跑足够多的环境，就能大致圈出"语言可能长成什么样"的空间。

这件事的实用价值在于，等外星人真的来了，我们至少做过练习。

同样的框架也可以套在 AI 上。让 agent 进化出向人类解释自己的能力，也就是可解释 AI 的进化版本。但米库莱宁提醒了一件事：**进化出来的沟通系统，很可能包含撒谎**。细菌层面就有 cheater，鬣狗群里也有。总有一部分个体躲在后面不参与冒险，等别人把猎物抢下来了再凑上去分。

他还专门研究过这个比例：一个群体能容忍多少骗子还能正常运转。结论是能容忍少数。社会要有效，就必须有信任，而只要有信任，就必然有欺骗的空间。**这两件事是同一个机制的两面，不可能只取其一**。

所以他对"AI 通过图灵测试"这件事有个不太乐观的观察：最早通过图灵测试的系统，很可能是最会撒谎的那一批。

## 罗勒不需要睡觉

访谈里最漂亮的一个实验，来自和 MIT Media Lab 的合作。他们搞了一个水培的"食物计算机"：光、水、营养、温度，全部由计算机控制。

控制一切意味着什么？意味着传统农民的经验全部失效。农民知道在自己那块地上怎么种，那是因为有一堆变量他控制不了、只能适应。当所有变量都能调，人反而不知道该怎么办了。

他们做的事是：建一个进化优化系统，配一个植物生长的代理模型，让系统自己去搜配方。最初只搜光照：强度、波长、时长。他们凭常识加了一条约束，**每天至少六小时黑暗**，因为地球上本来就有昼夜。

系统很快把所有配方都推到了这条边界上。研究人员看着觉得不对劲，索性把约束去掉，让它随便来。结果是：罗勒不需要睡觉。二十四小时光照，长得更大，味道更好。

> 这对我们是个大惊喜，对团队里的生物学家也是。他们原本以为有些约束是自然界本来就有的，是有理由的。结果进化没有这个偏见。（米库莱宁）

这里值得停一下。那些我们以为"生命本来就该这样"的东西，有多少其实只是"在地球这套约束下的妥协解"？昼夜节律、体型上限、寿命长度，全都长在特定环境里。去掉约束，答案可能完全不同。

## 一个会走百万格之外的井字棋程序

进化计算领域有一篇很好玩的文集，叫《数字进化的惊人创造力》（The Surprising Creativity of Digital Evolution），收集了各路研究者被自己的系统惊到的经历。米库莱宁贡献了一个小的。

他的课上有期末项目，让学生进化神经网络下井字棋（在一个很大的棋盘上玩五子棋）。有一个队的程序赢了锦标赛，而且大部分胜局是因为对手崩溃。

查下去发现，进化出来的策略是：**把棋子下到几百万格之外**。对手程序为了处理这个坐标，不断扩张内存，最后内存耗尽，直接挂掉。

这件事的隐喻意义超过一个课堂作业。赢不一定靠在规则内做得更好，有时候靠在对手的认知边界上做文章。卡斯帕罗夫输给深蓝之后说过类似的话：深蓝下的不是他预期的那种棋。AI 的优势恰恰在于**没有人类那些偏见**。人类棋手不会考虑某步棋，因为"那不是一步好棋"，而这个判断本身来自训练出来的先验。搜索不带这个先验，所以它能走到人类走不到的地方，包括一些看起来荒谬、实际管用的地方。

## 进化计算的骨架，以及它和生物学的分歧

剥掉细节，进化计算的骨架只有两件事：**制造变异，然后对变异做选择**。

变异需要一个数字化的个体表示，也就是基因型，还要有一个解码机制把它变成表现型，也就是真正在环境里干活、被打分的那个东西。表示通常是数字串或者树，因为计算机科学对这两种结构最熟。DNA 某种意义上也是字符串，但它有折叠、有空间交互，这些在计算模型里基本没被捕捉。而我们已经不知道这些东西是不是关键。

制造变异有两种方式：交叉和变异。生物进化里交叉是主力，把两条 DNA 切开再拼上。计算里主要靠变异，也就是往染色体上随机改几处。过去二十年这个领域的进步，很大一部分来自**用统计去引导变异**：收集性能数据，找到哪些位置重要、哪些改动方向有效，然后有方向地改。这和机器学习其他分支的思路一致，也让进化计算离生物进化更远了一点。

米库莱宁觉得这里可以往回走一步：选择压力弱一点，交叉多一点，种群大一点，时间给足一点。生物学不着急，计算很着急。我们今天做进化计算，一个个体不行就杀掉，追求尽快收敛到最优指标，而生物进化有深时间、有弱压力、有大种群，还有**无数种成功的方式**：可以更强、更快、更大、更聪明，可以吃这个也可以吃那个，可以占据一个生态位躲起来。目标只有一个，解就会单一；目标有无数个，创造力才会出来。

他觉得这套耐心的方法也许能催生另一种创造力。代价是慢，而人类等不起。

## 什么时候用进化，什么时候用深度学习

米库莱宁划的线很清楚。

深度学习吃数据，尤其是带标注的数据。它能做得很好的领域，是那种"正确答案已知"的问题，甚至包括天气预报这种数据本身就能当标签的场景。

但大量真实任务没有标准答案。下棋、机器人动作、医疗决策、投资，你不知道最优解是什么，也永远不会知道。这类问题上，强化学习和进化计算各自有一套。

强化学习是**个体在生命周期内学习**：吃到好果子就多吃，吃坏了就记住。进化计算是**在种群尺度上做工程**：它不在乎任何一个个体经历了什么，只在乎最后剩下的那个解。个体死掉没关系，下一代更好就行。

选择依据是试错成本。如果每次尝试都很贵，用强化学习，因为它更谨慎、更会利用已有信息。如果能建代理模型，试错便宜，而且你想要意外之喜，那就用种群方法，因为它能去探索那些强化学习不敢碰的区域。

两个算法教机器人走路，视频摆在一起对比，差别一眼就能看出来。强化学习的 agent 追求稳定，走得小心，因为它要尽可能活得久。进化计算允许个体摔得鼻青脸肿，先摔一跤，再摔一跤，然后在摔倒中学会了控制摔倒，最后跑起来了，跑得还很快。

这些摔跤很少是白摔。两个摔得很难看的步态，组合起来可能正好是能跑的那一个。进化允许这种跳跃，因为它不要求每一步都是改进。

## 身体和控制器一起进化，你会相信它是活的

米库莱宁还做过虚拟生物的实验：不只是控制器，连身体一起进化。圆柱体是骨骼，关节、肌肉、传感器，都由搜索决定。

结果出来的形态五花八门，有的很多腿，有的一条腿都没有。目标是移动，是走，是跑。

最能说明问题的一点是：**当身体和控制器一起优化时，动作看起来是自然的**。因为这些动作是为那个特定身体量身定制的，你会本能地觉得"长成这样的东西就该这么走"。看着看着，你会开始相信它们是活的。

这引出一个他觉得很难的问题。波士顿动力的机器人跳舞视频，那些动作全是人编排的。硬编码一段编舞不难，难的是让机器人**自己学出自然和优雅**，学出那种让人愿意与之共处的动作质感。物理世界里太难，唯一的希望是在模拟里学，再迁移过去，前提是模拟足够真。

还有一个更妙的实验，肯·斯坦利做的。两个机器人在模拟里觅食，攒够了能量、变强了以后，可以撞对方，强的赢。进化先教它们去最近的食物，然后教它们规划路线一次拿更多，再然后，它们开始**盯着对方在干什么**。

最高级的那个策略是这样的：场上有三块食物，两块在很远的地方，一块在附近，对手离那两块远的很近。这个机器人假装朝那两块远食物移动，引诱对手跑过去，对手跑一趟耗光能量，它自己回头把近的那块吃掉，赢下比赛。

用人类的话说，这叫欺骗，而且需要对对手的心智有模型。这套东西没有任何一行是写进去的，是竞争逼出来的。

## 复杂度从简单规则里涌出来，人的直觉在这里完全失效

Lex 提到康威的生命游戏，提到约翰·康威不久前去世。米库莱宁的回应很坦诚：这类系统最震撼的地方在于，**你的直觉在这里完全不管用**。

几条规则，格子非生即死，然后复杂性就涌出来了。DNA 也是一样，本质是一长串简单的符号，操作它的代码量少得可怜。进化计算里的表示和算子，代码量同样很小。复杂性的来源在于非线性交互，而不在规则本身的复杂程度。

进化本身没有目标。它只是对当下环境做出反应，活下来的留下，然后你就看到了被我们称为"进步"的东西。生命游戏也是这样，它只是在跑，没有人给它打分。

这里有一个叫"新奇搜索"（novelty search）的方法值得单独说。肯·斯坦利和乔尔·雷曼做过一个实验：**不给任何适应度目标，只奖励和已有解不一样的东西**。结果它进化出了非常高效的走路行为。

为什么这么干有效？米库莱宁的解释是：要真正远离已有的解，你必须先把这个世界的基本结构编码进去。系统走得不乱，它在基本结构之上做大幅改动。所以新奇搜索实际上是在逼系统理解世界，然后在这个理解之上跳跃。在这个过程中，绝大部分产物是垃圾，但垃圾堆里会有宝石。

难的地方在于，宝石得靠外部的人认出来。

## 关于怎么活，一个进化计算学者的答案

Lex 问了一个很大的问题：从进化和计算的角度，对年轻人有什么建议？

米库莱宁的答案是：**探索，而且是深度探索**。去上音乐课、历史课、哲学课、数学课、工程课，然后看它们之间的连接。去旅行，学一门语言。今天这些东西都在手边，但需要你主动伸手。

他特意强调"深度"。别浅尝辄止地试一百件事，选几件真正钻进去，钻到自己判断"这个领域我能拿的都拿到了"，再换下一个。这个过程可能要几年。有人十年换一次赛道，完全可以。要成为专家需要一万小时，你不一定要成为专家，但要有足够的理解，让这段经历在以后用得上。

然后是第二阶段：探索到某个时刻，你会碰到一个离不开的东西。对他自己是计算机和 AI。那时候就可以沉下去，做几十年，把之前所有的经历都带进来。顺序很重要：**先探索，后承诺**。探索在前，你才有做选择的资格。

关于死亡，他讲得很实在。年轻时跳伞、玩滑翔伞，现在想得比那时候多。这个变化有道理：年轻人在做探索，所以他们必须不怕，得有人愿意翻过那座山看看后面是什么。年纪大一些，探索做得差不多了，方向也定了，问题就变成：**在有限的时间和资源里，我能做点什么真正重要的**。留下一点痕迹，哪怕 agent 消失之后，痕迹还在。

关于个体在进化这台机器里的意义，他的说法是这样的：每个个体都是一个可能的方向，一块可能的踏脚石。有些走得通，成为后续改进的基础；有些走不通，但走不通的也不算白费。恐龙曾经是非常好的解，环境一变就不是了。可恐龙还在，它们的亲戚还在我们身边。谁知道哪天又变得有用了。

一个人是巨大创新引擎里的一个小齿轮，这件事听起来让人失落。但米库莱宁觉得它给出的是意义感：你属于一个比你更大的东西。

## 他见过最美的东西，是代码给出他没写过的答案

访谈最后，Lex 问什么是你见过最美的、受自然启发的算法。

米库莱宁说的是大一那年。他写了一段很简单的程序，机器接过数字，算出结果。他自己不用算。**就这么简单的一件事，让他呆住了**。

然后是这条线的延伸。机器可以学习，可以识别出人类都觉得吃力的模式，有时候做得比人还好。再往前一步，进化算法可以**发现你没想到的解**，因为它不带你的偏见。人类预期解应该长这样，算法不知道解应该长什么样，所以它更自由。

> 我们可以造出某种意义上比我们更聪明的系统，它们能发现我们会漏我们可以造出某种意义上比我们更聪明的系统，它们能发现我们会漏掉的解。这让我震撼。（米库莱宁）

他对创造力的定义很清晰，也很可操作：**新的、有用的、令人惊讶的**。三条同时满足，就是创造。按这个标准，算法确实可以创造，上面那个罗勒不需要睡觉的发现，三条全中。

这也是他对"造出比自己更大的东西"这件事的热情来源。程序跑出来的东西超出了你写下的那些，那一刻的感觉，他说，跟看着一个有生命的东西长大是一样的。你给了它一个起点，然后它去过它自己的生活。

关于脑机接口，他的判断分两半。修复功能这一侧，大脑的可塑性远超预期，把听觉信号接到视觉皮层，动物仍然能"看见"；切掉一半大脑的孩子，功能会迁移到剩下那一半。所以作为假肢、作为功能替代，路是通的。**扩展智能是另一回事**。给大脑塞更多输入，很可能只是把它淹没，它得先学会过滤和聚焦，而这套机制本来就是它最擅长也最耗力的部分。他对"带宽一开、智能指数级暴涨"这个想象持保留态度。

他的观察是，扩展早就开始了，只是不在颅骨里面。手机已经是一个随时可查的外部记忆。孩子在小学就学 DNA 双螺旋，那是几十年前才被发现的东西。信息量涨了这么多，人类并没有饱和。这一代人的知识面可能变窄了，只在一个领域里深，但积累下来的东西在被一代代接手，然后往上垒。**筛掉什么、留下什么，这个机制还在工作**，哪怕信息量比五十年前大了几个数量级。视觉本身就是最好的证明：眼睛每秒送进来的数据量远超大脑的处理能力，它一直在做取舍，而且做得很好。

## 多样性的价值，以及为什么必须容忍几个混蛋

关于未来怎么部署 AI，米库莱宁有一个从进化计算直接推出来的建议。假设真造出了 AGI，然后一模一样地复制几百万份铺到世界上，这在工程上很省事，在战略上很危险。

因为**多样性是进化运行的命脉**。跑一个进化算法，第一件必须保证的事就是种群里得有差异。全都一样，搜索就停了。他自己举了个不太体面的例子：鬣狗模拟里出现过自杀式的个体，冲上去就被咬死，看起来完全是浪费。可正是这些个体构成了基础，让那些跑得快、又能在被杀之前停住的个体有机会出现，最后聚成能抢下猎物的群体。**如果没有那些看起来毫无价值的失败者，那个能成事的解根本长不出来**。

所以对 AI 系统来说，留一点看起来不听话、不守规矩的个体，可能是有价值的。容忍几个骗子，容忍几个钻规则空子的，因为规则本身也在变。回头看看人类社会，很多曾经被视为正当的行为现在看是不公正的，很多曾经违规的行为后来成了新规范。改变往往就是从那些不合规矩的个体开始的。

当然有个度。他研究过那个比例：群体能扛住多少 cheater 还不散架。结论是少数可以，多了不行。

> 如果有一批 agent 能够互相信任，它们能做成的事情多得多。但只要有信任，就一定有欺骗的空间。我觉得这件事永远不会消失。（米库莱宁）

他还提了一个更深远的角度：社会本身也可以被看作一种生命形式。生物进化走得很慢，但观念、制度、文化的进化快得多。人类这一千年在生物学上几乎没变，可我们已经在理解 DNA 和基本粒子了，因为**思想的复制和变异比基因快太多**。按道金斯的说法，真正在进化的是模因，人是载体。AI 在这个框架里也是模因进化的下一步，是我们造出来的工具，是我们这套快速进化的一部分。

至于人类的认知上限，他承认可能存在。宇宙也许运行在人类大脑根本无法内化的维度上，物理学的某些结构我们可能永远没法真正"理解"，只能通过抽象接口去操作它，就像大多数人开车时并不理解车上几百个部件是怎么工作的，但照样能开。**不理解底层，靠抽象层操作，这件事人类已经干了几千年**。AI 可以成为新的那一层抽象。

## 他的研究里还缺一块：重大转变

米库莱宁自己点出了这个领域的空白。生物学史上发生过几次"重大转变"：单细胞变成多细胞，个体变成社会。每一次都是选择单位的跃迁，一个细胞原本可以自己繁殖，加入多细胞生物之后它单独活不了了，它的适应度不再由自己决定，而由它所在的那个整体决定。

进化计算里从来没出现过这种事。不是没人试，是连生物学自己都没搞清楚这个跃迁是怎么发生的。要复现它，大概率需要表示方式的根本性扩展，而现在大家手里的工具只有字符串和树。

这件事他讲得很平静，但分量很重。**这个领域最有名的成果，都还是在一个固定的选择层级上做优化**。真正的跃迁，一次都没有。

## Carl Sagan 那句话

访谈的结尾，Lex 引了卡尔·萨根的一句话：**灭绝是规律，存活是例外**。

这句话放在整场对话的语境里，比它单独出现时更扎人。地球跑了四十亿年，出现过的大部分物种都消失了。鬣狗群里那些冲上去被拍死的个体，模拟里那些跑得歪歪扭扭最终被淘汰的机器人，都是这条规律的注脚。可正是这些注定消失的东西，构成了活着的东西的踏脚石。

米库莱宁没有把这件事说成悲观的。他说的是：个体是可能的方向，是潜在的踏脚石，有些成了基础，有些没有。这个描述里没有安慰的成分，也没有恐吓的成分，就是机制本身。

至于怎么用好自己这一段有限的时间，他的答案落到两个动作上：先把探索做得足够深，找到那个你离不开的东西，然后沉下去做几十年，做出来的东西要比你自己的存在多活一段时间。

下面是这场对话里可以直接拿走的东西。

- **给搜索留出意外空间。**如果你在设计任何带目标函数的东西，包括自己的年度计划，试着留一部分不看指标、只看"和以前不一样"。罗勒不需要睡觉这个发现，就是去掉约束之后撞出来的。
- **别让所有实例长得一样。**部署一堆完全相同的 AI 系统或完全相同的策略，等于把搜索关掉。留一些差异，哪怕其中有几个看起来不靠谱。
- **容忍少数不合规矩的个体。**一个团队全员完全一致，意味着一件事：没人能提出规则之外的可能性。比例控制在少数就行，多了会散架。
- **关键任务上，先问有没有标准答案。**有标注数据、有明确正确答案的问题，用监督学习。没有标准答案、也永远不会有的问题，才需要进化或强化学习这类靠试错的方法。选错方法的代价比调错参数大得多。
- **试错成本决定算法选择。**每次尝试都很贵的时候用强化学习，它更会利用已有信息；能建代理模型、试错便宜且想要意外之喜的时候用种群方法。这条判断比看哪个方法最近更火更靠谱。
- **尝试跨领域地学一件不相干的东西。**学语言能提升视觉，学 DNA 结构能提升语言。世界的结构是押韵的，跨界的收益往往不在你预期的地方出现。
- **探索要深，不要广而浅。**选几件事钻到自己判断"能拿的都拿到了"再换。这个判断本身才是探索的成果。
- **先探索，后承诺，别搞反。**没有做过功课就定方向，等于在一个没搜索过的空间里做局部最优。年轻人最该干的事是扩大搜索范围，不必急着锁定。
- **给自己找一个能沉几十年的题目。**探索结束后必须有一个东西让你停下来。找到它之后，之前所有的经历都会变成这个题目的资源。
- **想一想自己留下的痕迹。**不必是莫扎特。标准很低：这件事因为你而发生了，如果没有你，它不会以这个方式发生。范围可以很小，但它得是真的。
