首页 > 其他分享 >entropy 熵 信息熵+联合熵+条件熵+互信息+交叉熵等的含义

entropy 熵 信息熵+联合熵+条件熵+互信息+交叉熵等的含义

时间:2022-10-27 15:33:53浏览次数:89  
标签:frac log 信息量 互信息 sum 散度 信息熵 entropy 随机变量

pre

ref: https://zhuanlan.zhihu.com/p/35379531
ref: https://blog.csdn.net/bymaymay/article/details/85059136

自信息

\(I(x)\)函数用以表达信息的内容,描述的是随机变量的某个事件发生所带来的## 信息量
,也被称为随机变量 x 的自信息 (self-information)。可取

\[I(x) = −logp(x) \]

其中负号是用来保证信息量是正数或者零,而log函数基的选择是任意的。
信息量的度量就等于不确定性的多少,依赖于概率分布 p(x),要弄清楚越不确定的事情(p小的)就需要越多的信息,这点从\(I(x) = \log\frac{1}{p(x)}\)可以看出来

信息熵

根据上述可以定义为

\[H(X) = -\sum_{i=1}^{n} p(x_i) \log p(x_i) \]

假设一个发送者想传送一个随机变量的值给接收者,这个过程中,他们传输的平均信息量可以通过求 I(x)=−logp(x)关于概率分布 p(x) 的期望得到,即\(H(X) = \sum p(x)I(x)\)。

H(X) 就被称为随机变量 x 的熵,表征了随机变量 x 所有情况下的平均不确定度,是对所有可能发生的事件产生的信息量的期望。从公式可得,随机变量的取值个数越多,状态数也就越多,信息熵就越大,混乱程度就越大。

最大熵定理

当随机变量 x,在离散情况下所有取值概率相等(或在连续情况下服从均匀分布),熵最大,且 \(0 \le H(X) \le logn\),其中n为x取值个数。

联合熵

随机变量 x, y 的联合熵定义为

\[H(X, Y) = \sum\sum p(x,y)I(x,y) = -\sum p(x,y)\log p(x,y) = E\left[\log\frac{1}{p(x,y)}\right] \]

它表示X, Y一起发生时的信息熵,用于度量一个联合分布的随机系统的不确定度
推导可知\(H(X, Y) = H(X) + H(Y|X) = H(Y) + H(X|Y)\),意思是对一个两个随机变量的随机系统,在观察其中一个获取信息量之后再观察另一个,先观察哪一个不会影响信息量的获取

条件熵

H(Y|X)表示在已知随机变量 X 的条件下随机变量 Y 的不确定性,它定义为 X 给定条件下 Y 的条件概率分布的熵对 X 的数学期望:

\[H(Y|X) = \sum_{x_i \in X} p(xi)H(Y|X=x_i) \]

通俗地讲,条件熵H(Y|X)表示在X发生的前提下,Y发生新带来的信息量。
根据上述联合熵又有\(H(Y|X) = H(X, Y) - H(X)\)

举例,温度跟穿衣组成联合概率分布 H(X,Y),两个事件加起来的信息量大于单一事件的信息量。假设 H(X)对应温度的信息量,温度和穿衣并非独立分布,所以已知温度的情况下,穿什么衣服的信息量或者说不确定性就被减少。当已知 H(X) 这个信息量的时候,H(X,Y) 剩下的信息量就是条件熵:\(H(Y|X) = H(X, Y) - H(X)\)
理解为,描述 X 和 Y 所需的信息是描述 X 自己所需的信息,加上给定 X 的条件下具体化 Y 所需的额外信息。

互信息

(Mutual Information)是衡量随机变量之间相互依赖程度的度量。假设俩随机变量X, Y,二者之间的互信息为

\[I(X;Y) = H(X) - H(X|Y) = H(Y) - H(Y|X) = H(X) + H(Y) - H(X,Y) \]

当两个随机变量相同时有最大的互信息,\(I(X;X) = H(X) - H(X|X) = H(X)\)
机器学习中,理想情况下,当互信息最大,可以认为从数据集中拟合出来的随机变量的概率分布与真实分布相同。
https://www.zhihu.com/question/304499706: 通常最大化互信息就是最大化两个随机事件的相关性,在数据集里,就是最大化两个数据集合所拟合出的概率分布的相关性。

相对熵

(relative entropy)也被称作KL散度(Kullback–Leibler divergence),是一种量化两种概率分布之间差异的方式。当我们获得了一个变量的概率分布时,一般我们会找一种近似且简单的分布来代替,相对熵就是用来度量使用一个分布来近似另一个分布时所损失的信息量。

\[D_{K L}(p||q)=\sum_{i}^{N}p(x_{i})\cdot[\log{\frac{1}{q(x_{i})}}-\log{\frac{1}{p(x_{i})}}] = \sum_{i}^{N}p(x_{i})\cdot\log{\frac{p(x_{i})}{q(x_{i})}} \]

上式就是用分布q近似真实分布p的差距,注意交叉熵并不对称,\(D_{K L}(p||q) != D_{K L}(q||p)\),因此不能作为距离度量(距离度量要满足对称性),同时\(D_{K L}(p||q) \ge 0\),仅q=p时散度为0

交叉熵

(cross entropy),也用于衡量两个分布之间的差异,

\[H_{CE}(p,q) = \sum_i^N p(x_i) \log\frac{1}{q(x_i)} = D_{K L}(p||q) + H(p) \]

显然交叉熵是相对熵的前半部分,因为p是真实分布,来自数据集,它是已知的,后半部分 \(H(p) = \sum_{i}^{N} p(x_i) \log\frac{1}{p(x_i)}\)就是一个常数,因此优化神经网络时\(D_{K L}(p||q) = H_{CE}(p,q)\),通常使用交叉熵而不是KL散度。
例如蒸馏模型的损失函数就是KL散度,因为蒸馏模型的目标分布也是一个模型,该模型针对同类别的不同样本,会给出不同的预测值(如两张猫的图片a和b,目标模型对a预测为猫的值是0.6,对b预测为猫的值是0.8),此时目标分布有变化,如猫的label不再固定为1,而是这里的0.6, 0.8,就不能再用交叉熵代替KL散度

JS散度

(Jensen-Shannon divergence),为了解决相对熵(KL散度)不对称的问题,对其进行变体。

\[D_{J S}(p||q) = 0.5\ast[D_{K L}(p||\frac{p+q}{2})+D_{K L}(q||\frac{p+q}{2})] \]

JS散度是对称的,其取值是 0 到 1 之间。如果两个分布 p, q 离得很远,完全没有重叠的时候,那么KL散度值是没有意义的,而JS散度值是一个常数。这就意味着这一点的梯度为0,网络无法学习。

EM距离

(Wasserstein Distance),WGAN那个,相比KL散度、JS散度,即便两个分布没有重叠,EM距离仍然能够反映它们的远近,具体公式推导什么的好复杂看不懂啦。

标签:frac,log,信息量,互信息,sum,散度,信息熵,entropy,随机变量
From: https://www.cnblogs.com/Stareven233/p/16832388.html

相关文章

  • 信息论与编码(二)| 自信息与信息熵
    自信息信息量如何考察或计算信源输出的消息(或者符号)的信息量?信源的信息实质:不确定性(信源输出的是消息,消息的内涵是信息。信源输出一个符号,我们认为发生一个事件)。数学上......
  • 互信息化
    在阅读文献CGMD的代码时,看到一个不理解的损失。​ 一般的损失都是两者的差异,比如预测的label和实际的label,两个梯度差,两个分类器的输出概率差等等。这里只有一个......