【知识建设】信息熵、条件熵、互信息、交叉熵及相对熵(KL散度)

本文详细介绍了信息熵、条件熵、互信息和交叉熵的概念,以及它们在消除不确定性、衡量相关性和评估分布估计中的作用。信息熵表示系统的不确定性,条件熵描述给定条件下事件的不确定性,互信息衡量两个随机变量的依赖程度,而交叉熵则用于衡量分布估计的准确性。相对熵(KL散度)进一步比较了真实分布与估计分布的差异。这些概念在深度学习和数据处理中具有重要应用。
摘要由CSDN通过智能技术生成

一、信息熵

1. 定义

衡量一个随机变量 X X X的信息量,用 H H H表示

根据这个定义,这应该是个不确定的值(随机变量是变化的),而数学上使用期望来将这种不确定性量化:

H = ∑ x ∈ X P ( x ) ∗ x H = \sum_{x \in X}P(x)*x H=xXP(x)x的信息量

其中 x x x为随机变量 X X X的不同取值

那么问题就变成了如何在具体的情形(即一个事件)下,估算随机变量的信息量

2. 语义理解

先从语义上理解信息量应该满足的条件,当一件事的不确定性越大(概率越小),那么它所包含的信息量就应该越大,相反,不确定性越小(概率越大),包含的信息量就越小;比如太阳从东边升起这件事是非常确定的,不确定性很小,那么你告诉我也不会改变什么,也就是没什么信息量。由此得知,信息量应该是关于概率的连续函数,其大小应该跟概率成反比,概率的范围是 [ 0 , 1 ] [0, 1] [0,1],那么信息量就应该是 [ 0 , 1 ] [0, 1] [0,1]为定义域的连续函数

另外,信息量还应该保证不是负值(一件事揭露的信息量应该至少为0,不可能是负值)(也就是说信息量在定义域 [ 0 , 1 ] [0, 1] [0,1]上应为非负值);具有可加性(同时告知两件事,应该比告知一件事的信息量大或相等)(其实可加性就指示了应该使用 l o g log log函数了);概率越小,信息量的增加速度越快,反之,信息量增加速度越慢,也就是说在定义域 [ 0 , 1 ] [0, 1] [0,1]上斜率应该递减(仍然参考太阳的例子)

3. 公式

那么满足上诉四个条件的函数,也就是负对数函数(或许还有别的吧,但是负对数函数非常常用),公式为 − l o g ( x ) -log(x) log(x)。而具体事件 x x x的信息量,在信息论中也称为自信息。综上所述,信息熵的整体公式应为:

H = − ∑ x ∈ X P ( x ) ∗ l o g P ( x ) H = -\sum_{x \in X}P(x)*logP(x) H=xXP(x)logP(x)

4. 自信息与信息熵

自信息表示一个确定事件的信息量,即一个事件的不确定性;而信息熵表示随机变量或整个系统的不确定性,是随机变量在不同事件下的信息量的期望,所以信息熵越大,表示该系统的不确定性越大

二、条件熵

H ( Y ∣ X ) H(Y|X) H(YX),定义为 X X X给定条件下 Y Y Y的条件分布的熵对 X X X的数学期望

这个定义也太拧巴了,可以理解为,在已知 X X X事件的情况下,事件 Y Y Y的信息量。而 X X X是一个不确定事件,因此需要通过将 X X X化为具体事件 x x x,分别计算不同 x x x下Y的信息量,则公式应为:

H ( Y ∣ X ) = ∑ x ∈ X P ( x ) H ( Y ∣ X = x ) H(Y|X) = \sum_{x \in X}P(x)H(Y|X=x) H(YX)=xXP(x)H(YX=x)

那么就要计算 H ( Y ∣ X = x ) H(Y|X=x) H(YX=x),即,在确定事件 x x x下,计算 Y Y Y的信息量,同样的,需要化为 Y Y Y的具体事件:

H ( Y ∣ X ) = − ∑ x ∈ X P ( x ) ∑ y ∈ Y P ( y ∣ x ) l o g P ( y ∣ x ) H(Y|X) = -\sum_{x \in X}P(x) \sum_{y \in Y}P(y|x)logP(y|x) H(YX)=xXP(x)yYP(yx)logP(yx)

根据条件概率的转化公式:

H ( Y ∣ X ) = − ∑ x ∈ X ∑ y ∈ Y P ( x , y ) l o g P ( y ∣ x ) H(Y|X) = -\sum_{x \in X} \sum_{y \in Y}P(x, y)logP(y|x) H(YX)=xXyYP(x,y)logP(yx)

三、互信息

1. 定义

衡量随机变量之间相互依赖程度的度量

2. 公式

假如有两个随机变量 X X X Y Y Y,那么要衡量 Y Y Y变量对 X X X变量的影响,就应该去计算,在未知 Y Y Y变量的情况下 X X X变量的信息量,和已知 Y Y Y变量的情况下 X X X变量的信息量,即:

I ( X ; Y ) = H ( X ) − H ( X ∣ Y ) I(X;Y) = H(X) - H(X|Y) I(X;Y)=H(X)H(XY)

结合上面对于信息熵和条件熵的解释,我们对齐进行整理:

