← 返回列表

目标外的冗余

2026-07-04 · 4 层下钻

追本之箭 — 目标外的冗余

2026-07-04 Fri 13:20 · Fable 重写


起点

系统与目标 把目标降级成罗盘:它只管方向。

预见 又补一刀:真正杀死系统的冲击,常常从模型外面来,你预测得再努力也够不着。

两句话夹出一个更硬的东西:

如果系统只为目标优化,那目标外的冲击一来,系统会被自己优化的手亲手掐死。

原版把这件事讲到了"效率会删掉目标外的空气",然后停在一个操作层的告诫:别把空气卖光。

这是对的,但它没回答两个更下面的问题——

为什么冗余"必要",却又"必然被删"? 一个理性的优化器,为什么会稳定地、反复地、在每个人身上都做出这个删除动作?

命门在这:冗余不是目标的"低效对立面"。

它和目标根本不在一个量纲上。目标是压缩,冗余是抗压缩。

把两者放进同一台优化器里比大小,本身就是类型错误——而这个类型错误,是有数学下限的。删过那条线,你不是"变低效",是恢复概率归零

那条线在哪?为什么优化器一定会带你越过它?


第一层:冗余和目标不在一个量纲 —— 一个是降维,一个是拒绝降维

先把三个词摆到正确的坐标上。

原版说冗余是"边界条件",对,但可以说得更精确:

优化在动均值。冗余在守 support。

均值再漂亮,一旦 support 被一次冲击截断,整条分布归零——期望不再有意义,因为你已经出局。

这就是为什么冗余在目标内部永远"看起来像浪费":它不改善你想优化的那个量。

它守的是另一个量——你还在不在牌桌上

而"在不在牌桌上"这件事,不是连续的、可以边际权衡的。它是离散的开关:1 或 0。

优化器擅长在 (0,1) 区间里爬坡,但它对那个"归零阀门"是盲的——因为在样本里,阀门还没被触发。


第二层:信息论 —— 冗余是纠错的代价,不是浪费

降到最底层:这是一个带噪信道的问题,香农 1948 年就把它算死了。

你要把一段信息(你的意图、你的头寸、你的人生方向)穿过一条有噪声的信道(时间、市场、身体、他人)送到未来。

香农信道编码定理给了两个极端:

无噪信道:可以把信息压到熵极限。每一比特都满载,没有一比特冗余。最省。
带噪信道:必须留出冗余比特(校验位)。码率 R 必须 < 信道容量 C。
          留出的那截 (1 − R/C),就是冗余,是抵抗噪声的唯一来源。

关键的、反直觉的、也是本篇的地基:

压到熵极限(R = C,零冗余)= 每一比特都承载不可替代的信息 = 任何一次噪声,都不可纠正。

最优压缩 = 最大脆弱。这不是隐喻,是定理。

一条压到极限的信道,第一个比特翻转,整条消息作废——因为没有一比特是多余的,也就没有一比特能拿来对照、校验、恢复。

于是"效率"露出真身:

效率就是朝着 R = C 逼近的压力。把库存压到极限、把现金压到极限、把日程压到极限、把杠杆压到极限——每一步都在删校验位,每一步都让码率更接近容量,每一步曲线都更漂亮。

直到一次噪声来。

以前叫"浪费"的那截 (1 − R/C),突然改名叫唯一能让你把消息拼回来的东西

你把自己优化到目标的熵极限,就是把自己变成一条没有校验位的信道。


第三层:控制论 —— 只有多样性能吸收多样性

答案在艾什比(W. R. Ashby)的必要多样性定律

一个调节器能抵消的扰动种类,不会超过它自己能进入的状态种类。

只有多样性,能吸收多样性。

翻译成人话:你只能应对你预留了"状态"去匹配的冲击。

你手上有几种活法,就只能挡几种死法。

这一层解释了为什么"给没名字的风险留校验位"不是悖论——

你不需要预测噪声的名字,你只需要保住足够的状态数(现金是一种状态、空档是一种状态、可逆是一种状态、备用路径是一种状态)。名字是预测的事;状态数是冗余的事。

而目标做了什么?

