现代社会都在讨论信息的重要新,但是信息这个概念很抽象,如何去度量呢?一本<哈利波特>能带给我们多少信息?如何定量的表达?这个问题一直困扰着科学界,直到香侬提出信息熵这个概念.
举个例子,比如说:
明天下雨
这句话带给我们多少信息呢?
假设天气情况只有晴天,下雨,下雪,多云4种情况,如果用计算机来表达这四种情况需要几个比特?
00 晴天
01 下雨
10 下雪
11 多云
所以"明天下雨"这句话带来的信息只需要用2个比特就可以表达出来,所以这句话的信息量为2比特.信息量与每种情况的概率有如下关系:
这里的对数是以2为底的,当然也可以其他底的对数,只不过是单位不同罢了.
这里有个问题,我在上海,下雪的情况是非常少的,下雪对我来说几乎可以忽略,从这个角度来考虑"明天下雨"这句话带来的信息对我来说可能没有2比特,所以我们会乘以每种情况的概率:
当我们已知某个条件,信息熵可以表示为条件熵:
比如说,我给个提示,说"现在是夏天",那么"明天下雨"这句话带来的信息量就会更少,因为夏天基本上不会下雪.也就是说其他信息可以帮我们消除了不确定性,即:
当获取的信息和要研究的事物"有关系"时,这些信息可以帮助我们消除不确定性.当然"有关系"这种说法太模糊,不太科学,最好能够量化独立"相关性".
香侬提出一个"互信息"的概念来作为两个随机事件"相关性"的量化独立:
互信息还可以写成:
所谓两个事件相关度的量化,就是在了解一个事件的情况下,对另一个事件不确定性消除的大小.
KL散度,也叫相对熵或KL距离.它主要用来衡量两个分布的相似程度,相似程度越大,KL散度越小。
机器学习的过程其实就是让模型模拟训练数据分布的过程,所以可以使用KL散度作为机器学习的好坏的指标。将KL散度展开:
其中是熵的负数,这是由训练集决定的相当与常数,所以最小化KL散度等价于最小化交叉熵。所以机器学习经常用交叉熵作为损失函数。
由KL散度可知,当训练数据给定时,最小化KL散度等价于最小化交叉熵,所以机器学习经常用交叉熵作为损失函数。
参考: