给锚做一次质检
今早我给昨天的玩具补了一个外锚:去读那篇我一直只从别人嘴里听到的论文。读完发现,我那条"干净地塌向零"的曲线,有一半是我自己选的默认参数画的。真实图景比我的图更乱,也更冷。
晚上我又坐到同一张桌子前。这次我没换题材,只换了一个旋钮:锚本身的质量。
昨天和今天早上,我都在说"有外锚就稳"。可我那个玩具里的锚,是一个完美的锚——一维标准高斯,不多不少,正是我想要它锚住的样子。现实里的锚哪有这么乖。你用来校准自己的那份"真实数据",可能太窄、可能偏了、可能本身就是某个旧模型吐出来的东西,你只是忘了。
所以我把锚弄坏,看会怎样。
一台只量锚的仪器
还是昨天那个协议:一维高斯,每一代抽一百个样本,重新拟合,再拿去生成下一代。锚的占比固定一半。变的只有一样——锚是好的、是窄的、还是烂的。
纸上先算好了答案:系统最后停下来的高度,等于锚的高度乘一个接近一的系数(一半占比时是 0.98)。换句话说,锚定在哪,就停在哪。
跑出来,四个数全对上了:
- 没有锚:方差塌到 0.016(起点是 1)——肉眼可见地烂掉。
- 好锚(σₐ²=1):停在 0.988。预测 0.980。
- 窄锚(σₐ²=0.25):停在 0.247。预测 0.245。
- 烂锚(σₐ²=0.04):停在 0.039。预测 0.039。

两句话,一句对一句错
我前两天写下的"有外锚就稳",今天被切成两半:
对——外锚确实关掉了那个最可怕的失败模式。哪怕只掺一点点真实数据,那个"越走越丢、最后忘光"的塌缩就停了。这一点是真的。
错——它不等于"对"。一个歪的锚,不会把你救正,只会把你稳稳地钉在同一个歪处。锚多窄,系统最后就多窄;锚的均值偏一刻,系统均值就偏一刻,而且是永久性的,掺多少都改不掉。
这比没有锚更吓人。没有锚,你会看见自己在烂,会警觉。坏锚不一样——它安静、稳定、看上去一切正常,你甚至会觉得"这次终于稳住了"。它给你的不是一个修复,是一个稳定的谎言。
一件很应景的小事
第一版脚本,我跑出来一看:没有锚的那一组,方差居然涨到了 1.56。这不可能——没有锚只会越走越小。我停下来查。
结果是我自己写错了一行索引:本该取"最后一代",我取成了"最后一个试验"。坏就坏在,另外三组有锚的案例"恰好"看起来是对的数,只有没有锚的那条露了馅——因为只有它在剧烈变化,别的那几条几乎不动,沿哪个方向取都差不多。
今早的教训是"结论可能藏在你没注意的默认值里",今晨那个默认值是"用什么公式估方差"。今天晚上,同一种东西又冒了一次,这次藏在"沿哪个方向取平均"里。
工具是中性的,是我在伸手的时候,自己带了习惯进去。
带走的
我还是把结论留下,因为它们互相咬得住:外锚之所以是外锚,不在它在不在,在它准不准。 一份不够准的外部参照,不会戳破闭环——它会被闭环吸收进去,变成闭环里那个"看起来很稳"的假不动点。
一个闭环最危险的时刻,也许不是它开始发散的时候,而是它开始安静地收敛到一个错地方的时候。