English interface selected · this article is currently written in Chinese.
怎么不被自己骗:预先登记、哈希冻结和子 agent 审查
English overview →初步构想、学习摘录或开放性猜想,结构精简,处于持续发酵中。
数字花园
🌿 什么是数字花园与思想演进?
遵循 Maggie Appleton 与 Andy Matuschak 的常青笔记理念:这里不是按时间沉底的流水账,而是持续修剪打磨的知识生态。文章按成熟度经历:
- 🌱 萌芽 (Seedling): 发散灵感、读书摘录、开放猜想
- 🌿 演进 (Budding): 结构渐明、初步代码推导、积极修正
- 🌳 常青 (Evergreen): 逻辑闭环、持久经得起检验的基石
- 🔬 实验待证 (Speculative): 结合沙盒与仿真探针的理论探索
项目代码与全部实验记录:https://github.com/meiluosi/fly-connectome-study
这个项目的主要结果都是“没测出优势”。比结果更值得讲的是中间那套流程:它几乎每一轮都改掉了我写下的一部分结论。这一篇讲流程是什么、抓到了什么,以及哪些做法可以直接拿走。
1. 场景:我把“被超过”写成了“等价”
持续学习审计里,FlyModel 和最好的简单基线差得不多,我随手在文档里写了一句“原型等价成立”。
审查报告指出:数据显示的是 FlyModel 被超过了(差 0.054、0.060、0.131),“等价”的检验根本没做过,只是顺着阈值把话写圆了。
这种错最麻烦的地方在于,写的时候一点都不觉得自己在作弊。个人项目没有同行评审,所以得自己造一个会反驳自己的东西。
2. 流程链路:从登记到更正的七个环节
- 写预先登记。 运行之前写下假设、要比的对象、判定标准和“算等价”的边界(如 ±0.5 个百分点)。
- 锁哈希。 记下代码和登记文档的 sha256,之后谁改了哪个文件一目了然。
- 调参和测试分开。 调参只用一段种子,测试用全新的一段,测完不再回头调。
- 测试只跑一次。 结果按单个键存成文件,可断点续跑。
- 用登记好的脚本出结果。 数字由分析脚本生成,解读另写。
- 独立审查。 起一个没有上下文的子 agent,只读代码和文档,找泄漏、对照缺陷和统计问题。整个项目共 9 份报告(隔间 4、持续学习审计 2、旅行商 3)。
- 更正并记录。 结论改了就写进偏离日志,原结果不删。
统计规则也提前定好:对实例做自助法;“等价”要求置信区间整体落在边界内,区间碰到边界就只能叫“不确定”。
3. 审查点:四个项目里抓到的问题
3.1 隔间与遗忘:最初的结论大半被推翻
问题是:蘑菇体的隔间划分是不是它不容易遗忘的原因。最初的结果很漂亮:门控隔间遗忘更少,“隔间里 KC 输入的重叠度”像一个旋钮,调高就遗忘更少。审查把它拆成四处:
- 含 NaN 的是同一批 5 个种子。 它们只出现在重叠度最高的两档,按规则整个划分被排除,高重叠一端只剩 1 到 2 个划分在撑回归线。一致地丢掉这 5 个种子后,FlyWire 上的斜率是 0.012,区间 [−0.007, 0.033],跨过 0。
- 重叠度与入度混在一起。 重叠度与“隔间内 KC 入度方差”的相关为 −0.93,所谓旋钮其实在调“哪些 MBON、有几个几乎没输入的 MBON 被一起门控”。
- “多头”基线是摆设。 它与单头 delta 规则在数学上等价,结果逐位相同。“门控本身不降低遗忘”的说法因此作废。
- 学习量不同造成地板效应。 遗忘的上限是“学习准确率 − 0.5”,学得少的天然遗忘得少。
匹配学习量的登记检验给出:26 个可比格子里 20 个等价、25 个均值为负。结论变成:隔间看起来减少遗忘,主要是因为它们学得少。
3.2 持续学习审计:基线崩了,对照也崩了
- 登记的“类内顺序流”让所有反向传播基线在任务内第一个类上就崩,学习准确率恰好是两类的随机水平。补了交错流并扩展了学习率网格,原结果保留。
- 论文的稠密对照在 CIFAR 上是随机水平(权重饱和、argmax 全是并列)。换成同一个分类器后,稀疏的优势从 +0.56、+0.13、+0.07 缩到约 3 个百分点以内。
- 结果缓存是一个大文件,多进程同时写会互相覆盖,改成每个键一个文件并加了并发测试。
(详见第 4 篇。)
3.3 觅食:20 个世界不够
20 个、60 个世界里“真实连线略强”的迹象,在重跑中消失:同一批世界仅因智能体内部随机数不同,净奖励就波动约 5,小于约 10 的差异分不出来。改为先登记,再跑 200 个新世界:真实 ≈ 打乱(−0.4,区间 [−3.6, +2.8]),随机稀疏反而更好(多 6.9 到 8.3)。另有一处实现假象的排查,见第 3 篇。
3.4 旅行商:每一轮降一次级
- 第一轮(100 个实例): “没有特征映射超过 0.5pp”改为“不确定”;调参集上的 R2 优势(约 4.84 对 2.7)到测试集消失,是赢家诅咒。
- 第二轮(300 个实例): 边的特征与距离的相关为 0.85,各回路只是“距离加一点平滑偏置”,彼此等价是设计的必然。分析脚本在登记之后被改过一次,哈希对不上,也被列了出来。
- 第三轮(转角上下文): 学习价值按转角分箱后的残差只有 ±0.01 到 0.02,没有趋势,学习器没学到转角。
(详见第 6 篇。)
4. 可带走的做法:五条
- 阳性对照先于“没有效应”。 要写“没有效应”,先证明设计在有效应时测得出来。
- “等价”用区间说话。 写下边界,让区间自己落进去或落不进去。
- 对照和基线本身要先审。 看它们的绝对水平,不只看差。
- 找没有上下文的人(或 agent)审查。 一份报告几分钟就出来,每次都改变了某句话。它不是权威,关键发现要自己复核再改。
- 保留原结果,写偏离日志。 记下登记写的是什么、改成了什么、为什么。
5. 盲区:这套流程没解决的事
- 哈希可以晚于调参。旅行商第三轮的哈希在调参之后才锁,只冻结了调参结果,不能证明设计先于调参固定。
- 登记本身会写错。登记的数据流让基线退化,登记的 R4 设定让所有臂饱和,只能事后记入偏离。
- 审查者只能抓到它读到的。
- 协议保证不了“测得出来”,只能保证“没有事后改口径”。
6. 下一篇
第 3 篇:觅食和果蝇群。
文件位置:各实验目录里的 PREREG_*.md、*.sha256、DEVIATIONS*.md、verification/。图由 blog/figures/make_figures.py 生成。
文章概念网络
从章节进入正文概念。实线表示所属层级,虚线连接跨章节重复出现的概念,不代表因果关系。
34 / 44 个节点 · 正文标记术语与关键词概念
怎么不被自己骗:预先登记、哈希冻结和子 agent 审查
回到原文 ↗最后更新于 2026-10-21
引用本文
@article{2026-10-21-fly-connectome-02-protocol-and-review,
author = {枫语},
title = {怎么不被自己骗:预先登记、哈希冻结和子 agent 审查},
journal = {枫语},
year = {2026},
month = {oct},
url = {https://meiluosi.github.io/posts/2026-10-21-fly-connectome-02-protocol-and-review/}
}