本页深入熵的定义与性质:离散与连续情形、条件熵,以及 ML 里「不确定性」的量化方式。
段末注释:微分熵(differential entropy)$h(X) = -\int f(x)\log f(x),\mathrm{d}x$ 为连续随机变量的熵;可为负,且与坐标变换有关,解释时需谨慎。
1. 离散熵(D2–D3)

$$
H(X) = -\sum_{x \in \mathcal{X}} p(x) \log p(x)
$$
直观:平均需要多少 bit(或 nat)来编码来自 $p$ 的样本。
| 分布 | $H(X)$ |
|---|---|
| 确定性 $p(x_0)=1$ | $0$ |
| 均匀 $K$ 类 | $\log K$ |
| Bernoulli($p$) | $H_2(p) = -p\log p -(1-p)\log(1-p)$ |
Gibbs 不等式:对任意 $q$,$H(P) \le -\sum p(x)\log q(x)$,等号当 $q=p$。
2. 联合与条件熵(D3)

$$
H(X,Y) = H(X) + H(Y \mid X) = H(Y) + H(X \mid Y)
$$
$$
H(Y \mid X) = -\sum_{x,y} p(x,y) \log p(y \mid x)
$$
链式法则(序列建模基础):
$$
H(X_1,\ldots,X_n) = \sum_{i=1}^n H(X_i \mid X_1,\ldots,X_{i-1})
$$
语言模型:$H(X_i \mid x_{<i})$ 即 next-token 的理想编码长度;模型 CE 逼近该条件熵。
3. 微分熵(D3)
连续 $X \sim f(x)$:
$$
h(X) = -\int_{-\infty}^{\infty} f(x) \log f(x) ,\mathrm{d}x
$$
| 分布 | 微分熵 |
|---|---|
| 均匀 $U(a,b)$ | $\log(b-a)$ |
| $\mathcal{N}(\mu, \sigma^2)$ | $\frac12 \log(2\pi e \sigma^2)$ |
| 指数 $\lambda$ | $1 - \log \lambda$ |
注意:$h(X)$ 可负;换变量 $Y=g(X)$ 时 $h(Y) \neq h(X)$(与离散熵不同)。ML 中「连续熵」多用于高斯 VAE 等,日常分类用离散 CE。
4. ML 场景(D7)

| 场景 | 熵角色 |
|---|---|
| 决策树分裂 | 选使 $H(Y) - H(Y \mid X_j)$ 最大的特征 $X_j$(信息增益) |
| 随机森林 | 叶节点不纯度(Gini 与熵等价排序趋势) |
| 主动学习 | 选模型最不确定(高熵)样本标注 |
| 温度采样 | 调整 softmax 分布熵:$T>1$ 更平、更随机 |
| 标签平滑 | 把 one-hot 变为软标签,提高目标熵 |
| 贝叶斯 | 后验熵度量参数不确定性(Math-07) |
5. 熵与不确定性的区别(D8)

| 概念 | 含义 |
|---|---|
| 熵 $H(P)$ | 分布本身的平均不确定性 |
| 模型 CE | 用 $Q$ 编码 $P$ 的代价,$\ge H(P)$ |
| 预测熵 $H(Q)$ | 模型输出有多「平」——高不一定错,可能 calibration 差 |
| 偶然不确定性 | 数据固有噪声 |
| 认知不确定性 | 模型不知——贝叶斯/集成可部分分离 |
有限样本估计熵:需 bias 校正;高维 MI/熵估计困难。
6. Python 示例(D12)
1 | import numpy as np |
7. 小结
熵量化分布内在不确定性;条件熵支撑序列模型与特征分裂。下一篇:03 交叉熵与 KL 散度。