https://zh.wikipedia.org/wiki/%E7%86%B5_(%E4%BF%A1%E6%81%AF%E8%AE%BA)
https://www.zhihu.com/question/274997106
https://www.zhihu.com/question/274997106/answer/1055696026
https://cs.nyu.edu/~roweis/csc310-2005/lectures.html
1. 信息熵的概念
在信息论中,熵是用于测量不确定性的一个概念,叫做信息熵。为了理解信息熵,我们先得弄清楚什么是不确定性。
从统计学角度讲,不确定性指的是一个随机事件有多种可能的结果,在发生之前我们不确定取哪种结果,故称之为具有不确定性。例如,抛一枚均匀的硬币,朝上的面有两种不确定的结果:正面或者反面,并且它们的概率都是1/2.为了编码这两种可能的结果,需要1bit(例如0代表正面朝上,1代表反面朝上);抛一个均匀的正四面体,朝下的面有四种不确定的结果,并且它们的概率都是1/4.为了编码这4种可能的结果,需要2bit(00,01,10,11)。一个随机事件的可能的结果越多,不确定性越大,需要编码的bit数量越多,这是一个很自然的结论。
从上面的例子容易推出,对于具有n种等概率结果的随机事件,用n或者
l
o
g
2
n
log_2{n}
log2n(也即编码所需的bit数)都可以去衡量不确定性。注意,
l
o
g
2
n
log_2{n}
log2n又可以写成
∑
i
=
1
n
1
n
l
o
g
2
n
\sum_{i=1}^{n}\frac{1}{n}log_2n
∑i=1nn1log2n,也即各个结果的期望编码长度的求和(在对随机事件的多次重复试验结果的编码比特流里面,每个等概率结果的期望编码长度为
1
n
l
o
g
2
n
\frac{1}{n}log_2n
n1log2n)。但是,当一个随机事件的可能结果不是等概率的时候,就无法用前面的方法了。例如,一个事件M有4中可能的结果a,b,c,d,概率分别为5/8,1/8,1/8,1/8.显然,它与前面的仍四面体事件的不确定性不能混为一谈,因为发生a的概率要比其他结果高一下,因此从直觉上讲这个事件的不确定性要低一些。此时,根据信息论的一些结论,可以用
−
∑
i
=
1
m
p
i
l
o
g
2
p
i
-\sum_{i=1}^{m}p_ilog_2{p_i}
−∑i=1mpilog2pi来表示总的平均编码长度,也即总的不确定性。证明过程待补充
2. 信息熵和信息量之间的关系
我们经常会听到信息熵越大,信息量越大(也有一些说法是信息量越小)的说法,其实这些说法都是不对或者不严谨的。严谨的说法应该是信息熵越大,则能传输的信息量越大。什么意思的,在一个随机事件发生之前,如果我们没有任何先验信息,可以假设各个可能的结果发生的概率相等,得到一个信息熵;如果别人告诉你或者你自己通过实验发现各个结果的概率呈现某种分布,又可以算出一个信息熵。前者的信息熵减去后者的信息熵,就是传输的信息量。此时,如果后者的信息熵越大,传输的信息量越小。或者另一个角度来看,假设你知道某个随机事件的概率分布,则可以算出一个信息熵;然后你在某次实验中观察到某个结果,此时这个结果是确定的,那么信息熵为0,通过这次实验,信息熵由某个值降为零了,表示这个实验传输给你了一个信息量(等于之前的信息熵)。此时,如果前者的信息熵越大,传输的信息量越大