分类: 大数据
2017-04-21 16:36:54
信息熵(又叫香农熵)反映了一个系统的无序化(有序化)程度,一个系统越有序,信息熵就越低,反之就越高。
如果一个随机变量 X 的可能取值为 X={x1,x2,…,xn},对应的概率为 p(X=xi),则随机变量 X 的信息熵为:
所谓相对,自然在两个随机变量之间。又称互熵,Kullback–Leibler divergence(K-L 散度)等。设 p(x) 和 q(x) 是 X 取值的两个概率分布,则 p 对 q的相对熵为:
典型情况下,P 表示数据的真实分布,Q 表示数据的理论分布,模型分布,或 P 的近似分布。
相对熵的性质,相对熵(KL散度)有两个主要的性质。如下
(2)相对熵的值为非负值,即
在证明之前,需要认识一个重要的不等式,叫做吉布斯不等式。内容如下
这里提供一个离散型 KL 散度的简单实现:
from functools import reduce
1)信息熵:编码方案完美时,最短平均编码长度的是多少。
2)交叉熵:编码方案不一定完美时(由于对概率分布的估计不一定正确),平均编码长度的是多少。
平均编码长度 = 最短平均编码长度 + 一个增量
3)相对熵:编码方案不一定完美时,平均编码长度相对于最小值的增加值。(即上面那个增量)
-------------------------------------------------------------------------------------------------
零、信息熵
1、熵的本质是香农信息量 log(1/p) 的期望;(参考了第一个答案)
H(p) = E[ log(1/p) ] = ∑ p_i * log(1/p_i),是一个期望的计算,也是记录随机事件结果的平均编码长度;
为什么信息量 是 log(1/p) 呢?
因为:一个事件结果的出现概率越低,对其编码的bit长度就越长。
以期在整个随机事件的无数次重复试验中,用最少的 bit 去记录整个实验历史。
即无法压缩的表达,代表了真正的信息量。
2、熵的本质的另一种解释:最短平均编码长度;
【本质含义:编码方案完美时,最短平均编码长度的是多少】
3、交叉熵,则可以这样理解:使用了“估算”的编码后,得到的平均编码长度(可能不是最短的)
p是真实概率分布,q是你以为的概率分布(可能不一致);
你以 q 去编码,编码方案 log(1/q_i)可能不是最优的;
于是,平均编码长度 = ∑ p_i *log(1/q_i),就是交叉熵;
只有在估算的分布 q 完全正确时,平均编码长度才是最短的,交叉熵 = 熵
=Entropy(P) + D_KL(P||Q)
2、在 ML 中等效于相对熵
【作用:用来评估,当前训练得到的概率分布,与真实分布有多么大的差异】
因为与相对熵只差一个 分布 P 的信息熵,
若 P 是固定的分布,与训练无关;
Q 是估计的分布,应尽量等于 P。
二者一致时,交叉熵就等于 P 的熵
1)用来衡量2个取值为正数的函数的相似性
2)2个完全相同的函数,相对熵为0;差异越大,相对熵越大;
3)概率分布函数,或 概率密度函数,若函数值均大于0,相对熵可以度量两个随机分布的差异性;
4)相对熵不对称,没有交换律