5.0 信息论基础
核心问题: 什么是信息?如何衡量信息的不确定性?
在线 Notebook
对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明。
为什么需要理解信息论
在 LLM 中:
- 交叉熵损失是训练的核心目标函数
- KL 散度用于衡量两个概率分布的差异
- 互信息用于理解特征之间的依赖关系
- 困惑度用于评估模型性能
理解信息论可以帮助我们理解 LLM 的训练目标和评估指标。
信息熵
信息的定义
信息量衡量一个事件发生时带来的"惊讶程度":
其中
直观理解:
- 概率高的事件(容易发生):信息量小
- 概率低的事件(难以发生):信息量大
例子:
- "明天太阳升起":
,信息量 ≈ 0 - "明天下雨":
,信息量 ≈ 1.74 bits
熵(Entropy)
定义: 熵是信息量的期望值,衡量一个概率分布的不确定性:
或者对连续分布:
单位:
- 以 2 为底:bits
- 以
为底:nats - 以 10 为底:dits
熵的性质
| 性质 | 说明 |
|---|---|
| 非负性 | |
| 最大值 | 当分布均匀时最大, |
| 最小值 | 当分布确定时为 0 |
例子
均匀分布:
二元分布:
最大值在
条件熵和联合熵
条件熵
定义: 给定
直观理解: 如果我们已经知道
联合熵
定义: 两个随机变量的联合分布的熵:
链式法则
交叉熵
定义
交叉熵衡量用一个分布
与熵的关系
其中
在 LLM 中的应用
在语言模型中:
:真实的下一个 token 的分布(one-hot 编码) :模型预测的下一个 token 的分布
损失函数:
对于 one-hot 编码,这简化为:
其中
KL 散度
定义
Kullback-Leibler 散度衡量两个概率分布的差异:
性质
| 性质 | 说明 |
|---|---|
| 非负性 | |
| 非对称性 | |
| 零点 | 当 |
直观理解
小: 是 的好近似 大: 与 差异大
在 LLM 中的应用
微调(Fine-tuning)中的 KL 散度:
在强化学习微调中,使用 KL 散度来防止模型偏离原始预训练分布太远:
互信息
定义
互信息衡量两个随机变量之间的依赖程度:
与熵的关系
直观理解: 互信息是知道
性质
| 性质 | 说明 |
|---|---|
| 对称性 | |
| 非负性 | |
| 独立性 | 当 |
在深度学习中的应用
信息瓶颈(Information Bottleneck):
在神经网络中,中间层应该:
- 最大化与输出的互信息:
大 - 最小化与输入的互信息:
小
这样可以学到压缩但有用的表示。
困惑度
定义
困惑度是衡量语言模型性能的常用指标:
或者用自然对数:
直观理解
困惑度可以理解为模型在预测下一个 token 时的"平均分支因子":
- 困惑度 = 2:模型平均在 2 个候选中选择
- 困惑度 = 100:模型平均在 100 个候选中选择
与交叉熵的关系
所以最小化交叉熵等价于最小化困惑度。
信息论中的不等式
Jensen 不等式
对于凸函数
应用: 证明 KL 散度非负
Gibbs 不等式
直观理解: 用错误的分布编码总是比用正确的分布编码更长。
信息论在 LLM 中的应用
1. 训练目标
最小化交叉熵:
这等价于最大化模型对真实数据的似然。
2. 评估指标
困惑度:
困惑度越低,模型越好。
3. 微调中的正则化
KL 散度正则化:
防止模型过度改变原始分布。
4. 对比学习
最大化互信息:
其中
实践建议
监控训练
在训练 LLM 时,应该监控:
- [ ] 交叉熵损失:应该单调下降
- [ ] 困惑度:应该单调下降
- [ ] 验证集困惑度:检查过拟合
常见问题
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 损失不下降 | 学习率太小或数据有问题 | 增加学习率,检查数据 |
| 损失 NaN | 数值不稳定或学习率太大 | 降低学习率,使用梯度裁剪 |
| 困惑度很高 | 模型容量不足或训练不足 | 增加模型大小或训练时间 |
| 过拟合 | 模型过大或训练时间太长 | 使用正则化或早停 |
信息论的直觉
记住这些关键概念:
- 熵:不确定性的度量
- 交叉熵:编码成本
- KL 散度:分布之间的距离
- 互信息:变量之间的依赖
- 困惑度:模型的平均分支因子
与后续章节的连接
- 5.1-5.4:LLM 训练中的信息论应用
- 第6-8章:微调、对齐、多模态学习中的信息论
- 扩展:信息瓶颈、对比学习、互信息最大化
进一步阅读
经典教材:
- Cover & Thomas, "Elements of Information Theory"
- MacKay, "Information Theory, Inference, and Learning Algorithms"
论文:
- Tishby & Schwartz-Ziv, "Opening the Black Box of Deep Neural Networks via Information"
- Alemi et al., "Deep Variational Information Bottleneck"
关键要点:
- 熵衡量不确定性,是信息论的基础
- 交叉熵是 LLM 的损失函数,最小化它等价于最大化似然
- KL 散度衡量分布差异,用于微调中的正则化
- 互信息衡量依赖关系,用于对比学习
- 困惑度是评估指标,反映模型的预测能力
