ESC
输入关键词搜索文章
目录

熵、相对熵和互信息

信息论 · 第1-2章
用不确定性的语言度量信息
6核心概念
8关键关系式
3重点例题
3基础不等式

学习目标

  • 理解自信息为何必须是对数形式,掌握四个公理条件
  • 掌握的定义、推导与二值熵函数,会用熵衡量随机变量的平均不确定性
  • 能计算联合熵、条件熵,理解链式法则
  • 理解互信息三种等价定义的物理含义
  • 掌握相对熵(KL 散度)的非负性证明,了解它与交叉熵的关系
  • 能用 Jensen 不等式证明 KL 散度非负,理解数据处理不等式的直觉
第1-2章
为什么信息可以用数学度量

Shannon 信息论的出发点很克制:通信系统先不讨论消息的语义,只讨论消息出现得有多不确定、传过去之后不确定性减少了多少。一旦把"信息"理解成"消除了多少不确定性",它就能进入概率论和对数函数的框架。

本章主线:先回答"单个事件发生带来多少信息",得到自信息;再回答"一个随机变量平均有多不确定",得到;接着讨论多个变量之间的关系,得到联合熵、条件熵、互信息;最后引入相对熵来比较两个概率分布。

课件第 1 章先给出课程全貌,第 2 章开始建立这些度量。这里建议把它们看成一张关系网:

  • 自信息 $I(x)$:某个具体事件发生时的"惊奇度"
  • $H(X)$:平均惊奇度,也就是平均不确定性
  • 条件熵 $H(X|Y)$:知道 $Y$ 之后,$X$ 还剩多少不确定性
  • 互信息 $I(X;Y)$:知道 $Y$ 以后,$X$ 的不确定性减少了多少
  • 相对熵 $D(p\|q)$:用错误分布 $q$ 代替真实分布 $p$ 时,会付出多少额外代价
PDF课程导论:信息论关注什么p.1
正在渲染 PDF 第 1 页…
课程导论:信息论关注什么(PDF 第 1 页) · 打开原文
PDFShannon 信息论的三个基本论点p.2
正在渲染 PDF 第 2 页…
Shannon 信息论的三个基本论点(PDF 第 2 页) · 打开原文
2.1
自信息:单个事件的信息量为什么是对数

为什么需要它

如果只说"罕见事件更有信息",还不够做计算。我们需要一个函数 $I(x)$,把事件 $x$ 的概率 $p(x)$ 映射成一个可加、可比较、可平均的信息量。

这个函数至少应满足四个条件:

  1. 只依赖于事件发生概率,即 $I(x)=f(p(x))$
  2. 概率越小,信息量越大,所以 $f(p)$ 应单调递减
  3. 确定事件 $p(x)=1$ 时,没有新信息,故 $I(x)=0$
  4. 独立事件可加:若 $x,y$ 独立,则 $I(x,y)=I(x)+I(y)$

它是什么

$$I(x)=\log\frac{1}{p(x)}=-\log p(x)$$

这里:

  • $x$ 表示某个具体事件或符号
  • $p(x)=\Pr(X=x)$ 表示该事件发生的概率
  • 对数底若取 2,单位是 bit;取 $e$,单位是 nat

怎么推出来

由独立可加性,若令 $f(p)=I(x)$,则应有

$$f(p_1p_2)=f(p_1)+f(p_2)$$

满足这个函数方程、且连续并单调的标准解就是对数函数,因此

$$f(p)= -k\log p$$

通常把常数 $k$ 取为 1,于是得到 $I(x)=-\log p(x)$

图形理解:自信息随概率的变化

从图中可以直观看到:概率越接近 0,自信息增长得越快;概率趋近于 1 时,自信息趋近于 0。这正是"罕见事件更让人惊奇"的数学体现。

自信息曲线 I(p) = -log₂(p)JSXGraph
自信息曲线 I(p) = -log₂(p)

怎么用

它用来衡量单次观测的"惊奇度"。例如文本中字母 ez 常见,所以看到 z 往往更"有信息"。在后续编码中,低概率符号应分配更长码字,这和自信息的大小方向一致。

例子落地

设英文字母出现概率分别为 $p(e)=0.105$$p(d)=0.035$$p(y)=0.012$,则

$$I(e)=-\log_2 0.105\approx 3.25\text{ bit}$$
$$I(d)=-\log_2 0.035\approx 4.84\text{ bit}$$
$$I(y)=-\log_2 0.012\approx 6.38\text{ bit}$$

