算法描绘的“人造生命”,运动流畅自然,如同显微镜下的实景 | Demo·代码

算法描绘的“人造生命”,运动流畅自然,如同显微镜下的实景 | Demo·代码

2019-01-31 09:01量子位 合作伙伴
这条路听上去很远很缥缈,不知道能走多久。可机器学习领域的科学家们,也一直在生物智能和人工智能之间寻找联系

21世纪的人类,还没有实现人造生命的理想。

不过,如果单从视觉上看,我们离这个目标可能没那么远。

来自香港的程序猿Wang-Chak Chan (简称陈先生) ,孕育了一个人造生命模型 (a Model of Artificial Life) 。

这个名叫Lenia的模型,可以演化出丰盛的生命形态。这里有不同形状的“生物”,运动姿势也千差万别,但都自然流畅,某一瞬间竟以为是显微镜下真实的景色。

陈先生说,目前已经在Lenia里发现了18个“科”的400个“物种”了。并且,自然界还能找到它们的“亲戚”。

他希望,Lenia可以帮助人类了解生物的行为,以及进化规律。说不定有一天,还能为AI研究带来什么启发。

不过在那之前,这个模型已经有Demo可以玩耍了,代码也开源了。

生命如此多娇

这个人造生命模型,是基于细胞自动机 (Cellular Automaton) 搭建起来的。

细胞自动机,就是一个网格:网格上每一个位点的状态,都在不停地变化,根据周围位点 (术语叫邻域) 的状态而变化。

本文出现的动图,都是变化中的样子。

那么,变化规则是什么呢?

举一个简单的栗子,康威生命游戏 (Conway’s Game of Life) 。

这是一片正方形网格,每个位点有两种生存状态,一是存活,二是死亡

每个位点 (即“细胞”) 的存亡,是周围8个位点决定的:

一个存活的细胞,周围存活细胞数少于两个,就会死亡。这是在模拟孤独寂寞而死。

一个存活的细胞,周围存活细胞数在2-3个,状态不变

一个存活的细胞,周围存活细胞数多于三个,也会死亡。这是在模拟资源匮乏而死。

一个死亡的细胞,周围存活细胞有3个,就会活过来。这是在模拟生物繁殖。

如此一来,周而复始,生生不息。

“生命”的延续不算惊人。奇妙的是,就算开始的时候杂乱无章,也终究会生成有规律的图案 (通常还很对称) 。

可简单如宇宙飞船:

可复杂如电子时钟:

玩家自由设定规则 (前文举的栗子只是最简单的一种) ,便可以创造出世间万物;也可以锁定某个位点的状态,暗中观察其他位点的变化。

而Lenia便是以康威生命游戏为起点,走向更加复杂的远方:比如,这里的状态远不只生存、死亡这两种,看这丰富的色彩便知:

陈先生说,除了不能自我复制 (繁殖) 之外,生命体拥有的各种功能,Lenia几乎都可以实现:比如稳态、代谢,以及对刺激做出反应等等。

而且,这里的”生物“还能在大自然里,找到自己失散的”家人“:

所以,陈先生借来了生物学里的分类学 (Taxonomy) ,把自己在Lenia里面发现的“生物”分门别类。Demo里面就可以看到一些:

Demo不止可以按物种查看,也可以按形态选择

另外,生成方式 (Preset) 可以改变,许多参数可以调整,还能生成3D图像,凹凸有致:

有兴趣的同学,一定要去试试啊 (传送门在文底) 。

有什么用呢?

不只是生物学,陈先生还从物理学、有机化学里借来许多概念,试图解释Lenia生成的作品。

他希望能借Lenia的力量,探索生命的规律,不论是行为规律还是进化规律;还希望,有朝一日能为AI研究带来帮助。

这条路听上去很远很缥缈,不知道能走多久。可机器学习领域的科学家们,也一直在生物智能和人工智能之间寻找联系:

神经网络的灵感,是从动物的中枢神经系统那里借来的;

Hinton说要抛弃反向传播,也是因为没发现人脑有类似的工作机制。

谁也不知道,自己走的路是不是对的。不过,Lenia至少是一条赏心悦目的路吧。

在线Demo传送门:
https://chakazul.github.io/Lenia/JavaScript/Lenia.html

Lenia开源代码传送门:
https://github.com/Chakazul/Lenia

Lenia论文传送门:
https://arxiv.org/pdf/1812.05433.pdf

*本文作者关注前沿科技,由新芽NewSeed合作伙伴量子位授权发布,转载请联系原出处。如内容、图片有任何版权问题,请联系新芽NewSeed处理。