AI 语音助手听你说完「今天天气真」,屏幕上跳出三个候选:好、不错、热。它其实没有把握,只是在几个字之间分配了概率。这套分配有多分散,用一个数字就能概括,就是信息熵。熵高的地方,模型在犹豫;熵低的地方,模型几乎认定。理解这个数字,能帮你看懂分类模型在优化什么、为什么有些回答天生更容易出错,以及「压缩」和「预测」为什么是同一件事的两面。下面按四层展开:它量的是什么、由什么决定、为什么用对数、在 AI 里怎么变成损失。
它量的是「猜中的难度」
想一个 0 到 15 之间的整数,我来猜,每次只能问是或否。最省力的问法是折半:先问「大于 7 吗」,再问「大于 3 吗」,四轮之内必定确定。如果这 16 个数出现的可能性完全一样,平均正好需要四轮,这个「四」就是熵,单位是比特。换一个设定:这个数恒等于 7,一轮都不用问,熵是 0。再换一个:九成概率是 7,其余十五个数平分剩下的一成,你多半第一轮就猜中,偶尔要多问几轮,平均下来远小于四。三组设定说明同一件事:熵衡量的是平均要问多少个问题才能确定答案,结果越分散,问得越多。
三个因素决定熵的大小
| 因素 | 变化方向 | 例子 | 直觉 |
|---|---|---|---|
| 可选结果的数量 | 越多,熵越高 | 二选一对十六选一 | 候选越多,越难一次猜中 |
| 概率的均匀程度 | 越均匀,熵越高 | 各占一半对九成对一成 | 有热门选项时,猜起来更省力 |
| 确定性 | 完全确定时降为 0 | 恒等于 7 | 没有悬念,就不携带新信息 |
| 计算底数 | 只改单位,不改排序 | 以 2 为底是比特,以 e 为底是奈特 | 换单位不改变谁更乱 |
第二行最反直觉。很多人以为熵高就是选项多,其实两个选项各占一半,熵已经达到这种情形下的上限;反过来,一百个选项里有一个占九成九,熵可能比二选一还低。熵描述的是分布的形状,跟选项的绝对数量没有直接关系。第四行是个提醒:看到熵的数值,先确认底数,否则跨文献比较会差一个常数倍。
为什么偏偏用对数
因为信息应该能相加。抛一枚硬币得到的结果,和再抛一枚得到的结果,两件事合起来的不确定性,理应是各自之和。而概率相乘、对数相加,正好对上。用对数还有一个附带好处:概率趋近于零时,负对数会迅速变大,把「几乎不可能却发生了」这种情况的冲击力放大,这符合直觉——真正让人吃惊的消息,往往来自极低概率的事件。至于取负号,纯粹是为了让结果为正数,便于书写和比较。
在 AI 里,它变成了损失函数
分类模型输出的是一组概率,训练时要衡量这组概率和真实标签差多远。常用的交叉熵,就是把真实分布的熵和两个分布之间的差异合在一起。真实标签是独热的,它的熵为零,于是最小化交叉熵就等于最小化那部分差异,具体推导可以看 交叉熵 和 KL 散度 的关系。决策树走另一条路:每次分裂都试着让子节点的加权熵降得最多,降下来的部分叫信息增益,决策树 的生长顺序就是这么定的。语言模型里常换成困惑度,它本质上是熵的指数形式,数值上更直观——困惑度为十,大致相当于在十个候选里犹豫。
熵看不见的那一面
熵只描述分布的形状,不描述内容的价值。「明天太阳升起」的熵接近零,「明天会不会下雨」的熵明显更高,可前一句在多数语境里毫无用处,后一句才值得关注。熵也不知道对错:一个模型把正确答案的概率给到 0.4、把错误答案给到 0.6,和反过来给,熵可能一样高,后果却完全不同。实际估计熵时还有一层偏差,真实分布通常未知,只能用样本频率去估,样本少的时候会系统性低估熵,这也是小样本评估容易显得「模型很确定」的原因之一。最后一层限制来自场景:开放式创作希望熵高一些,事实问答希望熵低一些,同一个数值在不同任务里的好坏判断是反的。
普通人可以怎么用
两个场景。一是看模型的自信:如果产品给出了置信度或候选列表,候选越分散,越该人工核对,尤其在需要准确答案的场合。二是理解压缩:文件能被压小,靠的是内容里有可预测的重复,熵低才压得动;一段完全随机的数据几乎压不下去。这条直觉也解释了为什么「预测下一个词」能训练出通用的语言能力——预测得越准,说明对文本结构的把握越深。
速查:信息熵
- 一句话:平均需要多少个是或否的问题才能确定答案
- 三因素:结果数量、分布均匀度、确定性
- 极值:完全确定时为 0,等概率时最大
- AI 用途:交叉熵损失、决策树的信息增益、语言模型的困惑度
- 别误读:熵高只代表难猜,不代表错,也不代表重要