越罕见,信息量越大,这和直觉一致。

PDF自信息量的物理含义p.6
正在渲染 PDF 第 6 页…
自信息量的物理含义(PDF 第 6 页) · 打开原文
PDF自信息量需要满足的条件p.7
正在渲染 PDF 第 7 页…
自信息量需要满足的条件(PDF 第 7 页) · 打开原文
2.2
熵:随机变量平均需要多少信息才能被确定

为什么需要它

自信息只处理某个具体结果,而通信系统面对的是随机变量。发送端发出的不是"这一次一定是某个符号",而是"按某个分布随机产生符号"。所以我们关心平均意义下的不确定性。

它是什么

离散随机变量 $X$ 的熵定义为

$$H(X)=\sum_{x\in\mathcal X}p(x)I(x)=-\sum_{x\in\mathcal X}p(x)\log p(x)$$

符号说明:

  • $\mathcal X$ 是随机变量 $X$ 的字母表,也就是取值集合
  • $p(x)$ 是概率质量函数
  • 约定 $0\log 0=0$,因为 $\lim_{p\to 0^+}p\log p=0$

怎么推出来

熵就是自信息的期望:

$$H(X)=\mathbb E[I(X)]$$

$I(X)=-\log p(X)$ 代入即可得到

$$H(X)=\mathbb E[-\log p(X)] = -\sum_x p(x)\log p(x)$$

这个定义非常自然:一次观测到底平均带来多少 bit,就用每种结果的信息量乘以它出现的概率,再求和。

图形理解:二值熵函数的形态

当随机变量只有两个可能结果时(二项分布),熵退化为二值熵函数 $H_2(p)$。从图中可以看到:

  • $p=0$$p=1$ 时(即结果已确定),熵为 0
  • $p=0.5$ 时,两种结果等可能,熵达到最大值 1 bit——这是二元随机变量最难预测的状态
  • 曲线关于 $p=0.5$ 对称,是典型的凹函数
二值熵函数 H₂(p) = -p log₂ p - (1-p) log₂(1-p)JSXGraph
二值熵函数 H₂(p) = -p log₂ p - (1-p) log₂(1-p)

关键性质

  1. 非负性$H(X)\ge 0$
  2. 确定变量熵为 0:若某个值概率为 1,则 $H(X)=0$
  3. 上界$H(X)\le \log |\mathcal X|$,均匀分布时取等号
  4. 二值熵函数:若 $X\sim\mathrm{Bernoulli}(p)$,则
    $$H_2(p)=-p\log p-(1-p)\log(1-p)$$

    $p=1/2$ 时达到最大值 1 bit

怎么用

  • 衡量一个信源是否"难预测"
  • 给无损压缩提供理论下界,平均码长不可能长期低于 $H(X)$
  • 作为后续 AEP、信源编码、信道容量的基础量

例题:熵的数值计算

题目:$X$ 的分布为 $p(0)=0.5$$p(1)=0.25$$p(2)=0.25$,求 $H(X)$

  1. 写出熵的定义公式$H(X)=-\sum_x p(x)\log_2 p(x)$
  2. 逐项计算
    $$I(0)=-\log_2 0.5 = 1\text{ bit}$$
    $$I(1)=I(2)=-\log_2 0.25 = 2\text{ bit}$$
  3. 求期望(加权求和)
    $$H(X)=0.5\times 1 + 0.25\times 2 + 0.25\times 2 = 1.5\text{ bit}$$

答案:$H(X)=1.5$ bit

易错点:概率为 0 的项不参与求和(按约定 $0\log 0=0$),但也不要误把该符号的格子整个忽略——只需在求和式中跳过即可。另外注意对数底要统一,课程默认底数为 2。
PDF熵的定义p.12
正在渲染 PDF 第 12 页…
熵的定义(PDF 第 12 页) · 打开原文
PDF熵与信息的关系p.13
正在渲染 PDF 第 13 页…
熵与信息的关系(PDF 第 13 页) · 打开原文
2.3
联合熵、条件熵与链式法则

为什么需要它

现实中的信息往往不是一个变量孤立出现的。我们经常同时观察多个变量,或者先知道一部分信息,再预测另一部分。于是就需要回答两个问题:

  • 两个变量整体有多不确定
  • 知道其中一个以后,另一个还剩多少不确定性

它是什么

联合熵定义为

$$H(X,Y)=-\sum_{x,y}p(x,y)\log p(x,y)$$

