跳转至

信息量与熵

约 1537 个字 预计阅读时间 8 分钟

自信息与香农熵

自信息 (Self-Information) \(I(x)\): 衡量一个具体事件 \(X = x\) 发生时所带来的信息量(或惊讶程度). 从感性角度来说, 一个事件发生的概率越小, 它发生时带给我们的信息量就越大.

香农熵 (Shannon Entropy) \(H(X)\): 香农提出使用熵 \(H(X)\) 来衡量一个整个随机变量 \(X\) 的平均不确定性. 它是所有可能事件自信息量的数学期望.

信息量的推导

我们将发生概率为 \(p_x\) 的具体事件所包含的信息量记为 \(I(p_x)\).

先给结论:

\[ I(p_x) = - \log_2 p_x \]

信息量对数形式的推导过程

考虑两个独立事件 \(x, y\), 已知两者的联合概率为 \(P(x, y) = p_x p_y\).

根据信息量的可加性, 我们有:

\[ I(p_x, p_y) = I(p_x) + I(p_y) \]

我们可以通过以下步骤, 将该性质逐步推广至实数域:

Step 1: 整数幂情形

特别地, 令 \(y = x\), 则 \(I(p_x, p_x) = 2I(p_x)\). 由于联合概率 \(p = p_x \cdot p_x = p_x^2\), 因此:

\[ I(p_x^2) = 2I(p_x) \]

推广到一般整数 \(s\), 反复利用可加性可得:

\[ I(p_x^s) = I(p_x^{s-1}, p_x) = I(p_x^{s-1}) + I(p_x) = \cdots = sI(p_x) \]

Step 2: 分数幂情形

\(p = p_x^t\)\(t\) 为正整数), 则 \(p^{1/t} = p_x\). 代入 Step 1 的结论:

\[ I(p) = I((p^{1/t})^t) = tI(p^{1/t}) \]

移项可得:

\[ I(p^{1/t}) = \frac{1}{t}I(p) \]

Step 3: 有理数幂情形

对于任意有理数 \(r = s/t\), 结合 Step 1 和 Step 2 的结论:

\[ I(p_x^r) = I(p_x^{s/t}) = sI(p_x^{1/t}) = s \cdot \frac{1}{t}I(p_x) = rI(p_x) \]

Step 4: 由连续性推广到实数

由于有理数在实数中稠密, 假设信息量度量 \(I\) 是连续的, 那么上述关系对所有实数 \(r\) 也成立.

\(p_x = 1/2\), 则对于任意概率值 \(p_x\), 可以写作 \(p_x = (1/2)^{-\log_2 p_x}\), 此时幂指数 \(r = -\log_2 p_x\). 代入公式可得:

\[ I(p_x) = I\left((1/2)^{-\log_2 p_x}\right) = -\log_2(p_x) \cdot I(1/2) \]

其中 \(I(1/2)\) 是一个乘法常数, 它可以作为信息量的基准单位. 如果取 \(I(1/2) = 1\) (单位为 bit), 则可以得到我们熟知的公式:

\[ I(p_x) = -\log_2 p_x \]

log2 vs ln

信息熵通常使用以2为底的对数,单位是bit,但也可以使用以e为底的对数,单位是nat.它们的换算关系为

\[H_2(X) = \frac{1}{\ln 2} H_e(X)\]

也即是\(1 \text{bit} = \ln 2 \text{nat}\).

期望信息量

有了信息量的表达式,我们就可以求一个给定分布的变量蕴含的信息量:

\[ H(X) = \mathbb{E}[I(p_x)] = \sum_{x \in \mathcal{X}} p(x) I(p(x)) = - \sum_{x \in \mathcal{X}} p(x) \log_2 p(x) \]

1比特寄存器擦除

考虑一个储存 1 bit 信息的寄存器, 它与温度为 \(T\) 的热库相连. 该比特的状态可以是 \(0\)\(1\).

在擦除之前, 假设两个状态等概率出现, 即 \(p_0 = 1/2, p_1 = 1/2\). 此时系统熵为:

\[ H = - \sum_i p_i \log_2 p_i = 1 \]

我们可以通过将该比特强行置零来"擦除"这 1 bit 的信息. 擦除之后, 状态确定为 \(0\), 即 \(p_0 = 1, p_1 = 0\). 此时系统熵变为:

\[ H = - \sum_i p_i \log_2 p_i = 0 \]

此时,系统的熵降低了,我们必须向环境释放热量,释放热量的大小就是 \(k_B \ln 2\).

数据压缩的极限

在信息论中, 我们通常用随机变量 \(X\) 来建模需要被压缩的数据,正如之前学过的哈夫曼编码, 我们可以用更少的比特来表示出现概率高的符号. 那么, 在理论上, 数据压缩是否存在一个极限准位?

考虑一个长度为 \(n\) 的独立同分布随机序列 \(X_1, X_2, \dots, X_n\). 在这条序列中, 根据大数定律, 某个特定符号 \(X = x\) 出现的期望次数约为 \(n P(X = x)\).

因此, 特定序列 \((x_1, x_2, \dots, x_n)\) 出现的联合概率可以近似表示为各个符号概率的乘积:

\[ P(X_1=x_1, X_2=x_2, \dots, X_n=x_n) = \prod_{i=1}^n P(X_i=x_i) \approx \prod_{x} P(X = x)^{n P(X=x)} \]

这个近似的含义是,在统计学意义上,一个长度为 \(n\) 的独立同分布随机序列, 某个特定符号 \(X = x\) 出现的次数约为 \(n P(X = x)\).所有符号出现的次数加起来就是 \(n \sum_x P(X=x) = n\).

因此,我们相当于是把每个符号出现的次数都考虑了进去.

对该联合概率取以 2 为底的对数, 然后取相反数, 我们可以求出该序列近似的总信息量:

\[ -\log_2 P(X_1=x_1, X_2=x_2, \dots, X_n=x_n) \approx -n \sum_{x} P(X=x) \log_2 P(X=x) \]

由于香农熵 \(H(X)\) 被定义为概率对数的期望:

\[ H(X) = - \sum_{x} P(X = x) \log_2 P(X = x) \]

我们将它代入上式, 即可得到典型序列 (Typical Sequence) 的概率近似表达式:

\[ P(X_1=x_1, X_2=x_2, \dots, X_n=x_n) \approx 2^{-n H(X)} \]

渐进均分性 (AEP)

从这个结论可以看出, 随着序列长度 \(n\) 趋于无穷, 绝大多数发生概率并非极小的序列(即典型序列)的概率都趋近于 \(2^{-n H(X)}\).

由于总概率不能超过 1, 这种典型序列的数量最多也就是 \(2^{nH(X)}\) 个. 因此, 为了无损地对这些典型序列进行编码, 我们只需要对这 \(2^{nH(X)}\) 种可能性进行编号, 其所需的平均比特数就是 \(\log_2 \left(2^{nH(X)}\right) = n H(X)\) 个 bit. 这就是香农无损数据压缩极限(信源编码定理)的直观推导.

当然,还有一种理解方法.单个比特的熵是 \(H(X)\), 那么 \(n\) 个比特的熵就是 $n H(X) bit $.

评论