【让AI飞】信息论--综述

信息论用来对一个信号包含信息的多少进行量化。最初被发明来研究如何在一个含有噪声的信道上用离散的字母表来发送消息,例如通过无线电来传输通信。信息论可以指导我们如何对消息设计最优编码以及计算消息的期望长度。在机器学习总,我们主要是借鉴信息论的一些关键思想来描述概率分布或者量化概率分布之间的相似性。

信息论的基本出发点来自于对现实的观察:一个不大可能的事情发生了,要比一个非常可能发生的事情发生了,能提供更多的信息(或者说更大的刺激)。

我们想要量化这种 信息量或者说刺激感,需要满足一定的条件

  • 非常可能发生的事件对应的信息量很小。极端情况下,比如今天太阳升起来了包含的信息量就几乎为0,没什么感觉,都不值得分享出去。
  • 比较不可能发生的事件具有更高的信息量。比如,我买的**中了500万头奖 这个事件包含的信息量几乎能达到个人承受刺激的极限,指不定人都要昏过去
  • 独立事件赢具有增量的信息。我家门前,前两棵树,都是枣树我家门前第一棵数,是枣树 的信息量的两倍。

自信息量 (self-information)

为了满足以上特征,我们(注:我们指的是Shannon 和 我们凡人)可以把事件x包含的自信息量 I(x) 定义为

I(x)=log2P(x)
, 我们定义的 I(x) 的单位是比特(bit) 或者 香农(shannons)。一比特就是观测到一个概率为12=0.5 的事件发生时,获得的信息量。也有的文献用底数为 e 的对数,相应的单位是奈特(nats),一奈特就是观测到一个概率为1e0.368 的事件发生时,获得的信息量。 当然由于对数计算的关系,两种度量方式只是常数倍的对应关系。(在信号处理中,用比特和底数2衡量比较常见,而在机器学习中,我们通常用奈特和自然对数)

信息熵 (Entropy)

对于单个事件,我们用 I(x)表征其自信息量,那么对于多个事件构成的事件集合的信息总量呢?这时候我们引入 信息熵(entropy/ Shannon entropy)的概念来对整个概率分布中的信息总量进行量化:

H(x)=ExP[I(x)]=ExP[log2P(x)]
, 也就是说一个分布的信息熵指的是遵循这个分布的事件所产生的信息总量的期望。从而,

  • 离散分布:对于一个离散信源 X 包含 n 个事件,则其信息熵是
    H(X)=i=1np(xi)log2p(xi)
  • 连续分布: 又被称为 微分熵(differential entropy)

【让AI飞】信息论--综述

上图是一个二值随机分布的香农熵。水平轴表示此二值随机变量取1的概率。从而,其熵就是 (p1)log2(1p)plog2p给出。上图说明了,更接近确定性的分布熵越小,而更接近均匀分布的分布具有更高的香农熵。从离散的累加公式也可以看到
P(xi)=1n 的时候,熵最大,为 log2n.

熵代表了一个系统的混乱程度。熵越大,系统越混乱,不确定性越高。

KL 散度(Kullback-Leibler divergence)

KL散度用来衡量 一个随机变量x 的两个独立的概率分布 P(x)Q(x) 的差异:

DKL(PQ)=ExP[lnP(x)Q(x)]=ExP[lnP(x)lnQ(x)]

KL 散度具有很多有用的性质

  • 非负性。当且仅当 P,Q 为同一分布的时候,KL散度等于0
  • 非对称性。因为KL散度是非负的,而且衡量的是两个分布之间的差异,所以它常被用来当做分布之间的某种距离。然而,DL散度不是距离,因为它不对称。一般情况下,
    DKL(PQ)DKL(QP)
    。KL散度的非对称性意味着计算的先后顺序很重要。这在我们有一个分布p(x),并且希望用另一个q(x)去近似它的时候要特别留意KL散度方向的选择。

【让AI飞】信息论--综述

如上图,我们已有一个分布p(x), 是两个高斯分布的混合,我们希望用另一个分布 q(x)去近似它,此处 q(x)是单个高斯分布。我们通过最小化KL散度来近似。

- 左边的图,我们最小化 DKL(pq), 这个意图表明,我们优先考虑的是,设计一个q,使得它在 p具有高概率的地方也具有高概率。当p具有多个峰时,q选择将这些模糊到一起,以便高概率质量放到所有峰上

- 右边的图,我们最小化 DKL(qp), 这个意图表明,我们优先考虑的是,设计一个q,使得它在 p具有低概率的地方也具有低概率。q选择将波峰与p的一个波峰融合,从而保证低概率区域的重合。

交叉熵(cross-entropy)

定义P,Q的交叉熵为 P 的信息熵 加上 P,Q的KL散度,即 H(P,Q)=H(P)+DKL(PQ), 即

H(P,Q)=ExPlnQ(x)
,这和 KL散度很像,但是缺少左边那一半。针对 Q最小化交叉熵等价于最小化KL散度。

注意

  • 计算中按照惯例, 0ln0=0