条件熵定义为

$$H(X|Y)=-\sum_{x,y}p(x,y)\log p(x|y)$$

其中:

  • $p(x,y)=\Pr(X=x,Y=y)$ 是联合分布
  • $p(x|y)=\Pr(X=x|Y=y)$ 是条件分布

怎么推出来

由概率恒等式 $p(x,y)=p(y)p(x|y)$,取负对数得

$$-\log p(x,y)=-\log p(y)-\log p(x|y)$$

对联合分布取期望:

$$\begin{aligned} H(X,Y) &= \mathbb E[-\log p(X,Y)]\\ &= \mathbb E[-\log p(Y)] + \mathbb E[-\log p(X|Y)]\\ &= H(Y)+H(X|Y) \end{aligned}$$

这就是链式法则。同理也有

$$H(X,Y)=H(X)+H(Y|X)$$

推广到 $n$ 个变量:

$$H(X_1,\dots,X_n)=\sum_{i=1}^n H(X_i|X_1,\dots,X_{i-1})$$

怎么用

  • 拆分复杂联合分布的总不确定性
  • 度量"已知上下文后还剩多少难度",例如语言模型中下一个词的预测
  • 为互信息公式 $I(X;Y)=H(X)-H(X|Y)$ 做准备

例题:理解条件熵为零的情形

题目:$Y$ 完全由 $X$ 决定(例如 $Y=X$),求 $H(X|Y)$$H(X,Y)$

  1. 分析条件分布:已知 $Y=y$ 时,$X$ 必然等于 $y$,因此 $p(X=y|Y=y)=1$,其余为 0
  2. 代入条件熵定义$H(X|Y)=-\sum_{x,y}p(x,y)\log p(x|y)$,其中只有 $p(x|y)=1$ 的项参与求和,而 $\log 1=0$,故 $H(X|Y)=0$
  3. 求联合熵:由链式法则
    $$H(X,Y)=H(Y)+H(X|Y)=H(Y)+0=H(Y)=H(X)$$

答案:$H(X|Y)=0$$H(X,Y)=H(X)$

易错点:联合熵不是各变量熵的简单相加——相关性会降低总不确定度。上述结果说明:$Y=X$ 时,知道 $Y$ 之后 $X$ 没有任何剩余不确定性。
2.4
相对熵:比较两个分布时,错配要付出多少代价

为什么需要它

熵只描述单个分布自身的不确定性,但很多问题其实是"真实分布是 $p$,你却按 $q$ 来理解或编码"。这时我们需要一个量来衡量这种错配的代价。

它是什么

相对熵,也叫 KL 散度,定义为

$$D(p\|q)=\sum_x p(x)\log\frac{p(x)}{q(x)}$$

符号说明:

  • $p$ 是真实分布
  • $q$ 是比较对象或近似分布
  • 要求当 $p(x)>0$ 时应有 $q(x)>0$,否则该项为 $+\infty$

怎么推出来

先把它改写为期望形式:

$$D(p\|q)=\mathbb E_p\left[\log\frac{p(X)}{q(X)}\right] = -\mathbb E_p\left[\log\frac{q(X)}{p(X)}\right]$$

由于 $\log$ 是凹函数,由 Jensen 不等式可得

$$\mathbb E_p\left[\log\frac{q(X)}{p(X)}\right] \le \log \mathbb E_p\left[\frac{q(X)}{p(X)}\right]$$

右侧继续化简:

$$\mathbb E_p\left[\frac{q(X)}{p(X)}\right]=\sum_x p(x)\frac{q(x)}{p(x)}=\sum_x q(x)=1$$

所以

$$\mathbb E_p\left[\log\frac{q(X)}{p(X)}\right]\le \log 1 = 0$$

于是

$$D(p\|q)\ge 0$$

等号成立当且仅当 $q(x)/p(x)$$p$ 的支撑集上为常数,也就是 $p=q$

怎么用

  • 比较模型分布与真实分布的接近程度
  • 解释"交叉熵 = 熵 + KL 散度"中的额外损失
  • 在统计学习、生成模型、变分推断里做目标函数

容易混淆的点

  • $D(p\|q)$ 一般不对称,所以不是距离
  • $D(p\|q)=0$ 说明两分布相同
  • $D(p\|q)$ 大,表示用 $q$ 假装自己理解 $p$ 会很吃亏

例题:相对熵的数值计算

