信息熵



首先,定义:描述信息源的 “不确定性”

这个 “不确定性” 是怎么用数学量化的呢?我们常常用一个叫做信息量的量来量化。


如何定义 “信息量”:

前排提醒:这个 “信息量” 和常见的 “含有信息的多少” 有所不同
首先看以下情景:

  • 情形:我现在有两个room,两个room之间只有一个可以传输 0, 1 电位信号(bit)的电线连接
  • 任务:现在我在在其中一个room中执行伯努利实验, 现在需要把结果传输给另一个room, 现在问题是: 我们需要几个 bit 才能表示一个事件?
    情形:





    eg1:对于抛硬币这个实验来说, 1个bit就行了





    eg2 = 对于一个转盘(八种可能)需要3个bit


所以我们可以总结: 我们可以用 nn 个比特来表示最大 2n2^n 个元素

  • 换句话来说:如果我们需要表示 mm 个元素, 我们需要最少 log2mlog_2m 个bit!!!


  • 这就是 “信息量” 的定义方式

“信息量” 的定义:

信息量就是为了传输所有可能的信息需要bit的数量


定义扩展:

1. 从伯努利实验出发

但是我们现在还缺一些东西,我们现在都是基于假设:所有的事件发生都是等可能的

  • 所以我们要从每个事件都是等可能的分布(i.e. 均匀分布)出发,扩展到任意分布,即所有可能发生的事件中,每个事件发生的概率可以不一样
  • 为了实现这个目的,我们要扩展对“等可能事件数”的定义

2. 等可能事件数可以由概率推得:

核心:对于每个事件,都看做一个均匀分布的一部分,然后不同事件是不同均匀分布的一部分,i.e. 每个事件的“信息量”不同

  • 对于均匀分布:

对于有N个事件的均匀分布,每个事件发生的概率是:p=1n对于有N个事件的均匀分布,每个事件发生的概率是:\\ p = \frac{1}{n}\\

重点:反过来说,对于事件发生概率为p的均匀分布,故这个均匀分布事件数n的定义为:n=1p\mathbf{重点:反过来说, 对于事件发生概率为 p 的均匀分布,故这个均匀分布事件数n的定义为:}\\ n = \frac{1}{p}\\


3. 等可能事件数通过概率推广:

核心: 我们既然可以知道任意分布中每个事件的概率大小,那么我们就可以通过这个概率大小推知这个概率对应的均匀分布中的事件数


我们可以由事件数推得每个事件的信息量!

recall:我们可以通过事件数n来推得信息量,定义I(A)A的信息量\mathbf{recall: 我们可以通过事件数n来推得信息量, 定义I(A)为A的信息量}\\

I=log2nI = log_2{n}


4. 结合起来就可得到任意分布中事件的信息量定义

基础定义:

对于概率为p的事件A,定义A的信息量为I(A):对于概率为p的事件A, 定义A的信息量为 I(A):\\

I(A)=log21pI(A)= log_2{\frac{1}{p}}

或者可以写为:I(A)=log2p或者可以写为:I(A) = -log_2{p}\\


更泛化的表示:

对于有n个可能发生事件的任意分布:i个事件概率为pi (i的范围是[1,n])对于有n个可能发生事件的任意分布:\\ 第i个事件概率为p_i \ (i 的范围是 [1, n])\\

每个事件的信息量可以表示为:log21pi每个事件的信息量可以表示为:\\ log_2{\frac{1}{p_i}}\\

或者:log2pi或者: - log_2{p_i}


信息熵的意义: 概率分布中所有事件的信息量的期望(现在默认为离散概率分布)

期望

回顾期望的定义:

对于服从任意概率分布的随机变量X,范围是[1,n]对于服从任意概率分布的随机变量X, 范围是[1, n]\\

E[g(X)]=i=1npX(xi)g(xi)E[g(X)] = \sum_{i = 1}^{n} p_X(x_i)g(x_i)


我们定义 g(xi)g(x_i)X=xiX = x_i 这个事件的信息量, i.e.:

g(xi)=I(xi)=log2pig(x_i) = I(x_i) = - log_2{p_i}


信息熵HH: 概率分布中所有事件的信息量的数学期望

对于服从任意概率分布的随机变量X,范围是[1,n]对于服从任意概率分布的随机变量X, 范围是[1, n]

H(X)=i=1npX(xi)log2(pX(xi))H(X) = \sum_{i = 1}^{n} - p_X(x_i)log_2(p_X(x_i))



信息量与信息熵的解释:

1. 信息量定义的理解:

事件A的信息量的定义是:描述事件A所需的bit数

  • 补充:所谓 “描述事件A所需的bit数” 其实是假定每个事件A都是某个均匀分布的一部分,所以A可能出现 1 / p 种情况

2. 所以根据定义,我们不难发现:

  • 对于概率高的事件, 由于描述事件所需的bit数少(可能的情况少),信息量少
  • 对于概率低的事件,由于描述事件所需bit数大(可能的情况多),信息量多


    可能许多人会理所应当的把这个 “信息量” 理解为 “事件A含有的信息多少”, 实际上其实是 “传输这个事件结果需要的最少bit数”

3. 前面提到对于某个概率分布中的任意一个事件: AiA_i, 我们会假定他是某个均匀分布的一部分,为什么可以这样直接把*事件A自行扩展成一个虚构的均匀分布

其实这是一个贪心思想,我们回顾一下我们定义信息量这个东西想要表示什么

  • 首先,我们的目的非常简单:最小化传递服从这个分布的随机变量结果的传输用的bit数
  • 以最简单的例子为例:抛一个 unfair four sided dice, 概率如下:
    • 1: 0.1
    • 2: 0.2
    • 3: 0.3
    • 4: 0.4
  • 我们需要最小化传递这四个数的bit数应该如何做呢?
  • 根据贪心思想,我们想知道传递这各数字在最坏情况下所需的最少bit数,反正对于每个事件,我们只知道他发生的概率是0.1,所以最坏情况就是大家都是0.1,有10个不同事件,我们取其中一个作为事件x=1x = 1发生的概率,同理可得:
    • I(1)=log2(0.1)I(1) = log_2(0.1)
    • I(2)=log2(0.2)I(2) = log_2(0.2)
    • I(3)=log2(0.3)I(3) = log_2(0.3)
    • I(4)=log2(0.4)I(4) = log_2(0.4)
  • 为了描述这个概率分布平均需要多少bit才能传输,就取数学期望即可,我们称这个期望叫做H 信息熵

4. 信息熵为什么能描述一个分布中事件发生的不确定性呢?

  • 这要从信息熵的定义式说起:

H(X)=i=1npX(xi)log2(pX(xi))H(X) = \sum_{i = 1}^{n} - p_X(x_i)log_2(p_X(x_i))

  • 可以看出这个这个定义式是这个分布中所有事件 “信息量” 的数学期望
  • 单个事件信息量的定义的推导又是 “这个事件需要几个bit描述”(需要bit数量越多越不确定)
  • 所以信息熵是描述这个分布中描述每个事件需要的bit数量,需要的bit数量越多说明情况越多,越不确定

source

  • bilibli:《如何理解信息熵》up主: Ele实验室, Ele实验室 BV号 BV1oX4y1w7aG