07:数字晶体
我们建造能容纳实验的最小实验室:一个种子、一块六边形晶格(lattice)、局域附着。然后让环境触碰它,问成品结构中还携带着什么。
Outlier 能带我们走的路已经走完了。
前面章节中的任何内容都不撤回。Outlier 展示了计算能支撑什么。但到群集(flocking)研究结束时,它的局限已无法回避:Outlier 更擅长产生现象,而不擅长分离现象。
几何、谱系、距离、扩张与局域环境,都从同一条 512 位规则中一同涌现(emergence)出来。我们可以观察它们、追踪它们,有时还能重建它们的因果(causal)历史。但我们无法干净地做到:固定其他机制,只改变其中一个机制。
于是我们的工作方式必须改变。从现在起,先建对照(control):把能固定的都固定,只刻意改变一个机制,测量随之改变的是什么。
有一个想法值得从 Outlier 带过来,而且它比一个有机体小得多:
局域计算
↓
重复相互作用
↓
更大尺度的组织
只需要引入这些。我们不引入 Outlier 本身——不引入它的繁殖(reproduction)、因果家族或几何。我们只带走那个已被证明的可能性:局域规则能生成从未被显式表征在其中的组织。
我们对新系统要的是一张很短的清单,外加一张同样重要的拒绝清单:
| 实验室必须提供 | 实验室必须不包含 |
|---|---|
| 每条规则都已知 | 有机体 |
| 每个状态都可检查 | 记忆(memory) |
| 一次只改变一个机制 | 修复 |
| 反事实世界可以重跑 | 繁殖 |
| 完整历史可以保留 | 代谢 |
| 个体(individual) |
我们要把右边的概念彻底排除在机器之外。这样,如果其中任何类似的东西出现,我们才能问:这个更简单的系统是否真的产生了它。
实验室里一定不能藏着答案。
第一个实验室小到近乎简陋。
一个种子
一块六边形晶格(lattice)。每个位置取 0 或 1,每个位置有六个直接邻居。中心处,一个被占据的位置。其余全部为空。
规则:
空位置若至少有一个邻居位置被占据,则变为占据。一旦占据,永久占据。
整个系统就是这些:一个种子、一个局域附着条件、不可逆占据,以及时间。没有目标形态,也没有更高层次的对象指挥生长。
六边形几何只是方便,而非断言。六个等距邻居使局域推理比方形网格更干净,后者还要尴尬地区分边邻接与角邻接。用轴向坐标 (q, r),邻域就是六个固定偏移。
运行系统,结构以扩张的六边形壳层生长。

单个占据的种子在一条不可逆局域生长规则下扩张。
没有任何地方写着长成六边形。t 次更新之后,与种子之间六边形图距离不超过 t 的每个位置都被占据,全局形状由邻域拓扑与均匀局域传播推出。
没有细胞持有蓝图。没有控制器(control)测量半径。没有谁画出六条边。
还没有发生任何令人惊讶的事。这很好。有界的结果就是:
在这条规则下,一个种子仅通过重复局域附着就产生有序扩张的几何。
六边形不是复杂性的证据。它是基线,后续偏离将在它之上变得可测。
生长很廉价
现在测量它,而不是欣赏它。对半径为 r 的完美六边形球:

表面上的生长复杂性有个简单解释:实测占据数遵循六边形球生长律。
于是结构稳定变大,却没有一丝变得更有意思。这条规则产生的一百万细胞结构,在概念上并不比七细胞结构复杂。生成式描述完全相同;变的只是数字。
更大
≠
更复杂
尺寸是最廉价的、看似令人印象深刻的结果。
第二个区分几乎免费出现。结构可以从一个种子不断延伸,而不产生第二个独立拷贝,所以持续建造不是繁殖(reproduction)。这没有告诉我们繁殖对数字生命(digital life)是否重要。它告诉我们,生长与繁殖是彼此分离的计算可能性,因此值得分别做实验。
这就是为什么本实验室从生长开始。我们可以先研究繁殖之前的持续过程,而不预先假定生物学的顺序。
第一个诱惑
在添加任何东西之前,值得看看这个系统多快就引发生物学语言。
让结构生长二十代。从内部挖掉一块区域。恢复同一条规则。空洞边缘的空格子接触着占据的格子,于是它们变为占据;然后新暴露的格子变得可占据。很快空洞消失。

