信息论入门教程

信息论(Information Theory)

涉及编码、解码、传输以及尽可能简洁地处理信息或数据。

编码唯一性

通过二进制编码去表达唯一对象,为了不引起冲突或歧义,则必须考虑编码的唯一性。

为了节省开销,换言之就是减少字节的使用,需要使用压缩。显而易见,概率越大,所需要的二进制位越少。

因为二进制,所以底数为 2 ,

形象地说,二进制三位可以表达四个对象,分别为0,10,110,111,p = 1/4 ,L = log2(4) = 2 ,

香农第一定理(无失真编码定理)

给定信息源的熵为 $H(X)$,对该信息源的无失真编码,平均码长 $L$ 满足:

$$
H(X) \leq L < H(X) + 1
$$

(在码长为整数的限制下成立)

香农第二定理(信道编码定理)

对于容量为 $C$ 的信道,如果传输速率 $R < C$,则存在编码方案使误码率趋近于 0;反之,若 $R > C$,误码率无法降低。

熵的定义(entropy)

熵度量所有可能事件的信息量的期望值,衡量事件本身信息的不确定性。

事件空间中所有事件发生的概率,乘以该事件的信息量,即可得到熵

$$
H(X) = - \sum_{i=1}^n p_i \log p_i
$$

一般单位是比特(bit)底数为 2。
熵达到最大值时,概率分布为均匀分布。

对于一个必然事件而言,其事件发生的信息熵为0。也就是说,我们不需要传递任何信号(0比特),对方也能知道该事件发生了。

互信息

两个随机变量 $X$ 和 $Y$ 的互信息定义为:

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

表示在给定 $Y$ 的条件下,随机变量 $X$ 的不确定性减少的量,即 $X$ 和 $Y$ 之间共享的信息量。

差值表示共享量?信息共享是一种概率结构中的重合关系,本身没有行为,它是客观存在于变量之间的信息重合度量。
可以看看下面的解释
如何理解互信息公式的含义?

互信息的本质就是对称的。

信息论基础

自信息(Information Content / Surprisal)

对于某一具体事件 $x$,其发生的概率为 $p(x)$,定义该事件的信息量为:

$$
I(x) = -\log p(x)
$$

当事件越罕见($p(x)$ 越小),信息量 $I(x)$ 越大,表示惊异程度更高。

交叉熵(Cross-Entropy)

假设真实概率分布为 $P = {p_i}$,观察者主观概率分布为 $Q = {q_i}$

$q_i$ 小于 1 则 log 后为负要加负号,H为0表示模型预测完全正确,无穷大时完全错误
若为独热标签P,其中对应真实类值为 1,其他为 0,即求和时P可以等价为标量1来计算

交叉熵用一个预测分布去描述真实分布时,整体的“惊异度”或“编码代价”。衡量预测模型对真实事件编码效率的损失。和信息量本身没有直接一一对应关系

交叉熵定义为:

$$
H(P, Q) = - \sum_{i} p_i \log q_i
$$

交叉熵表示当数据真实分布为 $P$,但使用概率分布 $Q$ 来编码时的平均信息量(即平均惊异程度)。
当且仅当 $Q = P$ 时,交叉熵达到最小值:

$$
H(P, Q)_{\min} = H(P) = - \sum_i p_i \log p_i
$$

交叉熵总是大于等于熵,差值是 KL 散度:

$$
D_{KL}(P | Q) = H(P, Q) - H(P) \geq 0
$$

log 函数让损失函数对预测错误变得非常敏感
log 函数的梯度形式适合和 softmax 输出配合,数学上简洁