|
基于人工智能的通用图片识别平台

什么是信息熵?

2020-01-18

        熵的概念首先是在热力学中引入的,用于表述热力学第二定律。波尔兹曼输出了热力学熵与微观状态数目的对数之间存在联系,并给出了公式:

        S=K logW

        这个公式作为他最骄傲的成绩,镌刻在了他的墓碑上,以此可见该公式的伟大。

        信息熵与上述热力学的熵,并不是同一个东西,但是有一定的联系。熵在信息论中代表随机变量不确定度的度量。科学而抽象的定义较为晦涩难懂,一个离散型随机变量 的熵 HX 定义为: HX=-p(x)log p(x)。

        我们尝试着用生活中的场景来说明情况。在直觉上,信息量等于传输该信息所用的代价,这个也是通信中考虑最多的问题。比如说:赌马比赛里,有4匹马ABC,获胜概率分别为1/2,1/4,1/8,1/8 接下来,让我们将哪一匹马获胜视为一个随机变量 X。假定我们需要用尽可能少的二元问题来确定随机变量 X的取值。例如:问题1A获胜了吗?问题2B获胜了吗?问题3C获胜了吗?最后我们可以通过最多3个二元问题,来确定 X的取值,即哪一匹马赢了比赛。

        如果X=A,那么需要问1次(问题1:是不是A?),概率为1/2 

        如果X=B ,那么需要问2次(问题1:是不是A?问题2:是不是B?),概率为 1/4

        如果 X=C,那么需要问3次(问题1,问题2,问题3),概率为1/8

        如果 X=D,那么同样需要问3次(问题1,问题2,问题3),概率为 1/8

        那么很容易计算,在这种问法下,为确定X取值的平均二元问题数量为:

        E=1/2+1/4*2+1/8*3+1/8*3=7/4

        那么我们回到信息熵的定义,会发现通过之前的信息熵公式,神奇地得到了:

        HX=1/2 log(2)+1/4 log(4)+1/8log(8)+ 1/8log(8)= 1/2+1/2+3/8+3/8=7/4bits

        在计算机二进制中,一个比特为01,其实就代表了一个二元问题的回答。也就是说,在计算机中,我们给哪一匹马夺冠这个事件进行编码,所需要的平均码长为1.75个比特。

        平均码长的定义为: L(C)=p(x)l(x)

        很显然,为了尽可能减少码长,我们要给发生概率p(x)较大的事件,分配较短的码长 l(x)。这个问题深入讨论,可以得出霍夫曼编码的概念。霍夫曼编码就是利用了这种大概率事件分配短码的思想,而且可以证明这种编码方式是最优的。我们可以证明上述现象:

  •         *为了获得信息熵为 H(X)的随机变量 X的一个样本,平均需要抛掷均匀硬币(或二元问题)H(X)次(参考猜赛马问题)。

  •         *信息熵是数据压缩的一个临界值(参考码长部分)。
  •         最后,解释下信息熵公式的由来:

        HX=-p(x)log p(x)

        信息论之父克劳德·香农,总结出了信息熵的三条性质:

  •         *单调性,即发生概率越高的事件,其所携带的信息熵越低。极端案例就是太阳从东方升起,因为为确定事件,所以不携带任何信息量。从信息论的角度,认为这句话没有消除任何不确定性。
  •         *非负性,即信息熵不能为负。这个很好理解,因为负的信息,即你得知了某个信息后,却增加了不确定性是不合逻辑的。
  •         *累加性,即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和。写成公式就是:

        事件X=A,Y=B同时发生,两个事件相互独立

       p(X=A,Y=B)=p(X=A)*p(Y=B)

        那么信息熵H(A,B)=H(A)+H(B)

        香农从数学上,严格证明了满足上述三个条件的随机变量不确定性度量函数具有唯一形式,也就是文章开头的信息熵公式。


您好,有什么需要帮助的吗?