之前、扰动,以及之后的状态。缺失区域回来了,但我们还没有挣到“修复”这个词。
它看起来像愈合。它不是。
系统不区分损伤与普通空格。没有目标形态,也没有任何东西表征结构应当长什么样。推进外部前沿的同一条附着规则,也填满了内部空洞。
于是更强的解释消失:
结构通过普通生长填回缺失的空间。
这还不是修复。后面我们会带着专为该问题设计的系统和对照(control)回到物质缺失。没那么刺激。更有信息量。
这也是一个有用的警告:即便一个专为避开生物学假设而建的实验室,几乎立刻就开始生成听起来像生物学的描述。
原型还提出其他问题。障碍物会留下痕迹。多种子会合并。有限世界最终施加极限。我们在这里抗拒追随这些分支,因为每一条都值得以后用更好的实验处理。
目前,原型已经完成了它的工作。它给我们一个透明的过程:会生长、可被扰动,且几乎不包含我们没有刻意放进去的东西。
环境能留下痕迹吗?
原型几乎过于可预测。很好——实验室应当从一个我们理解的基线开始。
接下来我们要的是真正不同的东西:
改变外部条件能否足够强烈地影响生长,在成品结构中留下持久、可测的签名?
这个问题对原型问不出来。它的附着规则是确定性且饱和的,所以每个可用的前沿位置都会被填满。外部信号无处起作用,因为每个局域允许的事件都已经发生。
所以模型必须改变,而且改变要显式:
| 原型 | 数字晶体 v1 | |
|---|---|---|
| 占据 | 二值 | 二值 |
| 邻域 | 六边形 | 六边形 |
| 生长 | 不可逆 | 不可逆 |
| 附着 | 确定性局域 | 随机性 |
| 环境 | — | 环境强迫 |
| 晶格 | 各向同性 | 固定各向异性 |
| 拥挤 | — | 拥挤惩罚 |
这些添加是实验室设计,不是实验发现。随机附着给环境留出起作用的位置:如果附着是概率性的,当前环境值就能改变概率。各向异性给晶格持久的方向结构。拥挤惩罚防止越来越拥挤的前沿位置获得不受约束的邻居数优势。
数字晶体 v1 一经定义,这些机制就被冻结。下面的实验固定生长机制,只改变输入。
这个区分很重要,因为原型的观察不会自动迁移:
原型的结果不会自动迁移到数字晶体 v1。
空洞填充结果没有告诉我们这个随机模型如何响应损伤。模型不同,主张就不同。此后的一切都要重新挣得。
这就是**数字晶体(digital crystal)**这个名字变得有用的地方。这个类比是机制性的,而非视觉的:形成过程中的局域相互作用累积为持久的更大尺度结构。于是我们可以陈述一个假设,而非定义:
局域计算生长过程能否把外部输入的特征转化为持久、可测的形态?
如果答案是否定的,这个名字什么也没挣到。如果答案是肯定的,我们事后再决定这个名字值多少。
这个假设刻意狭窄。它对生命、记忆、学习、适应、繁殖、智能或能动性一字不提。
影响,而非指令
原型是闭式更新,\(C_{t+1}=G(C_t)\)。现在引入环境强迫信号,更新变为 \(C_{t+1}=G(C_t,E_t)\)。
关键的区分是信号不被允许做什么。它不作画。没有任何地方写着:
if signal == "sine":
draw_sine_shape()
那会是一个多了几道工序的奇怪绘图库。同一套生长机制在每种信号源下运行;信号只改变局域附着事件发生的条件。
对候选前沿格子,冻结的实现是:
信号作用在两处。它通过 cE_t 弱移动整体附着倾向,通过 φE_t 旋转局域六重各向异性的相位。两者都只依赖当前标量值。既不接收早先的值,也不接收信号源家族或未来序列。
整个实验中参数保持冻结。仍然没有目标形态、没有绘图例程、没有信号源家族指令、没有存储的终态。实验约束很简单:
信号源改变时,生长机制保持固定。
否则恢复信号源只能告诉我们:我们改了机器。
与作图的差别值得说具体。常规作图把值映射到坐标,再把坐标映射到像素。数字晶体做的却是:
值
↓
局域附着条件
↓
大量随机局域事件
↓
持久形态
图像不是从信号画出来的。它是在信号影响下生长出来的。没有任何局域附着事件收到家族标签、未来序列或期望终态;它收到的只有当前局域状态和该步可用的环境值。
环境显式进入附着规则,所以证明它影响生长几乎建立不了什么。有意思的问题是:影响穿过大量局域随机事件、成为终态结构之后,还有什么可恢复的。
先做最没意思的检查。设 $E(t)=0$ 并运行广义模型。基线达到 5924 个占据格子、最大六边形半径 44、552 条边界边。

