返回博客

2026.09.16

把权重全打乱,它反而记得更牢了

我拿 12.7 万个神经元的果蝇全脑跑储备池计算,真连接组的记忆容量是 0.00,把权重整体打乱的假连接组是 0.51。真的没有输给假的,这东西压根就没在算——它在自己烧自己。这篇讲怎么一眼看出一个全脑仿真其实只是在放大噪声。

连接组神经仿真实验方法对照设计

真连接组的记忆容量:0.00

把同一张图的权重整体打乱、结构一个字节不改的假连接组:0.51

我盯着这两行数字看了很久。假的比真的记得牢,这结论离谱到不可能对。后来想明白了,它确实不对——错的地方在"在算"这三个字。这两组根本都没在计算,一组烧得旺一组烧得没那么旺而已。

先说清楚这篇讲什么:三个月里果蝇全脑连接组数据放出来,一堆项目把它接进游戏里跑。我也接了。这篇是关于接完之后它到底在干什么,以及怎么用一个除法在五分钟内判断一个全脑仿真是不是在空转。

想直接拿判据的看第 3 章,那是一个相关系数;想知道我被自己的探针骗了多狠,看第 5 章。

1. 十二万七千个神经元,点火之后

用的是 FlyWire 的果蝇全脑连线图,12.7 万个神经元。每个神经元用最经典的漏积分发放模型:电压慢慢涨,涨过阈值就"啪"地放一个电脉冲,然后归零重来。神经元之间按真实连线互相推电压。这套参数出自 2017 年一篇论文,被后来一堆连接组仿真沿用。

储备池计算是这么个想法:你有一坨乱七八糟但连线固定的神经元,往里灌一个信号,这坨东西会产生复杂的响应,然后你在输出端训练一个特别简单的线性读出器,就能干活。中间那坨从不训练。好处是省事——权重全冻着,只学最后一层。

拿连接组当储备池,动机很直白:进化花了几亿年调这个连线,它应该比随机接的强吧?

我灌了一段随机起伏的信号进去,跑 30 秒生物时间,看它能不能记住几十毫秒前灌进去的东西。这就是记忆容量,行话叫 memory capacity,说白了就是"往回问几步还答得上来"。

结果是上面那两行。

2. 第一个数字就该让我停手

回头看,真正的病灶在一个我当时扫了一眼就放过的数字上。

30 秒里总共放了 21,958,868 个电脉冲,活跃神经元 13,365 个。做个除法:

21,958,868 个脉冲 ÷ 13,365 个神经元 ÷ 30 秒 ≈ 55 Hz

每个活着的神经元,每秒放 55 次电。 一直放,不带停的。

真果蝇的神经元静息状态是每秒几次到十几次,爆发时能上几十。全脑所有活跃神经元集体维持在 55 Hz,这不是"活跃",这是着火了。

但光看发放率还能狡辩说"可能这个模型就是偏兴奋"。真正的铁证是另一个数:输入信号和全脑总活动的相关系数 r = 0.982

这个数是这样的:我灌进去的是一条随机波动的曲线,我把每个时间片全脑放了多少个电脉冲加起来,也得到一条曲线。两条曲线的相关性 0.982,几乎就是同一条线。

十组对照(真连接组、权重打乱、保度重连、完全随机各三个种子),这个数全部落在 0.982 到 0.989 之间。

一个在做计算的系统,输出应该是输入的变换——有延迟、有混合、有非线性。输出和输入长得一模一样,说明中间这十二万个神经元什么也没做,就是个放大器。你喊一声,它跟着喊一声,音量放大三百倍。

这是一条通用判据,拿走就能用:

把输入序列和系统总活动做相关。
r 接近 1 = 它在回声,不在计算。

我把这条判据用在完全随机连的图上,r = 0.989。用在真连接组上,r = 0.982。真图比随机图更像个回声筒。 到这一步"生物连线更优"这个问题已经没有意义了,因为两边都不在算东西。

3. 那 0.51 是怎么冒出来的

那为什么打乱权重那组反而有 0.51 的记忆容量?

看脉冲数:真连接组 2196 万,权重打乱组 953 万。少了一半多。

打乱权重的操作把真图里那些"强连接扎堆"的结构打散了。真连接组里有一批超强的连接边,它们凑在一起形成正反馈环路,一点就着,着了就熄不掉。权重摊平之后没有那么多火药桶,烧得没那么旺,于是保留了一丁点对输入的响应能力

0.51 的含义是"假连接组没烧那么狠,所以还剩一口气"。

保度重连组的记忆容量是 0.00、0.00、0.009,完全随机组三个全是 0.00。除了权重打乱那一档,所有组都是零。 这个分布本身就说明问题——如果是在比较"哪种拓扑更适合计算",不该出现九个零加一个 0.5。

4. 我试了多少组参数

有人会说:那是你工作点没调好。

调了。扫了输入强度、注入位点数量、输入频率的组合。这是其中几组:

注入位点 权重倍率 发放率 输入-活动相关 r
200 125 21.8 Hz 0.994
200 250 29.7 Hz 0.979
500 125 33.3 Hz 0.030
500 250 51.5 Hz 0.299
2000 60 45.0 Hz 0.807
50 250 53.4 Hz 0.038

最后一行最能说明问题。只往 50 个神经元里灌信号,全网 0.04% 的神经元被直接驱动,整个脑子照样烧到 53.4 Hz。 这 53.4 Hz 是它自己烧出来的,我灌不出这个量。

还有一组更反直觉的:把驱动强度减半,发放率不降反涨了三倍。这是正反馈系统的典型签名——你松手它反而跑得更野。

