用最短描述长度让神经网络保持简单:给权重加噪声、按比特计价
Keeping Neural Networks Simple by Minimizing the Description Length of the Weights
- 作者
- Geoffrey E. Hinton, Drew van Camp
- 30u30 单元
- 04_Minimizing_Description_Length(讲解、实现与练习请到原仓库查看,本站不翻译、不改编,见导读)
本页目录(17)
一句话总结#
把“模型有多复杂”换算成“把权重发给别人要花多少比特”:总成本 = 描述权重的比特 + 描述预测误差的比特,最小化总成本就是在拟合和简单之间找平衡。
解决什么问题#
训练数据少、模型参数多时,网络很容易过拟合。论文开头给出一个判断标准:权重里包含的信息要远少于训练样本输出里包含的信息,网络才能泛化。
当时已有的限制信息量的办法各有缺点:
- 减少连接数:只能寄希望于每个权重里信息不多。
- 权重共享:需要事先知道任务的对称性。
- 把权重量化后按概率计比特:代价函数不光滑,难以用梯度优化。
作者要找一个可以求导、能直接用反向传播优化的信息量度量。
核心思想#
发送者与接收者#
论文借用了最小描述长度(MDL)原理的通信比喻:发送者能看到输入和正确输出,接收者只能看到输入。发送者先训练好网络,把权重发过去,再把每个样本上“网络输出和正确答案的差”发过去,接收者就能还原出正确输出。最好的模型是让权重成本 + 误差成本之和最小的那个。
从平方误差和权重衰减说起#
- 如果误差按零均值高斯分布编码,误差的描述长度就和平方误差成正比——这给了平方误差一个 MDL 解释。
- 如果权重也按固定方差的零均值高斯编码,权重成本就和权重平方和成正比——这正是常用的权重衰减。
- 作者指出这种粗糙版本的缺陷:它只看权重值的概率密度,却假定所有权重都按同样的精度传送,忽略了“有些权重根本不需要精确”这件事,论文称之为对比特的极大浪费。
带噪声的权重#
改为给每个权重一个高斯分布(一个均值、一个方差),训练时同时调整均值和方差:
- 方差大的权重传送起来便宜,但会让输出更不准,误差成本上升。
- 方差小的权重传送起来贵,但输出更准。
- 优化在两者之间自动取舍。
关键公式或机制#
1. 比特返还(bits back)论证#
发送者用随机比特从后验分布 Q 里抽出一个精确权重,按先验 P 编码发送;接收者收到全部权重和误差后,可以重跑同样的学习算法,恢复出 Q,进而还原出发送者当初用掉的那些随机比特。这些比特“免费”传过去了,应当从成本里扣掉。扣完之后,一个带噪权重的期望成本恰好是:
G(P, Q) = ∫ Q(w) · log( Q(w) / P(w) ) dw
也就是后验 Q 相对先验 P 的 KL 散度。
2. 精确导数#
对于一层非线性隐藏单元加线性输出单元的网络,作者给出了期望平方误差和权重信息量的精确导数计算方法,不需要蒙特卡洛模拟。
3. 混合高斯先验#
先验也可以用一个可学习的混合高斯分布(借鉴 Nowlan 与 Hinton 1992 年的工作),让权重自动聚成几簇;论文还给出了用混合先验时的编码方案。
4. 初步实验(论文所写)#
- 任务:预测一类多肽分子的有效性,每个分子用 128 个参数描述,训练集只有 105 个样本,测试集 420 个。
- 网络:4 个隐藏单元,共 521 个可调权重,比训练样本多得多。
- 先验:5 个高斯的混合分布。
- 相对误差:本文方法 0.286;同一网络不加噪声、不惩罚信息量为 0.967;简单权重衰减最好为 0.317;线性回归 35.6,加按测试集调好的岭惩罚后为 0.291。
作者自己的结论很克制:新方法在至少一个任务上略好于权重衰减,是否有竞争力还需要大量实验。他们还坦白指出,总描述长度最小的那个解,相对误差约为 1.0,几乎没有预测能力,这对 MDL 原理或他们的权重编码方式是一个严重的尴尬。
图解#
flowchart LR
S["发送者:看得到输入和正确输出"] -->|"1. 发送权重:成本约为 KL(Q ‖ P)"| R["接收者:只看得到输入"]
S -->|"2. 发送误差:成本随平方误差增加"| R
R --> O["接收者还原出正确输出"]
R -.->|"3. 重跑学习算法,收回随机比特"| BB["比特返还"]
图解:发送者先发送带噪权重,再发送每个样本上的误差,接收者据此还原正确输出;接收者重跑学习算法后还能收回发送者抽样时用掉的随机比特,所以权重的净成本是后验相对先验的 KL 散度。
关键原话#
“Supervised neural networks generalize well if there is much less information in the weights than there is in the output vectors of the training cases.”
和 Anthropic 笔记的对应#
这篇是 1993 年的理论论文,与 Anthropic 工程博客没有直接关系。下面只是思路上的类比:
| Anthropic 笔记 | 对得上的地方 |
|---|---|
| 面向 AI 智能体的上下文工程 | 那篇的指导原则是找到“能最大化期望结果概率的、最小的高信号 token 集合”,并强调最小不等于短。本文同样是在“描述得更省”和“结果更准”之间求总成本最小,而不是一味压缩。 |
| 为智能体编写工具 | 那篇用留出测试集防止对评测过拟合。本文讨论的正是过拟合的根源:模型携带的信息比数据能支撑的多。 |
读的时候要注意#
- 实验只有一个小任务:而且线性回归加岭惩罚(0.291)和本文方法(0.286)几乎一样,作者自己也解释了原因。
- 岭回归的惩罚是按测试集调的:论文写明了这一点,比较时要注意这对基线是有利的设置。
- “总描述长度最小的解几乎没用”:这个反例是论文自己报告的,读的时候别跳过。
- 和后来工作的关系:比特返还和 KL 形式的成本,后来常被视为变分推断、贝叶斯神经网络的前身(待核实:本笔记没有逐一核对后续文献对本文的引用方式)。
- 扫描 PDF 的排版:PDF 文字提取后连字(如 fi、ff)会丢失,引用原文时以 PDF 版面为准。
30u30 对应单元#
延伸阅读#
- Day 5:最小描述长度原理入门:MDL 的系统介绍。
- Day 26:Kolmogorov 复杂性:“描述长度”在理论上的源头。
- Day 23:变分有损自编码器:同样用到“比特返还”式的编码视角。
- 论文 PDF(Hinton 主页)
本笔记依据 2026-10-18 抓取的在线原文撰写,仅为导读与总结。原文:Geoffrey E. Hinton, Drew van Camp,《Keeping Neural Networks Simple by Minimizing the Description Length of the Weights》, COLT 1993。