保留初心,砥砺前行
这一章节讲解的是关于信息的某些度量。
我们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。......直到1948年,Shannon在他著名的论文“通信的数学原理”中提出了“信息熵”的概念,才解决了信息的度量问题,并且量化出信息的作用。
-
信息熵
首先,我们可以记住的是,信息熵一般使用符号H来表示,单位是比特。接下来,看一个书中给出的例子:
当我错过了上一届世界杯的比赛,而想知道谁夺得冠军时,我询问一个知道比赛结果的观众。但是他并不愿意直接告诉我,而是让我猜测,每猜一次他要收费1元来告诉我,我的猜测是否正确。那么我要花多少钱才能知道谁是冠军呢?
我可以把球队编号,1到32号(当然大家都知道世界杯是32支球队,然而过几年变成48支的时候我会回来修改的)然后我提问:“是在1到16号中吗?”。如果他告诉我猜对了,我会继续问:“是在1到8号中吗?”。这种询问方式大家都懂,因此这样询问下去,只需要5次,也就是只需要5元钱就可以知道哪支球队是冠军。因此,世界杯冠军这条消息的信息量可以看做是5元钱。
我们回到数学上的问题,使用比特来代替钱的概念(计算机中,一个比特是一位二进制数,一个字节就是8个比特),这条信息的信息量是5比特。如果有64支队伍,就要多猜一次,也就是6比特。log232 = 5,log264 = 6
以上是在所有队伍的夺冠可能性相同的情况下的计算方法,一般化来说,对于任何一个随机变量X,他的信息量,也就是信息熵如下:
H(X) = -∑P(x)logP(x)
变量X的不确定性越大,信息熵也就越大。也就是说,如果要把这件事搞清楚,所需要知道的信息量就越多。换句话说,信息熵就是信息的不确定性。
可以结合世界杯的例子进行理解,参与的球队越多,需要猜测的次数就越多,32到64支,夺冠的不确定性变大,猜测次数由5次到6次,信息熵也就越大。
-
条件熵
一个事物内部会存在随机性 ,也就是不确定性(信息熵),假定为U,而消除这个不确定性的唯一的办法就是引入相关的信息I,并且引入的信息I要大于U才可以。如果I<U,则这些加入的信息只能消除一部分不确定性,不能完全消除不确定性:
U' = U - I
如果要证明为什么这些相关的信息可以消除信息的不确定性,为此要引入一个新的概念,条件熵。
上文中讲到了信息熵,在知道某个随机变量X和它的随机分布后,就可以计算得到它的信息熵。
假设我们现在还知道另一个随机变量Y的情况,包括它和X一起出现的概率,也就是X和Y的联合概率分布;以及在Y取值的前提下,X的概率分布,也就是条件概率分布。则可以定义在Y的条件下的条件熵为:
H(X|Y) = -∑P(x,y)logP(x|y)
以上的条件熵可以理解为,在知道了某些信息Y之后,X的信息熵是多少。H(X) >= H(X|Y),因为在知道了一些Y的信息之后,X的信息熵比只知道X的情况下下降了。也就是说与X相关的信息Y,消除了信息X的不确定性。正如本节第一句话所言,相关的信息可以消除信息的不确定性。
-
互信息
Shannon在信息论中提出了互信息的概念作为两个随机事件相关性的量化度量。
互信息就是表示两个随机事件的相关性。
它有一个看上去不知所云的表达式I(X;Y) = ∑P(x,y)log(p(x,y)/(P(x)P(y)))
上边这个公式看看就好,接下来要理解的是:
I(X;Y) = H(X) - H(X|Y)
所谓的互信息,就是信息熵与条件熵相减。通俗来说,信息熵是要了解事件X所要知道的信息量(也就是X的不确定性),减去在知道了Y之后仍然不确定的事,就得到了知道Y后可以确定的关于X的信息,也就是X与Y的相关性。
当X与Y完全相关时,I(X;Y) 为1;当他们完全不相关时,I(X;Y) 为0。其余情况取值在0和1之间。
-
交叉熵(相对熵)
前面已经介绍了信息熵和互信息,它们是信息论的基础,而信息论则在自然语言处理中扮演着指导性的角色。
交叉熵也用来衡量相关性,但和变量的互信息不同,它用来衡量两个取值为正数的函数的相似性。互信息:X与Y的相关性,两者是否有关系,有多少关系。
交叉熵,X与Y的相似性,它们两个是否相同。交叉熵的定义如下:
KL(f(x)||g(x)) = ∑f(x)·log(f(x)/g(x))
同时,存在以下三条结论:
- 对于两个完全相同的函数,它们的交叉熵等于0.
- 交叉熵越大,两个函数差异越大;交叉熵越小,两个函数差异越小。
- 对于概率分布或概率密度函数,如果取值均大于0,交叉熵可以度量两个随机分布的差异性。(关于这条,大神们可以在评论区解释一下吗?)