在自然界中,复杂的宏观结构往往源于简单的局部交互,这一过程被称为自组织或自组装。传统的计算模型,如康威的“生命游戏”,通过预设规则来探索这种涌现现象。然而,这些模型无法回答一个逆向问题:为了得到一个特定的目标结构,我们需要什么样的局部规则?本文介绍了一种名为“神经元细胞自动机”(Neural Cellular Automata, NCA)的深度学习框架,它成功地逆转了这一过程。NCA 将细胞的更新规则参数化为一个可微的神经网络,并通过梯度下降等优化算法,从一个目标图像中“学习”出能够生成该图像的局部规则。我们发现,通过这种方式训练出的系统不仅能从单个种子细胞开始生长出复杂、精细的形态,还表现出惊人的鲁棒性和自我修复能力,即使在遭受严重损伤后也能再生。这种涌现出的再生能力,类似于生物形态发生过程中的稳健性。此外,NCA 模型作为一种高度并行、去中心化的计算范式,为解决传统计算架构难以处理的问题(如分布式机器人集群控制和某些抽象推理任务)提供了新的思路。它不仅是理解生物发育的强大计算工具,也预示着一种全新的“可编程物质”的设计理念——我们设计的不是最终的宏伟教堂,而是能自发构建教堂的智能砖块。这项工作重新连接了生命、自组织和计算这三个领域,为复杂系统的工程设计开辟了新的可能性。
引子:一只蝴蝶的重生
一切始于屏幕上的两个像素团。它们在我眼前搏动、生长,最终绽放成两只生动的帝王蝶。当它们在虚拟的空间中伸展翅膀时,一次意外的碰撞发生了。其中一只蝴蝶的翅膀被撞得残破凋零。就在我以为它将就此消亡时,一个奇迹发生了:这只残缺的蝴蝶做了一个轻巧的“后空翻”,随即,新的翅膀竟像蝾螈的断肢一样,重新生长了出来。
那一刻,我——Alexander Mordvintsev,一名在苏黎世谷歌工作的研究科学家——并没有特意为这只虚拟蝴蝶编写任何关于“再生”的代码。这种修复能力是自发涌现的。那一瞬间,我意识到,我可能触碰到了一些非常深刻的东西。这个项目,我称之为神经元细胞自动机 (Neural Cellular Automata, NCA),它延续了数十年来源远流长的计算传统——细胞自动机。
从“生命游戏”的观察者到设计者
很多人都对约翰·康威在1970年普及的“生命游戏”(Game of Life)着迷。在一个简单的棋盘格上,遵循几条极其基础的生死规则,就能涌现出令人眼花缭乱的复杂动态结构。它就像一个隐喻,诠释着简单的物理定律如何孕育出我们这个丰富多彩的自然世界。我们是观察者,设定规则,然后惊叹于其结果。
但我一直思考一个逆向的问题:如果我们已经有了一个宏伟的目标,比如一座大教堂,我们能否不去设计教堂的蓝图,而是去设计一块“智能砖块”?这块砖块应该具备什么样的特性,以至于只要我们把成千上万块这样的砖块放在一起,给它们足够的时间和“摇晃”,它们就能自发地为你组装出一座大教堂?这就是我想要“逆转”的过程。
静态示意图:两种范式的对比
左侧是传统“正向”过程,右侧是NCA的“逆向”设计过程。
这种“智能砖块”听起来近乎魔法,但生物学中充满了这样的例子。椋鸟群的迁徙、蚁群的协作,每一个个体都只遵循着简单的局部规则,却共同构成了宏伟的集体行为。同样,我们身体里的每一个细胞,也是通过与邻居的“沟通”与“协作”,最终将我们塑造成一个完整的有机体。NCA正是对这一过程的计算模拟,只不过我们是从最终的集体行为出发,自动地反推出那些神奇的局部规则。
动画1:康威的“生命游戏”
一个经典的起点。简单的规则(邻居过多则死,过少则孤,恰好则生)如何创造出复杂的动态世界。注意观察那些被称为“滑翔机”的移动结构。
状态: 待开始
代数: 0
核心革新:会学习的细胞
我与同事们(Ettore Randazzo, Eyvind Niklasson)以及塔夫茨大学的生物学家 Michael Levin 合作,做出的核心创新是:用一个神经网络来定义细胞自动机的物理规则。
在“生命游戏”中,规则是写死的,比如“如果一个活细胞周围有超过三个活邻居,它就会死亡”。而在我们的 NCA 系统中,一个微小的神经网络承担了这个角色。它会观察一个细胞自身的状态以及其周围邻居的状态,然后决定这个细胞在下一刻应该变成什么样。
最关键的是,我们无需手动指定这些规则。神经网络会通过一个“训练”过程自己学会它们。我们给系统看一张目标图片(比如一只蜥蜴),然后从一个单独的“活”细胞开始让系统演化。起初,它生成的图案乱七八糟。但我们会比较生成图案与目标图案的差异,并根据这个差异微调神经网络的内部参数。这个过程,我们称之为反向传播 (Backpropagation),是现代深度学习的基石。我们一遍又一遍地重复这个过程,直到神经网络学会了如何从一个点“生长”出我们想要的蜥蜴。
静态示意图:NCA 细胞如何“思考”
每个细胞观察自己和邻居的状态,输入到一个共享的神经网络中,计算出自己的新状态。
动画2:NCA的生长过程
见证奇迹的时刻!从一个中心的种子细胞开始,系统应用学习到的局部规则,逐步生长成一个复杂的蜥蜴形态。每一步,细胞都在与邻居“商量”自己该变成什么颜色。
状态: 待开始
步数: 0
自愈的魔法:鲁棒性与再生
最让我着迷的,就是文章开头提到的那种自发修复能力。在2020年我们发表的论文中,包含了一个生成绿色蜥蜴的演示。如果你用鼠标划过蜥蜴的身体,会抹掉一片像素,但很快,这个“伤口”就会自动愈合,蜥蜴图案会重新构建自己。
这种能力不仅是创建图案,更是在图案被破坏后重建它,这深深吸引了生物学家们。它不就是生物形态发生(morphogenesis)过程的数字再现吗?生物细胞正是通过局部交互形成组织和器官,当组织受损时,它们也同样能通过局部规则进行修复。NCA的再生能力,有时是免费的“赠品”——能生成蜥蜴的规则,天然就懂得如何修复受伤的蜥蜴。有时,我们也会在训练中有意地破坏图案,迫使网络学会如何从中恢复。
动画3:交互式再生
现在,你就是“破坏者”。用你的鼠标在下方的蜥蜴身上涂抹,制造“伤害”。然后松开鼠标,观察细胞们如何协作,将“伤口”完美地修复。
状态: 待启动 (启动后按住鼠标进行破坏)
噪声的力量:从脆弱到灵活
哥本哈根信息技术大学的 Sebastian Risi 等研究者进一步探究了NCA再生能力的来源。一个关键因素是“不可预测性”。我在系统中引入了随机性,比如细胞并非在同一时刻更新,而是以随机的间隔。这种“噪声”迫使系统发展出应对各种意外情况的机制。当失去一部分身体时,对它来说只是众多需要处理的“意外”之一。
这与生物系统何其相似!生物之所以如此稳健,正是因为它们赖以生存的基底——物理和化学世界——本身就充满噪声。一项后续研究表明,当一个系统被训练来抵抗噪声时,它会学到更普适、更灵活的“技能”(比如学会画直线),而不仅仅是死记硬背一个图案。一个只能死记硬背的系统,一旦目标改变,就必须从零开始;而一个在噪声中磨练过的系统,能更快地适应新任务。这或许揭示了自然演化的一个秘密:基因组编码的不是生物体的最终形态,而是一套能生成该形态的发育机制,这套机制本身就具备了应对变化和损伤的能力。
动画4:噪声的价值
左侧系统在噪声(随机像素翻转)干扰下,能通过局部规则恢复目标图案(一个“心”形)。右侧系统只会死记硬背,一旦被噪声破坏,便无法复原。
状态: 待开始
一种新的计算范式
NCA不仅是对生物的模拟,它本身就是一种强大的计算模型。一个细胞自动机可以被看作一台高度并行、完全去中心化的计算机。传统的冯·诺依曼架构计算机有一个中央处理器(CPU)和内存;神经网络则将计算分布到成千上万个互联单元。而细胞自动机则更为极端:每个计算单元(细胞)只与它的直接邻居相连,没有任何长距离连接。
这种极端局部化的特性,意味着巨大的能效潜力,因为长距离通信是芯片上主要的能量消耗来源。但问题是,我们该如何为这样的系统“编程”?答案,正是我们一开始所做的:通过训练来让它获得功能。我们不直接编写代码,而是展示我们想让它完成的任务,让它自己找出实现该任务的“算法”。
我们已经成功训练NCA来识别手写数字。当你把一个数字画在自动机网格上,所有细胞会逐渐变色,最终统一成代表该数字的颜色。更有趣的是,在解决一些抽象推理问题时,NCA表现出了超越传统神经网络的潜力。因为没有全局视野,NCA无法“作弊”去记忆整个图像,它被迫学习从输入到输出的“过程”或“规则”。这使得它在面对新样本时,表现出更好的泛化能力。
动画5:分布式计算的诗篇:粒子流场
这个动画是对NCA计算范式的一种诗意比喻。成千上万的独立粒子,每个都只根据其当前位置的局部“风向”(由柏林噪声算法生成)来决定下一步方向。没有中央指挥,却共同编织出宏大而和谐的流场。这就是去中心化计算的美。
结语:重新统一的道路
从模拟生物再生,到构建新型计算机,再到设计能够协同工作的机器人集群,NCA的应用前景才刚刚展开。这仿佛是一次回归。在计算的黎明时期,冯·诺依曼等先驱们曾自由地从生命体中汲取灵感。对他们而言,自组织、生命和计算之间的联系是显而易见的。后来,这些领域在某种程度上分道扬镳了。
而现在,通过神经元细胞自动机,我们似乎正在重新将它们统一起来。
静态示意图:计算架构的演进
从冯·诺依曼的中心化,到神经网络的全连接,再到NCA的极端局部化。