算法描绘的“人造生命”,运动流畅自然,如同显微镜下的实景
来源:量子位
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几乎都可以实现:比如稳态、代谢,以及对刺激做出反应等等。
而且,这里的”生物“还能在大自然里,找到自己失散的”家人“:
△真假配对: (a) 上为三叶虫 (b) 左为一种硅藻 (c) 左为一种海星 (d) 左为线粒体
所以,陈先生借来了生物学里的分类学(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
编辑:孟婕
推荐阅读
集智俱乐部QQ群|877391004 商务合作及投稿转载|swarma@swarma.org 搜索公众号:集智俱乐部 加入“没有围墙的研究所” 让苹果砸得更猛烈些吧!
◆◆◆
原文始发于微信公众号(集智俱乐部):集智