中间那两行(相关系数 0.03 和 0.30)看着像是逃出了回声区,但它们的记忆容量还是 0.00。走出回声不等于走进计算,只是换了个姿势烧。

所有组合的记忆容量全部为零。这个模型没有工作区间,只有自激态。

5. 我的探针骗过我,而且骗得很深

这一段是全文最该记住的。

最早那版记忆容量探针,所有组都报 0.00。我当时差点就写"连接组没有记忆能力"发出去了。

幸好做了变异测试——就是故意把答案塞进数据里,看探针认不认得出来。我造了一组假数据,9800 个维度,前五列直接就是答案,信噪比 10 比 1,明摆着送分。

探针报 0.000。

它连白送的答案都认不出来。病因是维度:9800 维配 406 个训练样本,线性读出器直接被撑爆,什么都学不到。之前那些 0.00 全是探针的假象,不是系统没记忆。

修法是读出前先做随机投影降维。降完之后同一份送分数据,探针报 5.909,五个滞后步全部接近满分。这才叫能用的探针。

拿修好的探针重跑真实数据,才有了开头那两行。0.00 这次是真的。

降维矩阵有个硬要求:四个对照组必须用完全同一个矩阵,同一个随机种子。而且必须是与数据无关的随机投影,不能用主成分分析。主成分分析从每组自己的数据里学基向量,等于给每组配了一个不同的读出前端,那就不是同一套接口了。对照实验里唯一允许变的是连接矩阵,接口层动一下,整个比较就作废。

可迁移的教训:探针报出全零、满分、或者所有组完全一致,先别高兴也别沮丧,去做变异测试。 坏探针比没有探针危险得多——没探针你知道自己没测,坏探针让你以为自己测过了。

我这次是第二回栽在这上面。上一回是拿全脑总脉冲数当判据去验证一个刺激实验有没有生效,报出来"刺激加大六倍,总活动只涨 5%",看着像是实验失败。实际查下来,被刺激的那 60 个神经元从 50.0 Hz 涨到了 291.7 Hz,工作得好好的;其余 8,386 个从 52.9 Hz 涨到 53.9 Hz,涨了 1.9%。我拿一个 99.3% 由自激主导的总量去测一个只影响 0.7% 的效应。 判据要取在直接受影响的子集上,不是最大的那个聚合量。

6. 顺手做的消融,结果更怪

既然跑都跑了,我把网络切开看了看。做法是整块整块地关掉某一类神经元,看下游的运动神经元还发不发电。

关掉哪一类 节点数 切掉的连接 运动神经元发放率
视觉系统 59,374 543 万 84.2 Hz
中央脑 28,690 429 万 3.8 Hz
感觉输入 8,126 24 万 0.0 Hz
视觉投射 6,335 84 万 80.8 Hz
上行神经元 1,587 20 万 71.8 Hz
下行神经元 1,086 12 万 63.6 Hz

关掉整个视觉系统——五万九千个神经元、五百四十万条连接、接近全脑的一半——下游发放率 84.2 Hz,纹丝不动。

只有关掉感觉输入(8,126 个,切 24 万条连接,不到视觉系统的二十分之一)才真的让它熄火。

这个对比本身就是诊断:如果这是个在传递信息的网络,切掉一半应该有影响。它没有影响,因为那 84.2 Hz 从来就是自激的底噪,不含信息。切掉输入才熄火,因为输入是点火的火柴。

随机删连接也一样。删掉 5%、10%、20% 的连接,运动神经元还在 80 Hz 上下晃;删到 50% 才掉到零。一个系统能承受删掉 20% 的连线而输出不变,它输出的东西不含什么信息量。

7. 这个实验哪些地方不能信

诚实起见列一下。

我没有验证 55 Hz 是不是这套参数的必然结果。 参数来自 2017 年那篇论文,原文是在小得多的子回路上用的。在 12.7 万节点全脑上这套参数会不会必然自激,我没有做参数敏感性的系统扫描,只扫了输入侧的组合。有可能存在一组我没找到的膜参数能让它不烧。

保度重连的实现是近似。 我用的是打乱目标端点的做法,出度精确保留,入度序列作为多重集保留,但不是严格的边交换算法。会产生重边(真图里也有重边,多突触连接),自环删掉了。

记忆容量只测到滞后 8 步,每步 50 毫秒。 更长的时间尺度没测。理论上自激系统在长尺度上更不可能有记忆,但我没有测过的东西我不说。

只跑了 30 秒生物时间,单个随机种子的输入序列。 真连接组那一组没有重复跑不同种子——对照组每档三个种子,但连接组本身只有一个,因为它没有随机性可言。不过如果结论是"MC 恒等于零",多跑几次也不会从零变成非零。

我没有试过抑制性连接的比例。 真实果蝇脑里兴奋抑制是有比例的,我用的是数据自带的递质预测符号。如果符号预测有系统性偏差,兴奋占比被高估,那自激就是数据问题不是模型问题。这条我认为最值得后续查。

8. 下次看到"我把果蝇大脑接进了 XX",按这个顺序问

第一,它的神经元发放率是多少。 生物值是每秒几次到几十次。全网维持在 50 Hz 以上,它在自激。

第二,输入序列和总活动的相关系数是多少。 接近 1 就是回声筒,中间那坨网络没在干活。

第三,关掉一半网络,输出变不变。 不变的话,那个输出不含信息。

第四,有没有随机对照。 没有对照的"生物结构更优"就是一句感想。

第五,他的探针做过变异测试吗。 把答案塞进去,探针认得出来吗。认不出来的话,前面四个数字全部作废。

我自己在第五条上栽了两次,第一次差点把探针的毛病当成科学发现发出去。