信息熵的直观理解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信息熵的直观理解相关的知识,希望对你有一定的参考价值。

 

在机器学习算法(如二叉树)、特征选择(互信息)中经常用到熵的概念,信息熵的概念以及介绍网上有很多,这里主要做一个直观的介绍。

1. 信息的度量

2. 信息熵

 

一、 信息量

常常把消息中有意义的内容成为信息。我们常常说,某人说的某句话信息量很大,具体在信息论中,其实指的是他说的这句话消除的不确定性多。信息的度量定义为消除不确定性的多少。(信息是用来消除不确定性的东西--Shannon)

信息量函数:

$I=-\ln p_{i}$

其中,$p_{i}$是事件$x_{i}$发生的概率($x_{i} \in X$)

直观上,概率越小,即事件发生的概率越小,它指出的信息越具体,相应地,信息量就越大。怎么理解这句话呢,举个栗子。有一个30*30的座位表,你未来的女朋友在其中的一个座位上入座,但是你并不知道她到底在哪个座位上(这也是你为什么没有女朋友的原因吗,哈哈哈。。。)。如果天上的某位月老1告诉你,她坐在第6排,那么范围会缩小很多。月老2告诉你“她坐在第6排第6列”。“她坐在第6排”和“她坐在第6排第6列”,直观上显然后者包含的信息量更多。那么如何定量的比较这两句话的信息量大小呢?

* 对于前者,事件发生的概率是 $p = \frac{30}{30 \times 30}= \frac{1}{30}$,那么信息量 $I=- \ln p_{i}= 3.4$

* 对于后者,事件发生的概率是 $p = \frac{1}{30 \times 30} = \frac{1}{900}$,那么信息量 $I=- \ln p_{i}= 6.8$

对于前者,月老1给出的信息还是太少,即从原来什么都不知道消除的不确定性还是太少,同时月老1的预言发生的概率也比较大。月老2给出的信息非常具体,消除的不确定性很多,这句话发生的概率对应地也比较小。也可以这么理解,给出的信息越具体,发生的概率越小,风险越高,因为你不知道他说的到底对不对(信息量大不代表信息准确)。

总结一句话,一个事件的信息量就是这个事件发生的概率的负对数。

 

二、信息熵

简单的讲,信息熵(entropy)就是平均而言发生一个事件我们得到的信息量大小。所以数学上,信息熵其实是信息量的期望。

$H = -\sum_{x \in X} P(x) logP(x)$

$X$是事件的集合。在理解了信息量的概念后,公式还是很直观的,就是信息量的期望。

在信息论中,熵是信息不确定性的一个测度,熵越大表示信息的不确定性越高。比如对明天的天气做预测,

a. 预测1:100%晴天

$H_{1}=0.0$

b. 预测2:50%晴天, 50%阴天

$H_{2}=-\frac{1}{2} \ln (\frac{1}{2})-\frac{1}{2} \ln (\frac{1}{2})=1.0$

c. 预测3:30%晴天, 30%阴天,40%

$H_{3}=-\frac{3}{10}\ln \frac{3}{10} -\frac{3}{10}\ln \frac{3}{10} - \frac{4}{10} \ln \frac{4}{10}=1.6$

# 计算信息熵
import math x = [0.3, 0.3, 0.4] H = sum(map(lambda x : -x * math.log(x, 2), x))

从上面这个例子也可以看出来,不确定性越大,信息熵越大。

以上是关于信息熵的直观理解的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记之信息量熵KL散度交叉熵的一些介绍

[梁山好汉说IT] 熵的概念 & 决策树ID3如何选择子树

信息熵

熵的简单解释(科班同学勿入)

信息熵公式的由来(转)

熵是什么?熵的公式是什么?决策树如何把熵的递减变换为信息增益进行树枝的分叉以及树的生长的?