数字晶体 v1 在恒定强迫下长出结构。这只证明广义模型能生长。
这除了证明机器能跑,什么也没证明。而这就够了。
六种环境
现在把完全相同的生长机制交给六种强迫:常数、正弦、方波、锯齿波、白噪声与随机游走。常数条件为 E(t) = 0。在其他家族内,单个实例的周期、相位、噪声实现与随机游走轨迹各不相同。
每个生长步晶体收到一个标量。不是家族名。不是历史。不是未来。一个数字。

六个强迫过程家族。数字晶体 v1 只收到当前标量环境值。
然后让它们生长。

同一局域生长机制,不同强迫过程。形态看似不同,但外观只是实验的起点。
它们看起来不同。
那又怎样?
不同信号长出不同样子的晶体是个诱人的展示,几乎建立不了什么。一次随机运行可能只是长得更大。另一个信号家族可能抬高平均附着概率,让我们把更大的面积误认为不同种类的组织。或者我们的眼睛在噪声里找结构。
我们要的是群体,不是标本。
六百个晶体
六个信号源家族各长 100 个晶体,共 600 个。每次运行用同样的冻结生长机制、同样的 72 步时域、同样的形态测量;变的只是信号源实例与普通随机实现。
对每个成品晶体测量终态形态的 42 个属性——面积、周长、最大半径、紧致度、边界粗糙度、外包盒纵横比、质心位移、径向与角向结构、六重角向结构、边界半径变异等。完整特征表固定在实验记录中。42 个特征都不含信号源信号、其历史或家族标签。
然后藏起标签。问题变具体:
只给定一个未见晶体的终态形态,能否识别产生它的强迫家族?
六分类的随机基线是 16.7%。在一个子集上训练分类器,在从未见过的晶体上测试。
flowchart TD
S1["Constant ×100"] --> G["Same fixed growth rule"]
S2["Sine ×100"] --> G
S3["Square ×100"] --> G
S4["Sawtooth ×100"] --> G
S5["White noise ×100"] --> G
S6["Random walk ×100"] --> G
G --> M["Final morphology: 42 features"]
M --> H["Hide source labels"]
H --> C["Train"]
C --> T["Test on unseen crystals"]
在留出晶体上,随机森林达到 52.2%,logistic 回归 53.9%,对照随机基线 16.7%。

从留出数字晶体形态恢复信号源过程家族,显著高于 16.7% 的随机基线。
两个被测分类器都远高于六分类随机基线,所以强迫过程在此测量下留下了可恢复的形态签名。两个差别很大的分类器家族在留出精度上相近,也让“某个分类器的特异决策边界”这个解释不那么令人满意。
混淆矩阵显示信息分布不均。有些强迫家族留下的签名独特得多。