题目:设真实分布 $p=(0.5,0.5)$,近似分布 $q=(0.9,0.1)$,求 $D(p\|q)$

  1. 逐项计算比值
    $$\frac{p(0)}{q(0)}=\frac{0.5}{0.9}\approx 0.556,\quad \frac{p(1)}{q(1)}=\frac{0.5}{0.1}=5$$
  2. 取对数并加权求和
    $$\begin{aligned}</p> <p>D(p\|q)&=0.5\log_2\frac{0.5}{0.9}+0.5\log_2\frac{0.5}{0.1}\\</p> <p>&\approx 0.5(-0.848)+0.5(2.322)\\</p> <p>&\approx -0.424+1.161=0.737\text{ bit}</p> <p>\end{aligned}$$

答案:$D(p\|q)\approx 0.737$ bit

易错点:不要混淆 $D(p\|q)$$D(q\|p)$,两者一般不相等。此外,当 $q(x)=0$$p(x)>0$ 时,该项为 $+\infty$,说明用完全不支持某事件的分布去近似会招致无限大的惩罚。
2.5
互信息:一个变量到底帮我们知道了另一个变量多少

为什么需要它

熵告诉我们一个变量本身有多不确定,条件熵告诉我们知道别的信息以后还剩多少不确定。两者一减,自然得到"减少了多少不确定性",这就是互信息。

它是什么

互信息的等价定义有三组:

$$I(X;Y)=H(X)-H(X|Y)$$
$$I(X;Y)=H(Y)-H(Y|X)$$
$$I(X;Y)=H(X)+H(Y)-H(X,Y)$$

还可以写成 KL 散度:

$$I(X;Y)=D\bigl(p(x,y)\|p(x)p(y)\bigr)$$

怎么推出来

从链式法则出发:

$$H(X,Y)=H(Y)+H(X|Y)$$

移项得

$$H(X)-H(X|Y)=H(X)+H(Y)-H(X,Y)$$

这就说明"熵差形式"和"联合熵形式"等价。

若再从 KL 散度展开:

$$\begin{aligned} D(p(x,y)\|p(x)p(y)) &= \sum_{x,y}p(x,y)\log\frac{p(x,y)}{p(x)p(y)}\\ &= \sum_{x,y}p(x,y)\log p(x,y) - \sum_{x,y}p(x,y)\log p(x) - \sum_{x,y}p(x,y)\log p(y) \end{aligned}$$

分别识别成 $-H(X,Y)$$-H(X)$$-H(Y)$ 的相反数,就得到

$$I(X;Y)=H(X)+H(Y)-H(X,Y)$$

怎么用

  • 度量特征和标签的关联强度
  • 衡量信道输入与输出共享的信息量
  • 判断两个变量是否独立

关键性质

性质公式含义
非负性$I(X;Y)\ge 0$知道额外信息不会让你"更无知"
对称性$I(X;Y)=I(Y;X)$共享信息的量与方向无关
独立性判据$I(X;Y)=0 \iff X\perp Y$零互信息等价于独立
上界$I(X;Y)\le \min(H(X),H(Y))$共享的信息不可能超过各自总量

例题:联合熵、条件熵、互信息一题全算

题目:$(X,Y)$ 的联合分布为

$Y=0$$Y=1$
$X=0$$1/4$$1/4$
$X=1$$0$$1/2$

$H(X)$$H(Y)$$H(X,Y)$$H(X|Y)$$I(X;Y)$

  1. 求边缘分布
    $$p_X(0)=1/4+1/4=1/2,\quad p_X(1)=0+1/2=1/2$$
    $$p_Y(0)=1/4+0=1/4,\quad p_Y(1)=1/4+1/2=3/4$$
  2. 求单变量熵
    $$H(X)= -\frac12\log_2\frac12-\frac12\log_2\frac12 =1\text{ bit}$$
    $$H(Y)= -\frac14\log_2\frac14-\frac34\log_2\frac34\approx 0.811\text{ bit}$$
  3. 求联合熵
    $$H(X,Y)= -\frac14\log_2\frac14-\frac14\log_2\frac14-\frac12\log_2\frac12 =0.5+0.5+0.5=1.5\text{ bit}$$
  4. 求条件熵(用链式法则 $H(X,Y)=H(Y)+H(X|Y)$):
    $$H(X|Y)=H(X,Y)-H(Y)=1.5-0.811=0.689\text{ bit}$$
  5. 求互信息(用 $I(X;Y)=H(X)-H(X|Y)$):
    $$I(X;Y)=H(X)-H(X|Y)=1-0.689=0.311\text{ bit}$$