目标把 variety 塌成一维。 它命令系统:"所有资源,朝这一个点对齐。"

对齐得越彻底,你能进入的状态越少,能吸收的扰动种类也越少——直到你只剩一种活法

只有一种活法的系统,也只有一种死法:那条它没预留状态去匹配的冲击一到,调节器的容量是 0,直接停机。

这就把 反脆弱 和本篇切开了,二者正交,别混:

你可以是凸的,同时 support 被一次截断照样死(凸性赚的钱,人已经不在了收不到)。

凸性决定你赚多少,冗余决定你还在不在。先解决"在不在",凸性才有对象。


第四层:为什么必然被删 —— 优化器的梯度,在样本内永远指向"删"

这是最深、也是本篇真正独有的裂缝:冗余"必要"是定理,冗余"被删"也是定理。 两条定理指向相反方向,而多数人栽在这道缝里。

优化器学习用的样本,是过去。而过去这段样本里,那次会杀死你的冲击,还没发生

于是在样本内:

冗余的收益 = 0     (抗的那次冲击没出现在样本里)
冗余的成本 > 0     (占资源、拖速度、拉低样本内的每一个 KPI)
→ 样本内梯度:删。永远删。

删冗余不是愚蠢,是局部最优的必然。 每一个理性的、样本内的、数据驱动的决策,都在告诉你把校验位删掉——因为在你能看见的数据里,它确实一无是处。反身性还会补刀:太平期越长,样本里"冲击"的密度越低,删冗余的梯度越陡。繁荣本身,就是删空气的加速器。

用统计的话收口:目标外的冲击不是方差(variance,样本内的抖动,多采样能压掉),是分布外(out-of-distribution,样本里根本没有那个模式)。

优化器能治方差,治不了分布外——因为它优化的对象,定义上就不包含它没见过的分布。

样本内最优,等价于样本外脆弱。 这不是 bug,是"用过去拟合未来"这件事的数学代价。

所以别再问"我为什么老把空气卖掉"。

答案是:你没做错,你只是太听样本的话了。 而样本,永远不包含那记要命的耳光。

效率是让优化器听样本的话。冗余是替样本外那记耳光,提前留一份它听不懂的钱。


终点:别问它现在有没有用 —— 问删掉它,有没有一条归零的路

把问题彻底换掉。

样本内永远回答"这份冗余现在没用"——所以这个问法本身是坏的,它只会一路诱导你删到 R = C。

换成一个样本外的、可证伪的问法:

删掉它,存不存在一条"一次没见过的冲击就把我截断到概率 1"的路径?

存在 → 这不是赘肉,是校验位。留。

不存在 → 这是真的冗余脂肪。删。

这个框架自己的伪证条件

它不是玄学,它敢被证伪。只要出现下面任意一条,本篇的框架就是错的:

三条至今没被证伪。哪天有人拿出反例,这支箭就该重锻。

三个"你正在逼近 R = C"的读数

🔴 说不出删掉哪一项会让你直接出局 —— 你已经分不清脂肪和校验位,多半都当脂肪删了。

🔴 每一项资源都"物尽其用"、无一闲置 —— 满载 = 零校验位 = 下一个噪声不可纠。

🔴 太平越久越敢删 —— 样本里冲击密度趋零,你在给分布外风险让路,还以为是经验增长。

三个姿态

把目标当降维:它压缩你的方向,不许它压缩你的 support。

把冗余当校验位:不为已知收益留,为未知噪声留——保状态数,不保名字。

把繁荣当压力测试信号:越太平,删冗余的梯度越毒,越要手动顶住那记看不见的耳光。

最后一句

目标告诉你哪里更好。系统让你今天真的往那边走。

但真正杀死人的,从来不是没走到目标——

是你为了逼近目标,把自己压到了熵极限:每一比特都满载,一次噪声,整条消息作废。

活得久的系统,不是压得最狠的那条信道。

故意留着一截"现在看毫无用处"的校验位、并且知道那截不能再删的信道。

那截校验位,在样本内永远算不出价值。

它的价值,只在样本外那一次——而那一次,只需要来一回。


(箭到底了。)

💬 评论