信号源恢复显著但不完全。有些强迫家族留下的形态签名更独特。
结果比它引诱出的语言更简单:
终态形状保留了足够信息,能以显著高于随机的水平识别强迫过程家族。
我们不需要称之为记忆(memory)。形成条件留下了可读痕迹。
攻击那个无聊的解释
明显的贬低是:分类器根本没检测到关于强迫过程的任何有意思的东西。也许它检测的只是个平凡总量:也许方波平均值不同,改变了整体附着概率,长出更大的晶体。那我们发现的不过是不同平均输入产生不同数量的生长。
于是去掉这个解释的最简单版本。变化的信号源家族在缩放前按构造中心化为零均值——减去采样均值,除以最大绝对值,再截断到允许的强迫范围。常数条件保持精确为零。
对描述性形态比较,42 个特征维度按 600 晶体总体中各自的标准差标准化,然后测量类别质心之间的欧氏距离。变化的信号源群体仍偏离常数基线:
| 信号源家族 | 距常数的质心距离 |
|---|---|
| 正弦 | 4.45 |
| 方波 | 13.82 |
| 锯齿波 | 2.40 |
| 白噪声 | 2.40 |
| 随机游走 | 1.40 |
这些距离是描述性的,不是第二个分类器结果。但它们足以告诉我们:仅凭平均强迫,不足以解释观察到的形态分离。强迫的其他性质也在起作用——方差、处于极值附近的时间、自相关、跃迁结构、时间组织,或其他分布统计量。
信号源分类器告诉我们有东西存续下来。它还没告诉我们那是什么。
还有另一个明显的担心。也许信号源恢复只在某个精心挑选的强迫幅度下成立。于是改变强迫幅度,局域生长机制其余保持不变。每个被测幅度从六个家族各取 24 次运行,即每幅度 144 个晶体,同样的 70/30 分类流程在每级留出 44 个晶体。
| 强迫幅度 | 留出 RF 精度 | 留出 n |
|---|---|---|
| 0.75 | 34.1% | 44 |
| 0.85 | 43.2% | 44 |
| 0.95 | 50.0% | 44 |
| 1.00 | 52.3% | 44 |
| 1.05 | 52.3% | 44 |
| 1.15 | 63.6% | 44 |
| 1.25 | 43.2% | 44 |
随机基线始终是 16.7%。
没有干净的单调趋势——1.15 远好于 1.25——七个点也揭示不出响应曲线的形状。我们不知道最优点。能保留的结果更窄:
在此扫描的每个被测强迫强度下,信号源家族恢复都高于六分类随机基线。
于是“某个唯一走运的强迫幅度”这个解释不够充分。这个扫描挣到的就是这些。
也许它记录了发生的事
这里开始诱人。我们有固定的局域过程、外部环境、成品结构,以及关于该环境的可恢复信息。诱人的句子是:
晶体记录了它的环境历史。
而这次诱惑不只是视觉的。形成期间条件的信息真的能从终态结构中恢复。
但是:
关于过去条件的信息与可恢复的历史不是同一个主张。
结果说的是环境种类的信息存续下来。更强的主张说的是历史存续下来。听起来接近。其实不是。
有一个具体的怀疑理由。正弦波与方波在时间组织上不同,但在取值分布、处于极值附近的时间、自相关与跃迁结构上也不同。如果分类器读的是生长期间所遇取值的宽泛统计性质,那仍是真结果,只是不是同一个结果。
所以我们检验这个拔高,而不是接受它。
摧毁时间
取一段信号源序列并打乱它:
0.7 0.2 -0.3 0.9 -0.8 ...
变为
-0.3 0.9 0.7 -0.8 0.2 ...
打乱版保留采样值,从而保留均值、方差、最小值、最大值与直方图。它摧毁的是时间顺序。如果成品形态包含关于时序的可恢复信息,有序历史与打乱历史下长出的晶体应当可区分。
对 500 个非常数信号源实例各长一个有序晶体与一个打乱晶体,共 1000 个晶体,分类器用分层 70/30 切分,700 训练对 300 留出,二分类随机基线 50.0%。
一个弱点要先声明。第一次时间检验按顺序标签分层,但没有按底层信号源实例分组,所以有序历史与其打乱 counterpart 不保证留在切分的同一侧。这使它成为探索性时间对照(control),而非最干净的检验;后面的精确多重集实验用组安全切分修复了这个弱点。
随机森林达到 51.3%,logistic 回归 51.7%,对照 50.0% 的随机基线。

在此形态表征下,有序对打乱分类停留在 50% 随机基线附近。
在两个被测分类器下结果都贴近随机。在此形态表征与切分下,实验没有建立有序对打乱历史的可恢复性——但由于配对信号源实例没有在切分两侧保持在一起,我们不应让这个实验承担最终的时间主张。
我们可以把比较做干净。这一次,取值同一性本身将精确匹配,每组匹配历史整体留在训练/测试边界的一侧。
正弦波与方波的区别不只是顺序,分布也不同。于是连分布一起去掉。
相同取值,不同时间
对每个匹配重复,生成一个恰含 72 个值的基础多重集。然后用同样 72 个值构造六段历史:
| 组织 | 排列 |
|---|---|
| 随机 | 随机置换 |
| 块状 | 低值成组,然后高值成组 |
| 交替 | 低、高、低、高…… |
| 平滑 | 相邻值渐变 |
| 爆发 | 安静期被集中 excursion 打断 |
| 周期 | 值排成重复的时间 motif |
不多加。不拿走。多重集完全相同。变的只是时间组织。

