CSYS5030 Week 03 What is Information? I 讲课总结
CSYS5030 Week 03 讲课总结:Mutual Information
课程:CSYS5030 — Information Theory and Self-Organisation 讲师:Associate Professor Joseph Lizier 对应模块:Module 3 - What is Information? I(Contents: Mutual information) 来源:Week 03 seminar 字幕 + Canvas Module 3 页面 Tutorial 覆盖:Items 4、6、7
老师这一讲的定位很明确: "Entropy tells us about uncertainties. That's fine. From a data science perspective, mutual information is far more interesting. This is now about finding relationships between variables." 熵只是铺垫——互信息才是信息论真正有用的地方。
一、Scissors-Paper-Rock 数据分析(Stage 1–2)
Week 2
收集的对战数据这周开始分析。数据结构:每组对战一个文件夹,第 1
列是玩家 1 的出招、第 2 列是玩家 2 的、第 3 列是胜负,招式用
0/1/2 编码剪刀/布/石头。
提问环节:能问数据什么问题
老师让大家先讨论「用信息论分析这个数据集,我们想量什么」。他挑出的表述得好的问题:
- 一个玩家的决定会影响对手下一局的决定吗?(可直接用互信息测)
- 能否根据对手上一步预测他的下一步?
- 在什么条件下他们倾向于重复同一个手势?(可以测「变 / 不变」的信息,而不是招式本身的信息)
- 成功的玩家是否使用更高熵的策略?
最重要的一课:样本混池的陷阱
计算某玩家的熵时,做法是把他所有场次的出招拼成一个长向量再算——不是分别算各场再平均。
但这里藏着一个严重的解读陷阱。
老师举的例子:假设一个玩家
- 第一组比赛全出石头
- 第二组全出剪刀
- 第三组全出布
每一组内部熵都极低(完全可预测)。但把三组样本混在一起之后,三种招式看起来等概率,熵接近最大值
老师的原话(值得背下来): "It's answering that question perfectly. It's just not necessarily the question we think we're asking." (它完美回答了它被问的那个问题——只是那未必是我们以为自己在问的问题。)
熵实际回答的问题是:「如果我从这堆样本里随机抽一个,我对它的取值有多不确定?」 它不关心样本的时序结构——一旦样本被放进池子,估计器就把它们当作等权重的独立抽样。
所以那个假设失败了:全班数据算出来,熵与胜率的相关性只是轻微为负,且不具统计显著性。
原因:熵把「真随机」和「完美循环」混为一谈。一个按「剪刀→布→石头」严格循环的玩家,熵是满的,但完全可被预测。
正确的问法是:「在我已经看到他上一步的前提下,我对他下一步有多不确定?」——这就是 conditional entropy,也正是 Week 4 要做的事。
💡 另一个课堂澄清:如果所有玩家的出招互相关联,每个人的单变量熵仍是满的,但联合熵不会增加。而这里算的是把所有人的样本串成一条——仍然是单变量熵,只是从每个玩家那里各取样本。
二、Cross-Entropy 与 KL Divergence
📌 老师说这部分在短视频里带过了,但因为在机器学习里太重要,专门花了几分钟补讲。后续课程不会再用,但值得懂。
Cross-entropy(交叉熵)
含义:当符号的真实分布是
为什么:内层的
老师的极端例子(接 Week 2 的英文字母分析):
- 按英文字母分布,字母 J 要用 10.7 bits 编码(因为它很罕见)
- 但假设你的实际文本只有 J,即
- 那么每一个符号都花 10.7 bits → 交叉熵极大
在机器学习里:用来算 loss——比较模型预测的类别概率分布与真实分布的差距。
KL Divergence(相对熵)
含义:用错误的分布
关于
这个记号(有同学问):老师给的是直觉而非形式定义——它只是表示这两者之间在做比较。
三、Mutual Information(互信息)
定义
Venn 图直觉:就是两个变量信息内容的重叠部分。(Week 2 用同一张图理解条件熵,这周用它理解互信息。)
三条性质
| 性质 | 说明 |
|---|---|
| 非负 | |
| 上界 | |
| 对称 |
六种解读(这是本讲最该掌握的部分)
| # | 视角 | 表述 |
|---|---|---|
| 1 | KL 散度 | 互信息 = 真实联合分布与假设独立时的分布之间的 KL 散度。两个变量越不独立,互信息越大 |
| 2 | Bayesian(老师最爱) | |
| 3 | 编码代价 | 假设 |
| 4 | 统计视角 | 衡量对独立性的偏离。 |
| 5 | 非线性相关 | 可以当作相关性的非线性版本(连续值变量时关系更强,约两三周后讲) |
| 6 | 自信息 |
关于第 2 条,老师特别说:"For me, this is the most useful way to write it down. It's not necessarily the one you'll see most often." 它把互信息直接写成「知道
之后对 的判断」相对「不知道 时」的改变。
四、Pointwise Mutual Information(逐点互信息)
从平均回到单个样本
熵体系是先有 Shannon information content(单样本),再取平均得到熵。互信息反过来——先给了平均量,现在往回拆到单个样本。
含义:在这一对具体的样本里,看到这个
改写成惊讶度之差更直观:
它可以是负的 —— Misinformation(误导信息)
这是熵体系里从未出现过的现象:
| 情况 | 比值 | 含义 | |
|---|---|---|---|
| 正 | |||
| 负 |
编码视角:负值意味着考虑了
天气预报例子(老师最爱的例子)
设
| 场景 | 条件概率 | 计算 | 结果 |
|---|---|---|---|
| 预报晴,实际下雨 | −2 bits(误导) | ||
| 预报雨,实际下雨 | +2 bits(强信息) |
关键点:互信息只是这些逐点值的平均。平均值必然非负,但单个样本完全可以是负的——拆开看逐点值,才能理解关系的细节。
五、扩展活动:英文文本中的互信息
延续 Week 2 的 Seinfeld 剧本数据集,这次用互信息看相邻字符之间的关系。
平均互信息
相邻两个字符之间的互信息 ≈ 0.7 bits。
这个数字大不大? 老师的解读:1 bit 的不确定性减少 = 把可能性空间砍掉一半。0.7 bits 已经很接近了——光靠前一个字符,就能把下一个字符的可能范围削掉将近一半。 对比 Week 1 算过的单字符熵约 4.2 bits,0.7 不算巨大,但已经是相当可观的信息量。
随 lag 衰减
不只看前 1 个字符,还看前 2、3、4 个——信息量随 lag 增大而衰减,但即使隔 3 个字符仍有可观的信息。
逐点互信息:最有意思的部分
对所有字母配对算逐点互信息,画成热力图:
| 配对 | 逐点 MI | 解释 |
|---|---|---|
| Z → Z | 最强正值 | 英文里 zz
组合常见(buzz、jazz),看到第一个 Z 极大降低了对第二个 Z 的惊讶 |
| Q → U | 强正值 | 老师最爱的例子——Q 后面几乎必然是 U |
| V → N | 负值 | 「我想不出任何一个英文单词里 V 后面直接跟 N」——看到 V 之后,对 N 的预期反而比不看前一个字符时更低 |
V → N 是 misinformation 的真实数据实例——不是构造出来的玩具例子。
六、考点重点
- 样本混池的陷阱:把多组样本拼成一池算熵,回答的是「随机抽一个样本的不确定性」,不是「策略的可预测性」。完美循环的策略也有满熵。 要问后者必须用条件熵。
- Cross-entropy
:真实分布 、按 编码时的平均码长;机器学习的 loss。 - KL divergence
:用错分布编码的额外代价。 - 互信息定义
;非负、上界 、对称。 - 六种解读全部要会,尤其:
(统计视角) (自信息)- Bayesian 形式
- Pointwise MI
—— 可以为负 = misinformation。会算天气预报例子的 −2 / +2 bits。 - 互信息是逐点值的平均:平均非负,单点可负。
- 实测数据要有印象:Seinfeld 相邻字符 MI ≈ 0.7 bits;单字符熵约 4.2 bits;ZZ 最强、Q→U 强、V→N 为负。
七、本讲与前后的衔接
| 内容 | 回答的问题 | |
|---|---|---|
| Week 1–2 | 熵、联合熵、条件熵 | 一个变量有多不确定 |
| Week 3 | 互信息、逐点互信息 | 两个变量之间有多少共享信息 |
| Week 4 | 条件互信息 | 引入第三个变量后,关系如何变化 |
老师说互信息是「model free 的关系分析工具」——不需要假设线性、不需要指定模型形式。Week 8 会看到它用于机器学习的特征选择。