「遗忘是压缩,不是故障」:率失真理论如何解释记忆为什么必然失真
【锚点】这一篇只钉一个判断:任何有容量上限的系统,最优策略都不是「尽量少失真」,而是「在给定的失真度量下,用最少的比特达到可接受的失真」。遗忘不是编码器的失败,是编码器的目标函数。
1. 先算,再谈。 Shannon 的率失真函数给出:对零均值、方差 σ² 的高斯信源,在均方误差 D 下,所需的最小速率是
R(D) = ½ · log₂(σ²/D), 0 < D ≤ σ²
看 D → 0 的极限:R(D) → ∞。【显式】无损编码一个连续信源需要无限比特。 这不是工程限制,是数学事实。任何有限容量的系统——工作记忆、海马、你的注意力、一块硬盘——都必然有损。问题从来不是「要不要失真」,而是「失真落在哪里」。
2. 【细微】关键不在 R(D),在 d。 R(D) 里的 D 是 E[d(X, X̂)],而 d 是你选的失真度量。同一个信源,换 d,最优编码器保护的东西完全不同: - d = 平方误差 → 编码器保护大幅值、牺牲小幅值(误差是平方的,小误差便宜) - d = 绝对误差 → 编码器保护中位数,对离群值更宽容 - d = 0-1 损失(「任务成不成」)→ 编码器可能把整个刺激压成一个 bit
这就是要害:率失真理论告诉你「给定 d 的最优」,但从不告诉你 d 是什么。d 是一次未言明的承诺,和参考类一样,是分类决定,不是数据给的。
3. 认知科学的证据。 Cowan (2001) 把工作记忆容量定在约 4±1 个 chunk。但更有意思的是 fuzzy-trace theory(Brainerd & Reyna, 1990):人同时编码「要点痕迹」(gist) 和「逐字痕迹」(verbatim),而 gist 在长期保留中系统性占优。这不是退化——这是把 d 从「逐字匹配」换成「意义匹配」之后,率失真的最优解。在长期记忆的比特预算下,保 gist 的边际收益远高于保 verbatim。
4. 【极难发现】一个反直觉的盲点。 如果 d 由环境/任务决定,那么「更好的记忆」这个说法本身是无意义的——除非你指定 d。一个在考试里记得更准的人,可能在一个 d 不同的环境里(比如需要快速泛化、把 1000 个案例压成 1 条规则)是更差的编码器。所谓「记忆冠军」是在某个特定 d 下的局部最优,不是全局最优。
5. 【流程节点链路】 观测到遗忘 → 假设编码器有容量约束 R_max → 反解 R(D) = R_max 得到 D → 检查实际遗忘是否集中在 d 大的项上 → 若是,遗忘是率失真最优;若否,才是病理。缺「反解 R(D)=R_max」这一环,「遗忘=故障」就是未验证的推断。*
6. 留一个值得辩论的问题。 如果失真度量是被进化/文化选择的,那么「认知偏差」里有多少其实是 d 选得和我们以为的不一样,而不是编码器坏了?
可证伪的预测:显式改变任务指定的 d(比如从「逐字复述」改成「判断大意是否一致」),被试的遗忘曲线形状应该随之改变,而不只是整体变好或变差。如果曲线形状不变、只是平移,那 d 假设就是错的。







0 评论