信息量与熵¶
约 1537 个字 预计阅读时间 8 分钟
自信息与香农熵
自信息 (Self-Information) \(I(x)\): 衡量一个具体事件 \(X = x\) 发生时所带来的信息量(或惊讶程度). 从感性角度来说, 一个事件发生的概率越小, 它发生时带给我们的信息量就越大.
香农熵 (Shannon Entropy) \(H(X)\): 香农提出使用熵 \(H(X)\) 来衡量一个整个随机变量 \(X\) 的平均不确定性. 它是所有可能事件自信息量的数学期望.
信息量的推导¶
我们将发生概率为 \(p_x\) 的具体事件所包含的信息量记为 \(I(p_x)\).
先给结论:
信息量对数形式的推导过程
考虑两个独立事件 \(x, y\), 已知两者的联合概率为 \(P(x, y) = p_x p_y\).
根据信息量的可加性, 我们有:
我们可以通过以下步骤, 将该性质逐步推广至实数域:
Step 1: 整数幂情形
特别地, 令 \(y = x\), 则 \(I(p_x, p_x) = 2I(p_x)\). 由于联合概率 \(p = p_x \cdot p_x = p_x^2\), 因此:
推广到一般整数 \(s\), 反复利用可加性可得:
Step 2: 分数幂情形
令 \(p = p_x^t\)(\(t\) 为正整数), 则 \(p^{1/t} = p_x\). 代入 Step 1 的结论:
移项可得:
Step 3: 有理数幂情形
对于任意有理数 \(r = s/t\), 结合 Step 1 和 Step 2 的结论:
Step 4: 由连续性推广到实数
由于有理数在实数中稠密, 假设信息量度量 \(I\) 是连续的, 那么上述关系对所有实数 \(r\) 也成立.
令 \(p_x = 1/2\), 则对于任意概率值 \(p_x\), 可以写作 \(p_x = (1/2)^{-\log_2 p_x}\), 此时幂指数 \(r = -\log_2 p_x\). 代入公式可得:
其中 \(I(1/2)\) 是一个乘法常数, 它可以作为信息量的基准单位. 如果取 \(I(1/2) = 1\) (单位为 bit), 则可以得到我们熟知的公式:
log2 vs ln
信息熵通常使用以2为底的对数,单位是bit,但也可以使用以e为底的对数,单位是nat.它们的换算关系为
也即是\(1 \text{bit} = \ln 2 \text{nat}\).
期望信息量¶
有了信息量的表达式,我们就可以求一个给定分布的变量蕴含的信息量:
1比特寄存器擦除
考虑一个储存 1 bit 信息的寄存器, 它与温度为 \(T\) 的热库相连. 该比特的状态可以是 \(0\) 或 \(1\).
在擦除之前, 假设两个状态等概率出现, 即 \(p_0 = 1/2, p_1 = 1/2\). 此时系统熵为:
我们可以通过将该比特强行置零来"擦除"这 1 bit 的信息. 擦除之后, 状态确定为 \(0\), 即 \(p_0 = 1, p_1 = 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)\) 出现的联合概率可以近似表示为各个符号概率的乘积:
这个近似的含义是,在统计学意义上,一个长度为 \(n\) 的独立同分布随机序列, 某个特定符号 \(X = x\) 出现的次数约为 \(n P(X = x)\).所有符号出现的次数加起来就是 \(n \sum_x P(X=x) = n\).
因此,我们相当于是把每个符号出现的次数都考虑了进去.
对该联合概率取以 2 为底的对数, 然后取相反数, 我们可以求出该序列近似的总信息量:
由于香农熵 \(H(X)\) 被定义为概率对数的期望:
我们将它代入上式, 即可得到典型序列 (Typical Sequence) 的概率近似表达式:
渐进均分性 (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 $.