本文将依次介绍熵、联合熵、条件熵、互信息、交叉熵与 KL 散度等信息论中的概念。接下来的内容将针对离散随机变量展开描述。
熵
熵被拿来衡量一个随机事件的不确定性。对一个随机变量进行编码,自信息 $I(x)$
是 $X=x$
的信息量 / 编码长度:
$$ I (x) = - \log \big( P (X = x) \big) = - \log P (x) $$
这里选择对数函数只是为了描述 “事件发生的概率越大,则编码越容易、所包含的信息量越少” 这一现象。你当然可以选择别的,只要大家认同即可。
熵则是平均编码长度(也就是一个随机变量的最优编码长度):
$$ H (X) = \mathbb{E} \big[I (X = x) \big] = - \sum_x P (x) \log P (x) $$
一个确定的事件,对其编码熵为零;一个不确定的事件(即随机事件),不确定的程度越大,熵就越大。显然,均匀分布的熵最大。
联合熵与条件熵
联合熵是定义在联合随机变量上的:
$$ H (X, Y) = - \sum_x \sum_y P (x, y) \log P (x, y) $$
条件熵:
$$ H (X \mid Y) = - \sum_x \sum_y P (x, y) \log P (x \mid y) $$
互信息
互信息描述了 “当一个随机变量已知时,另一个随机变量的不确定性减少了多少”:
$$ I (X ; Y) = I (Y;X) = \sum_x \sum_y P (x, y) \log \bigg( \frac{P(x, y)}{P(x) P(y)} \bigg) $$
互信息与条件熵的关系:
$$ \begin{aligned} I (X;Y) &= \sum_x \sum_y P (x, y) \log \bigg( \frac{P(x, y)}{P(x) P(y)} \bigg) \\ &= \sum_x \sum_y P (x) P (y \mid x) \log \frac{P (x, y)}{P (x)} - \sum_x \sum_y P (x, y) \log P(y) \\ &= \sum_x P(x) \bigg( \sum_y P (y \mid x) \log P (y \mid x) \bigg) - \sum_y \log P (y) \bigg( \sum_x P(x, y) \bigg) \\ &= - \sum_x P (x) H (Y \mid X = x) - \sum_y P(y) \log P (y) \\ &= -H (Y \mid X) + H(Y) \\ &= H(Y) - H(Y \mid X) \end{aligned} $$
根据对称性可得 $I(Y; X) = H(X) - H(X \mid Y)$
。
交叉熵与 KL 散度
对于分布为 $p$
的随机变量,$H(p)=H(X)$
是其最优编码长度,而交叉熵则是 “按照概率分布为 $q$
的最优编码对真实分布为 $p$
的信息进行编码” 的长度:
$$ H (p, q) = \mathbb{E}_p \Big[- \log \big(q (x) \big) \Big] = - \sum_x p(x) \log \Big(q(x)\Big) $$
相应地,概率分布 $q$
来近似 $p$
进行编码所造成的信息损失量就是 KL 散度:
$$ D_{\textrm{KL}} (p \parallel q) = H (p, q) - H (p) = - \sum_x p (x) \log \bigg(\frac{p(x)}{q(x)}\bigg) \geq 0 $$
转载申请
本作品采用 知识共享署名 4.0 国际许可协议 进行许可,转载时请注明原文链接。您必须给出适当的署名,并标明是否对本文作了修改。