完全相同的取值,在时间上重排。取值分布固定;时间组织改变。
这是 Outlier 永远给不了的比较:相同取值、相同生长规则、相同测量,不同时间组织。反事实在世界运行前就已构造。
现在长晶体。不调参。不抢救假设。

由相同取值多重集以六种时间组织长出的数字晶体。
实验用 10 个独立匹配取值集交叉 6 种时间组织,共 60 个晶体。
一个保障重要到必须声明。从一个取值集生成的六段历史在训练/测试切分时保持在一起——六段要么全进训练,要么全进留出测试。七个匹配组进训练,三个进测试,即 42 个训练晶体与 18 个留出。训练中见过的取值集不会以另一种时间排列出现在测试中,分类器必须泛化到真正未见的取值集。
对照六分类随机基线 16.7%,两个分类器都返回 11.1%。30 重复置换标签零分布给出结果的尺度:
| 置换零分布(随机森林) | |
|---|---|
| 均值 | 13.3% |
| 标准差 | 7.7% |
| 95 分位 | 22.2% |
| 最大值 | 33.3% |
观察到的随机森林精度没有超过置换零分布。在数字晶体 v1 生长规则冻结、输入取值分布精确匹配下,本实验没有建立终态形态中关于时间组织的可恢复信息。
更强的解释再次失败。不是因为分数低于随机——留出只有 18 个晶体,庆祝那点低于随机是荒谬的。要点更简单:
分类器既没超过随机,也没超过置换零分布,因此在此协议下没有为可恢复的时间组织提供证据。
宽泛强迫家族可读。一旦取值本身固定、只改变其顺序,在被测形态表征下没有恢复到可比的可读性。
晶体不是录音机
否定结果在这里比我们出发时的想法更有用。我们曾想象环境历史被晶体写进形态。实验支持的更窄:
强迫的宽泛特征
↓
局域动力学
↓
持久形态
| 问题 | 状态 |
|---|---|
| 信号源家族可否从终态形态恢复 | 可恢复 |
| 有序对打乱历史可否恢复 | 未建立 |
| 相同取值、不同时间组织可否恢复 | 未建立 |
这比说序列被丢失更精确。未被测量的时间信息仍可能存在于完整状态的某处。我们用这些测量没有从终态形态中恢复它。
细看,这又奇妙地贴切。检查一块物理晶体,其结构可能揭示形成条件的很多信息——温度区间、生长速率、杂质、压强。它不包含一帧一帧的形成电影。没人指望从一块石英读出星期二。
我们的数字晶体更像形成过程的压缩后果,而不像磁带录音。这个类比不应推得超过实验挣得的范围,但它很好地抓住了区分:
形成条件可以保持可读,而时序可以保持不可读。
状态不是历史
晶体有状态(state)。它当下的构型是早先附着事件的结果:第 10 步加入的格子到第 70 步可能还在,改变早先事件可以改变终态结构。
但是:
过去影响了现在,不等于过去仍可从现在中恢复。
这就是本实验迫使我们做出的区分。考虑序列 A B C D 与序列 D B A C。两者都影响生长。两者都能改变终态。但如果我们的终态测量区分不出哪种顺序发生过,那么过程累积了后果,却没有给出可读的时序。
数字晶体 v1 就站在这里:
| 主张 | 状态 |
|---|---|
| 过去促成了现在 | 支持 |
| 信号源家族可从终态形态恢复 | 支持 |
| 平均强迫单独解释信号源家族分离 | 不支持 |
| 有序对打乱历史可恢复 | 未建立 |
| 相同取值、不同时间组织可恢复 | 未建立 |
| 完整时序被保留 | 未建立 |
所以:
过去依赖
≠
过去可读
≠
可恢复历史
一个过程可以被过去彻底塑造,而不记录它。
对我们测到的东西,一个有用的工作描述是有损积分:
外部强迫
↓
大量不可逆局域附着事件
↓
聚合结构偏置
↓
持久形态
这是对观察到的信息模式的描述,不是给模型添加的另一个机制。早先强迫改变后来结构。强迫的宽泛特征仍可从终态形态读出。被测读出没有以可比的成功率恢复时序。
这给出一个值得带走的假设:
不可逆生长可能使形成条件的宽泛特征比其时间顺序更容易恢复。
不是定律。不是信息论不可能性结果。不是断言完整状态中没有时间信息。它是这些实验从这个基底中恢复到的东西。
这里没有任何东西建立记忆、学习或对环境的解释。实验建立的更窄:固定的局域生长过程能把形成条件的差异变成持久的形态差异,而那些条件的某些性质仍可恢复。
这个结果不需要生物学名词。
数字晶体
这个名字开头只是标签。现在它挣到了一点分量:
数字晶体(digital crystal)是一种局域计算生长过程,其持久形态携带着形成期间条件的、可恢复的信息。
flowchart TD
A["ENVIRONMENTAL INPUT"] --> B["FIXED LOCAL DYNAMICS"]
B --> C["DIGITAL CRYSTAL"]
C --> D["PERSISTENT MORPHOLOGY"]
D --> E["SOURCE-FAMILY INFORMATION RECOVERABLE"]
D --> F["TEMPORAL ORDER NOT ESTABLISHED"]
定义很小,因为更强的解释失败了。我们建立了形成条件能留下可恢复的形态信息。我们没有建立终态形态保留了那些条件的可恢复时序。把这两句话分开,就是结果。
注意是什么让这成为可能。在 Outlier 里,我们不得不在成品世界里寻找公平比较。在这里,决定性比较——相同取值、相同机制、不同顺序——在生长开始前就已存在。
没有事后统计匹配。没有寻找自然发生的对照。没有因世界没能生成我们需要的比较而悬空的区域。
实验室在世界运行前创造了比较。
我们建它就是为了这个。
实验注记
数字晶体 v1 用 72 步生长时域,实验六边形半径上限 44。其冻结附着模型用:
| 参数 | 取值 |
|---|---|
| 基础偏置 | −2.10 |
| 邻居增益 | 0.78 |
| 信号速率增益 | 0.28 |
| 各向异性增益 | 0.95 |
| 信号相位增益 | 1.15 |
| 拥挤惩罚 | 0.22 |
主信号源家族实验含 600 个晶体,六个强迫家族各 100 个。每个成品晶体由 42 个纯形态特征表示,分层 70/30 切分产生 420 个训练晶体与 180 个留出。留出信号源恢复为随机森林 52.2%、logistic 回归 53.9%,对照 16.7% 随机基线。
第一次有序对打乱时间检验含 1000 个晶体——500 个非常数信号源实例各一有序一打乱——分层切分产生 700 训练与 300 留出。随机森林达到 51.3%,logistic 回归 51.7%,对照 50.0% 随机基线。第一次时间切分没有按信号源实例分组,所以下面的匹配分布实验是更干净的时间检验。
更强的匹配分布时间实验用冻结的数字晶体 v1 模型与 10 个独立 72 值多重集。每个多重集生成六种时间组织,共 60 个晶体,训练/测试切分按取值集分组为 42 训练与 18 留出。留出六分类时间精度两个分类器都是 11.1%,对照 16.7% 随机基线。30 重复随机森林置换零分布均值 13.3%,95 分位 22.2%。
章节级实验裁决仍为 PARTIALLY_SUPPORTED:信号源家族信息可从终态形态恢复,可恢复的时间组织未建立。
完整特征定义、信号发生器、随机种子、分类器设置、混淆矩阵与生成报告随实验记录保留。
给它一段过去
第一个实验能恢复晶体形成条件的某些信息。更难的问题是:终态形态能否区分那些条件出现的顺序。
在我们跑的检验下,不能。
这不是数字晶体令人失望的结局。它以不寻常的精度指出了下一个缺失的能力。
晶体有一个现在,这个现在携带着产生它的条件的信息。我们还没有给它的是一个可恢复的过去:足以让两种不同历史在后来仍可区分的、被保留的状态。
所以下一步比智能、目标、繁殖或学习更小。给过程一个留住发生的事的办法——保留足够的内部后果,让两种不同历史在后来仍可区分。
我们还不需要称之为记忆。因为在过去能改变未来之前,来自过去的某种区分必须先存续下来。
那就是下一个实验。