信息论随笔2: 交叉熵、相对熵

接上文:信息论随笔1

参考以下:

如何通俗的解释交叉熵与相对熵; https://www.zhihu.com/question/41252833/answer/108777563

https://blog.csdn.net/qq547276542/article/details/78370245

交叉熵

一个变量X,可能有多种取值,每个取值结果对应一个事件,对于一个随机事件x,其真实概率分布为p(x),从数据中得到的概率分布为q(x),则交叉熵为:

 ( H(p, q) = -sumlimits_{x} p(x)log_{2}q(x) )

交叉熵反映的是概率分布q所估计的变量X的信息量;

相对的,真实分布p所表达的变量X的真实信息量是信息熵H(X),但这里我们在讨论的是对同一个变量X的p、q两种概率分布所带来的信息量差异,因而只将p、q当做变量,信息熵用H(p)表示;

相对熵

根据Gibbs' inequality可知,( H(p, q) >= H(p) ),当q为真实分布p时取等号;

由概率分布q估计所多出来的冗余信息量,即为相对熵:

( D(p||q) = H(p,q) - H(p) = sumlimits_{x} p(x)log_{2}frac{p(x)}{q(x)} )

相对熵又称KL散度;

相对熵也用来衡量相关性,但和变量的互信息不同,它用来衡量两个取值为正数的函数的相似性。在这里,它描述q分布与p分布的相似性;

因为( H(p,q)=H(p)+D_{KL}(p||q) ),真实分布的信息熵H(p)固定不变,因而交叉熵可以用做机器学习中的损失函数;

例子:

含有4个字母(A,B,C,D)的数据集中,真实分布p=(1/2, 1/2, 0, 0),即A和B出现的概率均为1/2,C和D出现的概率都为0。计算H(p)为1,即只需要1位编码即可识别A和B。如果使用分布Q=(1/4, 1/4, 1/4, 1/4)来编码则得到H(p,q)=2,即需要2位编码来识别A和B(当然还有C和D,尽管C和D并不会出现,因为真实分布p中C和D出现的概率为0);
多出来的这1位编码就是分布Q估计所引入的冗余信息量即相对熵;
 
原文地址:https://www.cnblogs.com/ZisZ/p/9083914.html