信息熵

现代社会都在讨论信息的重要新,但是信息这个概念很抽象,如何去度量呢?一本<哈利波特>能带给我们多少信息?如何定量的表达?这个问题一直困扰着科学界,直到香侬提出信息熵这个概念.

举个例子,比如说:

明天下雨

这句话带给我们多少信息呢?

假设天气情况只有晴天,下雨,下雪,多云4种情况,如果用计算机来表达这四种情况需要几个比特?

00 晴天
01 下雨
10 下雪
11 多云

所以"明天下雨"这句话带来的信息只需要用2个比特就可以表达出来,所以这句话的信息量为2比特.信息量与每种情况的概率有如下关系:

I(x) = \log\frac{1}{P(x)}

这里的对数是以2为底的,当然也可以其他底的对数,只不过是单位不同罢了.

这里有个问题,我在上海,下雪的情况是非常少的,下雪对我来说几乎可以忽略,从这个角度来考虑"明天下雨"这句话带来的信息对我来说可能没有2比特,所以我们会乘以每种情况的概率:

H(X) =\sum_{x\in X} P(x)\log \frac{1}{P(x)}= -\sum_{x\in X} P(x)\log P(x)

条件熵

当我们已知某个条件,信息熵可以表示为条件熵:

H(X|Y) = -\sum_{x\in X,y\in Y} P(x,y)\log P(x|y)

比如说,我给个提示,说"现在是夏天",那么"明天下雨"这句话带来的信息量就会更少,因为夏天基本上不会下雪.也就是说其他信息可以帮我们消除了不确定性,即:

H(X|Y) \leq H(X)

互信息

当获取的信息和要研究的事物"有关系"时,这些信息可以帮助我们消除不确定性.当然"有关系"这种说法太模糊,不太科学,最好能够量化独立"相关性".

香侬提出一个"互信息"的概念来作为两个随机事件"相关性"的量化独立:

I(X;Y) = \sum_{x\in X,y\in Y} P(x,y)\log \frac{P(x,y)}{P(x)P(y)}

互信息还可以写成:

I(X;Y) = H(X) - H(X|Y)

所谓两个事件相关度的量化,就是在了解一个事件的情况下,对另一个事件不确定性消除的大小.
image.png

交叉熵

交叉熵在机器学习领域中经常作为最后的损失函数,他本质上相当于衡量猜测分布q(x)与真实分布p ( x )之间的差值,因为只有当猜测的分布约接近于真实分布,则其值越小。

H ( f(x),g(x) ) = - \sum_x f ( x ) \log g ( x )

相对熵,KL散度

相对熵,英文为Kullback–Leibler Divergence,也被称为KL散度.相对熵也用来衡量相关性,但和变量的互信息不同,它用来衡量两个取值为整数的函数的相似性,它的定义为:

KL(f(x)||g(x)) = \sum _ { x\in X }  f(x)\cdot\log\frac{f(x)}{g(x)}

两个函数越大,相对熵越大;反之相对熵越小,两个函数越小.它可以用来衡量两段信息的相似程度,比如说如果一篇文章是照抄或改写一篇文章,那么这两篇文章中次词频分布的相对熵就非常小,接近于零.

通常情况下,相对熵也和交叉熵等价,因为真是分布f(x)是固定的.当然也有特殊情况,彼时2者须区别对待。


参考:

posted @ 2019-01-24 19:32:44
评论加载中...

发表评论