机器学习的信息论基础

信息

个是熵和信息增益的基础概念,我觉得对于这个概念的理解更应该把它认为是一用名称,就比如“鸡”(加引号意思是说这个是名称)是用来修饰鸡(没加引号是说存在的动物,即鸡),“狗”是用来修饰狗的,但是假如在鸡还未被命名为“鸡”的时候,鸡被命名为“狗”,狗未被命名为“狗”的时候,狗被命名为“鸡”,那么现在我们看到狗就会称其为“鸡”,见到鸡的话会称其为“狗”,同理,信息应该是对一个抽象事物的命名,无论用不用“信息”来命名这种抽象事物,或者用其他名称来命名这种抽象事物,这种抽象事物本身是客观存在的。

信息量

信息是用来减少随机不确定性的东西(即不确定性的减少)。对于事件来说,它发生的概率越大,那么它所含有的信息量就越低,反之亦然。

考虑抛硬币的例子,为了描述抛掷硬币的所有结果(正/反),需要 1 bit 大小的数据,即用 0/1 代表某一面;在考虑从一副抽掉大小王的扑克里随机抽一张牌,为了描述抽到牌的花色(共四种),需要 2 bits 数据。所以,后一个例子的不确定性比前一个更大,那为了弥补这种不确定性、准确描述结果,我们需要更多的信息。

公式 假设 是一个离散型随机变量,概率分布函数 ,则定义事件 的信息量为:

说明:上面是以 2 为对数的底,实际上这个底是能够是其他的数字的。常用的是 2 和 e 这两个底。底是2的时候,单位为bit;底是e的时候,单位为nat

有时候也将其称为自信息(self-information),可以推广一下:

联合自信息

条件自信息

以上公式也可以推广至多维。

信息熵

高中化学曾经学习过熵的一些概念。化学中的熵是指一个体系中的混乱程度,事实上对应我们机器学习中的熵是类似的。一个事物越混乱,那么很显然它就包含了更多的信息。

信息熵是由信息论之父香农提出来的,它用于随机变量的不确定性度量。

上面的 是指在某个概率分布之下,某个事件的概率值对应的信息量的公式。那么我们知道每个事件对应的信息量也知道每个事件发生的可能性(即概率),也就知道整个概率分布对应的信息量的平均值,这个平均值就叫做随机变量x的熵。通常,我们使用熵来衡量所有信息量的期望,即:

这个公式的意思就是,随机变量是服从 这个分布的,也就是在 分布下面的平均自信息。信息熵的本质可以看做是某个分布的自信息的期望。

信息熵在联合概率分布的自然推广,就得到了联合熵:

当变量 相互独立时:

条件熵公式

当变量 不独立时,用互信息 (Mutual Information) 来衡量两者的相关性:

KL 散度

Kullback-Leibler divergence,又称为相对熵。如果我们对于同一个随机变量 x 有两个单独的概率分布,我们可以使用KL散度来衡量这两个分布的差异。

在机器学习中, 往往用来表示样本的真实分布,比如 [1,0,0] 表示当前样本属于第一类。 用来表示模型所预测的分布,比如[0.7,0.2,0.1] 。直观的理解就是如果用来描述样本,那么就非常完美。而用来描述样本,虽然可以大致描述,但是不是那么的完美,信息量不足,需要额外的一些“信息增量”才能达到和一样完美的描述。如果我们的通过反复训练,也能完美的描述样本,那么就不再需要额外的“信息增量”,此时 等价于

KL 散度公式(连续情况下):

在一定程度上面,相对熵可以度量两个随机分布的距离。也常常用相对熵来度量两个随机分布的距离。当两个随机分布相同的时候,他们的相对熵为0,当两个随机分布的差别增大的时候,他们之间的相对熵也会增大。但相对熵不具有对称性,即:

KL 散度还具有非负性。

值得注意的是:

所以:

互信息实际上就是变量的联合分布与它们边缘分布的乘积的KL散度。也就是说,最大化互信息,就是要拉大联合分布与边缘分布乘积的距离。

交叉熵

交叉熵可以看做 KL 散度的特例,其公式是:

可以发现: