信息熵概览
学科分属
信息熵隶属于应用数学中的信息论学科分支1。
历史发展
熵最先由Claude
Shannon引入信息论,目前已经在工程技术、社会经济等领域得到了非常广泛的应用。照信息论基本原理的解释,信息是系统有序程度的一个度量,熵是系统无序程度的一个度量;如果指标的信息熵越小,该指标提供的信息量越大,在综合评价中所起作用理当越大,权重就应该越高。
信息熵模型介绍
定义介绍
信息熵是一种用于衡量系统内部信息量的度量。在信息论中,信息是系统有序程度的一种度量。信息是确定性的增加,不确定性的减少(香农定义)。而信息熵是系统无序程度的一种度量,是系统不确定性的量度。两者绝对值相等,但符号相反。一个系统的信息熵越小,该系统所含的信息量越大。
信息熵被广泛用于计算机编码,通信理论,博弈论等与“信息量”和
“不确定性”相关的理论模型中。
熵权法就是一个通过信息熵理论确定系统中各指标权值的赋值方法,能够较为精确客观地判断系统中各指标对总评价的贡献大小,是信息熵理论在数学建模领域中最重要的应用之一2。
信息熵的基本概念
一个离散型随机变量X的信息熵H(X)定义为: H(X) = − ∑p(xi)log p(xi)
式中p(xi)为随机变量X能取到xi的概率。
信息熵具有以下特点:
- 单调性,即发生概率越高的事件,其所携带的信息熵越低。极端案例就是“太阳从东方升起”,因为为确定事件,所以不携带任何信息量。从信息论的角度,认为这句话没有消除任何不确定性。
- 非负性,即信息熵不能为负。这个很好理解,因为负的信息,即你得知了某个信息后,却增加了不确定性是不合逻辑的。
- 累加性,即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和。
若事件X = A,事件Y = B同时发生,且有: p(X=AY=B) = p(X=A) × p(Y=B)
即两个事件相互独立,那么有信息熵H(AB) = H(A) + H(B)
特别的:如果两个事件不相互独立,那么满足H(AB) = H(A) + H(B) − I(AB),其中I(AB)是互信息(mutual
information),代表一个随机变量包含另一个随机变量信息量的度量。该概念是通讯理论中的重要概念。香农基于该概念首次提出并严格证明了近代信息论的重要基础公式之一:香农公式。
比如一个点到点通信系统中,发送端信号为X,通过信道后,接收端接收到的信号为Y
,那么信息通过信道传递的信息量就是互信息I(XY)。通过香农公式,可给出了临界通信传输速率的值,即信道容量:
$$
C=B\log (1+\frac{S}{N})
$$
熵权法
熵权法是打分式评价模型中的一种,用于对有限个决策进行评价,假设n个决策中每个决策具有k个指标,熵权法通过对不同指标的信息熵进行对比,确定指标的权重,最终确定最优决策。
一般来说,若某个指标的信息熵越小,表明不同决策对应的该指标值的变化程度越大,提供的信息量越多。在综合评价中所能起到的作用也越大,其权重也就越大。相反,某个指标的信息熵越大,其指标值的变化程度就越小,提供的信息量也越少,最终的贡献也越小,其权重也就越小。
熵权法相对于其他打分评价模型来说,具有精确客观的优点。基于信息熵所计算得出的权重能够较为精确地反应不同指标间的差别。
但是相对应的,由于该模型的本质是用有限个决策样本去“估计”指标的信息熵,在样本量过少的情况下,基于熵权法所计算得出的权重则有可能出现较大误差。一般来讲,样本决策数n必须大于等于指标数k。
**详细内容可见_熵权法_。**
熵权法的发展
熵权法作为一个基本模型,其中许多步骤在后续的发展中被证实具备可优化的空间。下列部分可优化步骤即一些常见的优化策略:
- 数据标准化 数据标准化的要求是:去量纲、将所有数据映射到一个特定区间(一般为0 − 1区间,此时该步骤又称为数据归一化)、在映射的同时尽量保证数据的统计特征不变。
目前数据标准化方法有多种,归结起来可以分为直线型方法(如极值法、标准差法)、折线型方法(如三折线法)、曲线型方法(如半正态性分布)。可参考数据标准化/归一化。
- 信息熵估算 在通过有限个样本对信息熵进行估算时,有时可能由于样本量过少,从而造成较大误差。一个可能的方法是通过蒙特卡罗模拟等方法尽量增大样本量,但是这种方法有可能会污染指标内的数据。(一个典型的例子是大量纯随机模拟之后导致所有指标信息熵越来越接近)。故在样本量过小的时候,一般不建议使用熵权法,或者通过其他方式估算指标的信息熵,如分析指标本身的属性。
实例分析
信息熵理论的应用举例
直觉上,信息量等于传输该信息所用的代价,这个也是通信中考虑最多的问题。比如说:赌马比赛里,有四匹马A, B, C, D,获胜概率分别为{1/2,1/4,1/8,1/8}。
接下来,让我们将哪一匹马获胜视为一个随机变量Xv{A, B, C, D}。假定我们需要用尽可能少的二元问题来确定随机变量X的取值。例如:问题1:A获胜了吗?问题2:B获胜了吗?问题3:C获胜了吗?最后我们可以通过最多3个二元问题,来确定X的取值,即哪一匹马赢了比赛。
如果X = A,那么需要问1次,概率为1/2;如果X = B,那么需要问2次,概率为1/4;如果X = C,那么需要问3次,概率为1/8;如果X = D,那么同样需要问3次,概率为1/8。很容易计算,在这种问法下,为确定X取值的二元问题数量为:
$$
E(N)=1/2\times1+1/4\times2+1/8\times3\times2=\frac{7}{4}
$$
回到信息熵的定义,得到:
$$
H(X)=1/2\times\log_22+1/4\times\log_24+1/8\times\log_28\times3=\frac{7}{4}bits
$$
在二进制计算机中,一个比特为0或1,其实就代表了一个二元问题的回答。也就是说,在计算机中,我们给哪一匹马夺冠这个事件进行编码,所需要的平均码长为1.75个比特。
平均码长的定义为:L(C) = ∑p(x)l(x)
很显然,为了尽可能减少码长,我们要给发生概率p(x)分配较短的码长l(x)。这个问题深入讨论,可以得到霍夫曼编码的概念。
那么A, B, C, D四个实验,可以分别用0, 10, 10, 111表示,那么很显然,我们要把最短的码0分配给发生概率最高的事件A,以此类推,得到的平均码长为1.75比特。如果我们逆其道而行之,给A分配最长的码,那么平均码长会变为2.625比特。
霍夫曼编码就是利用了这种大概率事件分配短码的思想,而且可以证明这种编码方式是最优的。我们可以证明上述现象:
- 为了获得信息熵为H(X)的随机变量X的一个样本,平均需要抛掷均匀硬币(或二元问题)H(X)次(参考猜赛马问题的案例)
- 信息熵是数据压缩的一个临界值(参考码长部分的案例)
信息熵的其他应用
信息熵理论并不仅仅可以被应用于熵权法,其也在许多其他地方具有广泛的应用,比如上文曾经提到过的互信息等。下再列举两例:
条件熵与信息增益
设有随机变量(XY),其联合概率分布为:p(X=xiY=yi) = pij
则条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性,其定义式为:
H(Y|X) = − ∑xi∑yjp(xy)log p(y|x)
条件熵是在某一条件下,随机变量的不确定性。信息增益则表示在增加了某一条件下,信息不确定性减少的程度。即:信息增益=熵-条件熵。
人们在利用特征进行分类的时候,常常选用信息增益更大的特征,因为信息增益大的特征对分类来说更加重要。决策树就是通过信息增益来构造的,信息增益大的特征往往被构造成底层的节点。
下举一例说明:
假设随机变量X表示明天的天气情况,随机变量Y表示今天的湿度,
X有三种状态:晴天,雨天,阴天,Y 有两种状态:潮湿,干燥。
Y | 晴天0 | 雨天1 | 阴天2 |
潮湿0 | 1 | 5 | 3 |
干燥1 | 5 | 1 | 3 |
假设基于以往的18个样本, X的三种状态,概率均为0.33,Y的两种状态,概率为0.5,则条件概率可以通过朴素贝叶斯公式进行计算:
$$
P(X=0|Y=0) =\dfrac{P(X=0,Y=0)}{P(Y=0)} =
\dfrac{\dfrac{1}{18}}{\dfrac{9}{18}} = \dfrac{1}{9}
$$
$$
P(X=1|Y=0) =\dfrac{P(X=1,Y=0)}{P(Y=0)} =
\dfrac{\dfrac{5}{18}}{\dfrac{9}{18}} = \dfrac{5}{9}
$$
$$
P(X=2|Y=0) =\dfrac{P(X=2,Y=0)}{P(Y=0)} =
\dfrac{\dfrac{3}{18}}{\dfrac{9}{18}} = \dfrac{3}{9}
$$
$$
P(X=0|Y=1) =\dfrac{P(X=0,Y=0)}{P(Y=1)} =
\dfrac{\dfrac{1}{18}}{\dfrac{9}{18}} = \dfrac{1}{9}
$$
$$
P(X=1|Y=1) =\dfrac{P(X=1,Y=0)}{P(Y=1)} =
\dfrac{\dfrac{5}{18}}{\dfrac{9}{18}} = \dfrac{5}{9}
$$
$$
P(X=2|Y=1) =\dfrac{P(X=2,Y=0)}{P(Y=1)} =
\dfrac{\dfrac{3}{18}}{\dfrac{9}{18}} = \dfrac{3}{9}
$$
则 $$
\begin{aligned}
H(X|Y) = \dfrac{1}{18}\times log\dfrac{1}{9} + \dfrac{5}{18}\times
log\dfrac{5}{9} + \dfrac{3}{18}\times log\dfrac{3}{9} +
\dfrac{1}{18}\times log\dfrac{1}{9}\\ + \dfrac{5}{18}\times
log\dfrac{5}{9} + \dfrac{3}{18}\times log\dfrac{3}{9}
\\ = 0.406885
\end{aligned}
$$ 所以Y产生的信息增益为0.47712 − 0.406885 = 0.070235。
交叉熵与相对熵
交叉熵是信息论中的重要概念,主要用于度量两个概率分布间的差异性信息。在使用各种算法(如神经网络算法)进行优化的过程中,往往将交叉熵又命名为loss变量,优化的目标即是最小化loss。
设随机变量Y满足p分布,通过拟合等操作得到的随机变量Y′ = f(x)满足q分布,则交叉熵即为描述p, q两个分布差异性的指标,其定义式为:
H(pq) = − ∑xip(xi)log q(xi)
易知,交叉熵越低,p, q越接近,即Y与Y′越接近。
更进一步地,我们可以定义相对熵=交叉熵−信息熵,即: KL(p||q) = H(pq) − H(p)
用于衡量某个策略与最优策略,或某个估计与真实值之间的差别。
代码实现
python实现如下:
修改记录
- 2022-09-12,杨伟程添加内容
- 2020-11-30, 贺龙坤更新Markdown文件
- 2019-02,何天拓、陈阳、叶枝函更新数学理论
- 2018-02,汪海洋创建初始页面