一条信息的信息量大小和它的不确定性有直接的关系,信息量的度量就等于不确定性的多少。换言之,概率越小,不确定性越大,信息所包含的信息量就越大。对于一件确定的事情,其信息量就为0。
考虑一个离散的随机变量x,那么信息的量度 I ( x ) I(x) I(x)应满足以下条件:
因为两个事件是独立不相关的,因此有 p ( x , y ) = p ( x ) p ( y ) p(x,y)=p(x)p(y) p(x,y)=p(x)p(y)。
根据这些性质,我们可以很容易找到一个符合条件的函数:负对数,即:
I ( x ) = − log p ( x ) I(x)=-\log p(x) I(x)=−logp(x)
注:
如果把这个事件的所有可能性罗列出来,就可以求得该事件信息量的期望,也即信息熵:
H ( X ) = E [ I ( x ) ] = − ∑ x ∈ X p ( x ) log p ( x ) H(X)=\mathbb E[I(x)]=-\sum_{x\in X}p(x)\log p(x) H(X)=E[I(x)]=−x∈X∑p(x)logp(x)
信息熵反映了一个系统的无序化(有序化)程度,一个系统越无序,信息熵就越高。显然,随机变量的取值个数越多,状态数也就越多,信息熵就越大,混乱程度就越大。当随机分布为均匀分布时,熵最大。
将一维随机变量分布推广到多维随机变量分布,则可得联合熵 (Joint entropy) 为:
H ( X , Y ) = − ∑ x , y p ( x , y ) log p ( x , y ) = − ∑ i = 1 n ∑ j = 1 m p ( x i , y i ) log p ( x i , y i ) H(X,Y)=-\sum_{x,y}p(x,y)\log p(x,y)=-\sum_{i=1}^n\sum_{j=1}^mp(x_i,y_i)\log p(x_i,y_i) H(X,Y)=−x,y∑p(x,y)logp(x,y)=−i=1∑nj=1∑mp(xi,yi)logp(xi,yi)
条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X)表示在已知随机变量 X X X的条件下随机变量 Y Y Y的不确定性。定义为 X X X给定条件下 Y Y Y的条件概率分布的熵对 X X X的数学期望:
H ( Y ∣ X ) = ∑ x p ( x ) H ( Y ∣ X = x ) H(Y|X)=\sum_xp(x)H(Y|X=x) H(Y∣X)=∑xp(x)H(Y∣X=x)
= − ∑ x p ( x ) ∑ y p ( y ∣ x ) log p ( y ∣ x ) \qquad\qquad=-\sum_xp(x)\sum_yp(y|x)\log p(y|x) =−∑xp(x)∑yp(y∣x)logp(y∣x)
= − ∑ x , y p ( x , y ) log p ( y ∣ x ) \qquad\qquad=-\sum_{x,y}p(x,y)\log p(y|x) =−∑x,yp(x,y)logp(y∣x)
联合熵 H ( X , Y ) H(X,Y) H(X,Y) = 条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X) + 单独的熵 H ( X ) H(X) H(X)
H ( X , Y ) = − ∑ x , y p ( x , y ) log p ( x , y ) H(X,Y)=-\sum_{x,y}p(x,y)\log p(x,y) H(X,Y)=−∑x,yp(x,y)logp(x,y)
= − ∑ x , y p ( x , y ) log ( p ( y ∣ x ) p ( x ) ) \qquad\qquad\,=-\sum_{x,y}p(x,y)\log (p(y|x)p(x)) =−∑x,yp(x,y)log(p(y∣x)p(x))
= − ∑ x , y p ( x , y ) log p ( y ∣ x ) − ∑ x , y p ( x , y ) log p ( x ) \qquad\qquad\,=-\sum_{x,y}p(x,y)\log p(y|x)-\sum_{x,y}p(x,y)\log p(x) =−∑x,yp(x,y)logp(y∣x)−∑x,yp(x,y)logp(x)
= H ( Y ∣ X ) − ∑ x log p ( x ) ∑ y p ( x , y ) \qquad\qquad\,=H(Y|X)-\sum_x\log p(x)\sum_yp(x,y) =H(Y∣X)−∑xlogp(x)∑yp(x,y)
= H ( Y ∣ X ) − ∑ x p ( x ) log p ( x ) \qquad\qquad\,=H(Y|X)-\sum_xp(x)\log p(x) =H(Y∣X)−∑xp(x)logp(x)
= H ( Y ∣ X ) + H ( X ) \qquad\qquad\,=H(Y|X)+H(X) =H(Y∣X)+H(X)
理解:描述 X 和 Y 所需的信息是描述 X 自己所需的信息,加上给定 X 的条件下具体化 Y 所需的额外信息。
也称KL散度(Kullback–Leibler divergence),用来量度两个概率分布之间的差异(不相似性)。
设 p ( x ) p(x) p(x)、 q ( x ) q(x) q(x)是离散随机变量 X X X中取值的两个概率分布,则 p p p对 q q q的相对熵是:
D K L ( p ∣ ∣ q ) = ∑ x p ( x ) log p ( x ) q ( x ) = E p ( x ) log p ( x ) q ( x ) D_{KL}(p||q)=\sum_xp(x)\log \frac{p(x)}{q(x)}=E_{p(x)}\log \frac{p(x)}{q(x)} DKL(p∣∣q)=x∑p(x)logq(x)p(x)=Ep(x)logq(x)p(x)
性质:
应用:
在TRPO(Trust Region Policy Optimization, 置信域策略优化)算法中,通过限制新旧策略的KL散度,将每一次对策略的更新都限制了信任域内,从而极大地增强了训练的稳定性。
算法:
m a x i m i z e θ E s ∼ ρ θ o l d , a ∼ q [ π θ ( a ∣ s ) q ( a ∣ s ) Q θ o l d ( s , a ) ] maximize\,_\theta\;\mathbb E_{s\sim\rho_{\theta_{old}},a\sim q}[\frac{\pi_\theta(a|s)}{q(a|s)}Q_{\theta_{old}}(s,a)] maximizeθEs∼ρθold,a∼q[q(a∣s)πθ(a∣s)Qθold(s,a)]
s u b j e c t t o E s ∼ ρ θ o l d [ D K L ( π θ o l d ( ⋅ ∣ s ) ∣ ∣ π θ ( ⋅ ∣ s ) ) ] < δ subject\;to\ \mathbb E_{s\sim\rho_{\theta_{old}}}[D_{KL}(\pi_{\theta_{old}}(\cdot|s)||\pi_\theta(\cdot|s))]\lt\delta subjectto Es∼ρθold[DKL(πθold(⋅∣s)∣∣πθ(⋅∣s))]<δ
用来量度模拟分布 q ( x ) q(x) q(x)与真实分布 p ( x ) p(x) p(x)之间的差距。
我们对相对熵的公式进行变形:
D K L ( p ∣ ∣ q ) = ∑ x p ( x ) log p ( x ) q ( x ) = − ∑ x p ( x ) log q ( x ) − ( − ∑ x p ( x ) log p ( x ) ) D_{KL}(p||q)=\sum_xp(x)\log \frac{p(x)}{q(x)}=-\sum_xp(x)\log q(x)-(-\sum_xp(x)\log p(x)) DKL(p∣∣q)=∑xp(x)logq(x)p(x)=−∑xp(x)logq(x)−(−∑xp(x)logp(x))
对于真实分布 p ( x ) p(x) p(x)来说,后面那项,也就是分布的熵 − ∑ x p ( x ) log p ( x ) -\sum_xp(x)\log p(x) −∑xp(x)logp(x)为一常数(代表训练数据的分布是固定不变的),可不关注。而表达式剩下的第一项就是交叉熵,即:
H ( p ∣ ∣ q ) = − ∑ x p ( x ) log q ( x ) H(p||q)=-\sum_xp(x)\log q(x) H(p∣∣q)=−x∑p(x)logq(x)
在分类问题中,我们希望模型预测出的模拟分布 q ( x ) q(x) q(x)与真实分布 p ( x ) p(x) p(x)的差距尽可能小,所以交叉熵常被用作分类问题的损失函数(loss function),我们minimize交叉熵的时候,其实就是在让模拟分布更靠近真实分布。
熵的本质的另一种理解:最短平均编码长度(即当编码方式完美时,编码长度的期望值)
编码方式:哈夫曼编码。即:使用更短的编码来描述更可能的事件,使用更长的编码来描述不太可能的事件。
举例:考虑某随机变量 x x x,有四种等可能的状态 { a , b , c , d } \{a, b, c, d\} { a,b,c,d},为了把 x x x的值传给别人,我们需要对其状态进行编码,我们将四种状态编码为00,01,10,11,无论 x x x在哪个状态下,编码都需要2 bits长度。
其信息熵(由于计算机为二进制,故在信息论中 log \log log的底常为2)为:
H ( X ) = − ∑ x p ( x ) log p ( x ) = − 4 ∗ 1 4 log 2 1 4 = 2 b i t s H(X)=-\sum_xp(x)\log p(x)=-4*\frac{1}{4}\log_2\frac{1}{4}=2\,bits H(X)=−x∑p(x)logp(x)=−4∗41log241=2bits
当 x x x的分布发生变化,四种可能的状态概率变为 { 1 2 , 1 4 , 1 8 , 1 8 } \{\frac{1}{2},\frac{1}{4},\frac{1}{8},\frac{1}{8}\} { 21,41,81,81}时,我们用更短的编码描述概率更大的状态,可用哈夫曼编码为0,10,110,111
那么平均编码长度,也即信息熵为:
H ( X ) = − ∑ x p ( x ) log p ( x ) = − ( 1 2 log 2 1 2 + 1 4 log 2 1 4 + 2 ∗ 1 8 log 2 1 8 ) = 1.75 b i t s H(X)=-\sum_xp(x)\log p(x)=-(\frac{1}{2}\log_2\frac{1}{2}+\frac{1}{4}\log_2\frac{1}{4}+2*\frac{1}{8}\log_2\frac{1}{8})=1.75\,bits H(X)=−x∑p(x)logp(x)=−(21log221+41log241+2∗81log281)=1.75bits
也印证了之前当随机分布为均匀分布时,熵最大的结论。
这样的理解也可以推广到相对熵和交叉熵上去:
相对熵含义:用模型分布编码真实分布时,所额外消耗的编码长度。
交叉熵含义:使用了模型分布编码真实分布时,得到的平均编码长度
从这里也可以得到 信息熵+相对熵=交叉熵 的结论。
https://www.cnblogs.com/kyrieng/p/8694705.html
https://www.zhihu.com/question/41252833