答案:$H(X)=1$ bit,$H(Y)\approx 0.811$ bit,$H(X,Y)=1.5$ bit,$H(X|Y)\approx 0.689$ bit,$I(X;Y)\approx 0.311$ bit

易错点:零概率项不参与求和,但也不能把整个格子忘掉(格子在边缘分布求和里仍然参与)。互信息可用两种方式交叉检查:$H(X)-H(X|Y)$$H(X)+H(Y)-H(X,Y)$
2.6
两个常见工具:Jensen 不等式与数据处理不等式

Jensen 不等式

$f$ 为凸函数,则

$$f(\mathbb E[X])\le \mathbb E[f(X)]$$

$f$ 为凹函数,则不等号反向。因为 $\log$ 是凹函数,所以它经常用来证明熵和 KL 散度的性质。

数据处理不等式

$X\to Y\to Z$ 构成马尔可夫链,则

$$I(X;Z)\le I(X;Y)$$

直觉上,$Z$ 是对 $Y$ 再加工得到的,后处理不能凭空创造关于 $X$ 的新信息。这条不等式会在信道、统计学习、表示学习里反复出现。

2.7
例题:二值熵函数为什么在 1/2 处最大

例题:二值熵函数极值分析

题目:证明 $H_2(p)$$p=1/2$ 取最大值。

  1. 写出函数$H_2(p)=-p\log_2 p-(1-p)\log_2(1-p)$
  2. $p$ 求导
    $$\frac{dH_2(p)}{dp}=\log_2\frac{1-p}{p}$$
  3. 令导数为零
    $$\log_2\frac{1-p}{p}=0\Rightarrow \frac{1-p}{p}=1\Rightarrow p=\frac12$$
  4. 二阶导数验证
    $$\frac{d^2H_2(p)}{dp^2}=-\frac{1}{p(1-p)\ln 2}<0\quad (0<p<1)$$

    $p=1/2$ 为严格极大点

答案:$H_2(1/2)=1$ bit,即最难猜的二元随机变量就是两种结果一样可能。

易错点:二阶导数判断时,注意 $p(1-p)$$(0,1)$ 上恒正,因此二阶导数恒负,极大点唯一。注意不要把求导写成底数为 $e$(结果一样,但常数项不同),课程里默认以 2 为底。
2.8
例题:Fano 不等式在说什么

$X\to Y\to \hat X$,其中 $\hat X$ 是根据观测 $Y$$X$ 做出的估计,错误概率为 $P_e=\Pr(X\ne \hat X)$。Fano 不等式告诉我们:

$$H(P_e)+P_e\log(|\mathcal X|-1)\ge H(X|Y)$$

它的含义很朴素:若观察完 $Y$ 之后,关于 $X$ 的剩余不确定性 $H(X|Y)$ 仍然很大,那任何估计器的错误率都不可能太低。它把"信息不够"与"分类一定会错"直接联系起来。

本章速查表
定义一句话理解
$I(x)$$-\log p(x)$单个事件的信息量
$H(X)$$-\sum_x p(x)\log p(x)$平均不确定性
$H(X,Y)$$-\sum_{x,y}p(x,y)\log p(x,y)$两变量整体的不确定性
$H(X|Y)$$-\sum_{x,y}p(x,y)\log p(x|y)$知道 $Y$$X$ 剩余的不确定性
$D(p\|q)$$\sum_x p(x)\log\frac{p(x)}{q(x)}$分布错配的额外代价
$I(X;Y)$$H(X)-H(X|Y)$$Y$ 帮你知道了多少关于 $X$ 的信息

复习速查

  • 自信息 $I(x)=-\log p(x)$:独立可加性迫使对数形式
  • $H(X)=-\sum p(x)\log p(x)$:自信息的期望,平均不确定性
  • 二值熵 $H_2(p)$:在 $p=0.5$ 处取最大值 1 bit
  • 链式法则$H(X,Y)=H(Y)+H(X|Y)$,推广到 $n$
  • 相对熵 $D(p\|q)$:由 Jensen 不等式得非负性,非对称不是距离
  • 互信息 $I(X;Y)=H(X)-H(X|Y)$:非负、对称、独立判据
  • 数据处理不等式$X\to Y\to Z$ 马尔可夫链中 $I(X;Z)\le I(X;Y)$

参考来源