8.3 机器学习与 AI:信息瓶颈视角


8.3 机器学习与 AI:信息瓶颈视角

本节摘要:把机器学习的主流工具接进信息论族谱——交叉熵损失是逐词条件熵分解的直接后代;互信息做特征选择与表征评估的用法与估计偏差陷阱;信息瓶颈理论如何把"学习"重述为"压缩输入、保留标签相关",以及这条思路在深度学习可解释性上的位置与争议。

训练损失函数的族谱

训练语言模型时最常写的目标叫"交叉熵损失"。这个名字不是巧合——它是信息论的直系亲属。回忆第 2 章的链式法则:整段文本的联合熵可以分解为"每个词在给定前文下的条件熵之和"。语言模型的训练目标正是最小化模型分布与真实分布之间的交叉熵,也就是让模型对"下一个词"的条件分布尽量贴近真实条件分布。逐词训练、逐词打分(困惑度以每词比特数计价)——整套流程是链式法则的工程化身,损失曲线直接读作"模型对语言的每词熵还差多少"。

分类任务同理:softmax 输出与独热标签的交叉熵,等价于"用模型分布编码真实标签的额外码长"。训练即在压缩——模型学得越好,用它编码数据的平均码长越短。这个视角近年甚至被推到极限:有研究直接把"训练后模型对数据的压缩长度"当作能力指标,把压缩与智能的古老联想做成了可测量的实验科学。

互信息上岗:特征选择与表征评估

第 2 章铸好的互信息砝码,在机器学习里最先的岗位是特征选择:特征与标签的互信息高者优先入选——不辨因果方向恰好是美德(第 2 章的结论在此兑现),先验知识少的场景尤其好用。

# 互信息做特征选择:哪些特征真的在"称"标签 from math import log2 def mi_binary_feature(p_label, p_feat_given_label): """二值特征与二值标签的互信息(手算小样本演示)""" joint = [[p_label[i] * p_feat_given_label[i][j] for j in range(2)] for i in range(2)] p_feat = [sum(joint[i][j] for i in range(2)) for j in range(2)] ent = lambda ps: -sum(p * log2(p) for p in ps if p > 0) return ent(p_label) + ent(p_feat) - sum( joint[i][j] * log2(joint[i][j] / (p_label[i] * p_feat[j])) for i in range(2) for j in range(2) if joint[i][j] > 0) label = [0.5, 0.5] # 标签均衡 feat_informative = [[0.9, 0.1], [0.1, 0.9]] # 特征强烈依赖标签 feat_weak = [[0.6, 0.4], [0.5, 0.5]] # 特征几乎与标签无关 feat_redundant = [[1.0, 0.0], [1.0, 0.0]] # 特征恒定(零信息) print(f"强特征互信息 = {mi_binary_feature(label, feat_informative):.4f} 比特") print(f"弱特征互信息 = {mi_binary_feature(label, feat_weak):.4f} 比特") print(f"恒定特征互信息 = {mi_binary_feature(label, feat_redundant):.4f} 比特") # 输出: # 强特征互信息 = 0.5310 比特 # 弱特征互信息 = 0.0073 比特 ← 依赖越弱, 互信息越小 # 恒定特征互信息 = 0.0000 比特 ← 方差为零的特征对标签零信息

三个读数给特征选择的三条经验做了信息论注脚:强依赖特征接近标签熵的一半(本例标签熵一比特,单特征至多贡献一比特,这里给出零点五三);弱依赖特征贡献微小——方差虽大但与标签错拍,几乎白占维度;恒定特征严格为零——零方差特征在滤波法里最先被淘汰,信息论给出的是同一个判据的精确版本。互信息筛选是过滤法(不训练模型、只看统计关联)家族里最贴近信息论的一种,与相关性系数相比的优势是捕获非线性关联——相关系数只盯线性关系,互信息对任何统计依赖都灵敏。

⚠️ 估计陷阱:小样本下的互信息系统性偏高。互信息的直接估计需要联合分布,样本少时大量"恰好出现"的巧合被当成关联。经验法则是每对候选取值至少要有几十个样本,或使用带偏差校正的估计器(惩罚项与"非零单元格数"成比例)。高维稀疏场景里未校正的互信息排序几乎必然失真——这是把它用进真实数据前必须知道的坑。

信息瓶颈:把"学习"写成压缩

二零一五年前后,塔什比等人提出用信息瓶颈理论审视深度网络:网络的每一层都被看作输入的压缩表示,好的表示应当尽量少地保留输入信息、尽量多地保留与标签相关的信息。形式化目标是一个权衡——最小化"层与输入的互信息"(压缩项)同时最大化"层与标签的互信息"(相关项),拉格朗日乘子在两者之间调温。这与第 3 章的速率失真、以及"充分统计"(第 7 章)一脉相承:速率失真压"输入",信息瓶颈压"输入中对标签有用的部分"——后者的失真度量由任务(标签)定义,是"任务的失真函数化"(第 3 章结尾预言的迁徙在此完成)。

信息瓶颈的两段压缩

这张图上可以读出三条重要推论。其一,数据处理不等式的约束:输入经中间层到标签构成马尔可夫链,标签与中间层的互信息不会超过标签与输入的互信息——网络不可能凭空创造标签信息,只能筛选(第 2 章的不等式在此站岗)。其二,泛化的压缩猜想:表示越小(对输入压缩越狠)泛化越好——"压缩即泛化"的口号由此而来,它与奥卡姆剃刀的传统直觉同源,但给出了可计算的量(互信息)。其三,两段式分工:训练前期中间层快速增加与标签的互信息(拟合阶段),后期缓慢丢弃与标签无关的输入信息(压缩阶段)——塔什比团队声称在小型网络上观测到了这个"相变",成为近年深度学习理论最有名的争论之一(后续研究对实验解读与拟合动力学提出异议,结论仍在打磨)。

争议本身就是价值。信息瓶颈的意义不在于已经解释了深度学习,而在于它给出了一个可计算、可测量、可证伪的理论语言——在此之前,"网络学到了什么"很难被写成数学。沿着这条线,表征学习的评估(中间层互信息的变化轨迹)、自监督学习(对比学习的InfoMax 目标:最大化两个视图的互信息)、公平性(表征中敏感属性互信息的上界约束)都有了统一的记账方式。

本节要点回顾

  • 交叉熵损失是链式法则的后代:逐词条件熵分解撑起了语言模型的训练与评估(困惑度以每词比特计价),"训练即在压缩";
  • 互信息特征选择捕获非线性关联、天然适合无先验场景;小样本估计系统性偏高,未校正的排序在高维稀疏下不可信;
  • 信息瓶颈把学习写成"压缩输入、保留标签相关"的两难权衡,是速率失真的任务化版本、充分统计的深度学习化身;
  • 三条推论:数据处理不等式禁止创造信息、压缩-泛化猜想、拟合-压缩两阶段——第三条仍在争论,且争论本身证明了这个语言的可证伪性;
  • 统一记账:对比学习、表征评估、公平性约束,都在互信息的账本上各记一行。

压缩与学习的账合上之后,最后一站是保密:香农如何用熵定义"完美保密",为什么现代密码选择了另一条路。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U