I ( X ; Y ) = − ∑ x ∈ X P ( x ) ∗ l o g P ( x ) + ∑ x ∈ X ∑ y ∈ Y P ( x , y ) l o g P ( x ∣ y ) I(X;Y) = -\sum_{x \in X}P(x)*logP(x) + \sum_{x \in X} \sum_{y \in Y}P(x, y)logP(x|y) I(X;Y)=xXP(x)logP(x)+xXyYP(x,y)logP(xy)

其中根据全概率公式 P ( x ) = ∑ y ∈ Y P ( x , y ) P(x) = \sum_{y \in Y}P(x, y) P(x)=yYP(x,y),得到:

I ( X ; Y ) = − ∑ x ∈ X ∑ y ∈ Y P ( x , y ) ∗ l o g P ( x ) + ∑ x ∈ X ∑ y ∈ Y P ( x , y ) l o g P ( x ∣ y ) I(X;Y) = -\sum_{x \in X}\sum_{y \in Y}P(x, y)*logP(x) + \sum_{x \in X} \sum_{y \in Y}P(x, y)logP(x|y) I(X;Y)=xXyYP(x,y)logP(x)+xXyYP(x,y)logP(xy)

然后可以合并同类项 P ( x , y ) P(x, y) P(x,y)

I ( X ; Y ) = ∑ x ∈ X ∑ y ∈ Y P ( x , y ) ∗ l o g P ( x , y ) P ( x ) P ( y ) I(X;Y) = \sum_{x \in X}\sum_{y \in Y}P(x, y)*log \frac{P(x, y)}{P(x)P(y)} I(X;Y)=xXyYP(x,y)logP(x)P(y)P(x,y)

3. 应用

互信息和信息熵的关系可以通过下图表示:
在这里插入图片描述
经常见到的目标是,要使互信息最大化,就是最大化两个随机事件的相关性,在深度学习中,就是最大化数据集所拟合出的分布的相关性

当两个随机变量相同时,互信息最大,公式:

I ( X ; X ) = H ( X ) − H ( X ∣ X ) = H ( X ) I(X;X) = H(X) - H(X|X) = H(X) I(X;X)=H(X)H(XX)=H(X)

四、交叉熵

这里先引入对信息熵的另一种理解,即为了消除某随机变量的不确定性要付出的最小努力。当你正确估计随机变量的分布(即真实分布,记为 p ( x ) p(x) p(x))时,这种努力会达到最小;相反,当你得到的是非真实分布(记为 q ( x ) q(x) q(x))时,就要为了消除随机变量的不确定性付出更多努力。而我们要衡量这种非真实分布下要付出的努力,就用到了交叉熵:

H ( p , q ) = − ∑ x ∈ X p ( x ) l o g q ( x ) H(p, q) = -\sum_{x \in X}p(x)log q(x) H(p,q)=xXp(x)logq(x)

p ( x ) p(x) p(x)为随机变量的特定取值下的概率,这个是不变的,而 l o g q ( x ) logq(x) logq(x)表示随机变量特定取值下,为了消除不确定性所付出的努力,这一点是与对分布的估计相关的,当你正确估计,则付出的努力小,反之,付出的努力大;

而许多地方消除了负号,写作下面的形式:

H ( p , q ) = ∑ x ∈ X p ( x ) l o g 1 q ( x ) H(p,q) = \sum_{x \in X}p(x)log\frac{1}{q(x)} H(p,q)=xXp(x)logq(x)1

五、相对熵,也称为KL散度

上一部分我们谈到,信息熵可以理解为,为了消除不确定性所付出的最小努力,而交叉熵衡量了错误估计随机变量的分布时,消除不确定性所付出的努力;那么如何去衡量这种错误估计时的努力,与需要付出的最小努力,他们之间的差异呢?就用到了相对熵。

根据这种理解,我们可以结合信息熵和交叉熵的公式(仍然假设 p p p为真实分布):

D K L ( p ∣ ∣ q ) = H ( p , q ) − H ( p ) D_{KL}(p||q) = H(p,q) - H(p) DKL(pq)=H(p,q)H(p)

代入,

D K L ( p ∣ ∣ q ) = − ∑ x ∈ X p ( x ) l o g q ( x ) + ∑ x ∈ X p ( x ) l o g p ( x ) D_{KL}(p||q) = -\sum_{x \in X}p(x)logq(x) + \sum_{x \in X}p(x) logp(x) DKL(pq)=xXp(x)logq(x)+xXp(x)logp(x)

稍作整理,

D K L ( p ∣ ∣ q ) = ∑ x ∈ X p ( x ) l o g p ( x ) q ( x ) D_{KL}(p||q) = \sum_{x \in X}p(x)log \frac{p(x)}{q(x)} DKL(pq)=xXp(x)logq(x)p(x)

六、结束语

两天了,终于整理完confuse我两年的小登西。谢谢下面参考:

信息熵是什么? - 运筹之学的回答 - 知乎

通俗理解条件熵 - 忆臻的文章 - 知乎

什么是「互信息」? - 甜草莓的回答 - 知乎

如何通俗的解释交叉熵与相对熵? - Peiwen的回答 - 知乎

详解机器学习中的熵、条件熵、相对熵和交叉熵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值