1. 定义:

H(P) = p1*log(1/p1)+...+pn*log(1/pn)

2. 意义:

熵H(P)表示对来自P的随机变量进行编码所需的最小bit数。(当然是理想状态)

举例:

p1=0.5, p2=0.5      H(P) = 1  1bit可以区别两类

p1=0.25, p2=0.25,p3=0.25,p4=0.25      H(P) = 2  2个bits可以区别4类

深入一点:

p1=p2=p3=1/3    H(P)=1.584936    

虽然实际上区别3类需要2个bits,这里可以理解为:1.58向上取整正好为2。

又前进一点:

p1=1/9, p2=1/9, p3=7/9  H(P)<1.0

虽然实际上还是需要2bits,向上取整也是1,这里可以理解为:没有充分利用每种编码方式的最大表示能力,这儿 00,01,10可以表示3类且每一类并没有充分利用,11的利用率为0。

3. 熵的值的分布情况

当每类的概率相等时,信息熵取到最大,表示值取到哪类的不确定性最大;

当每类的概率差异越大时,信息熵变小,表示值取到某一类已经更加确定了。

4.交叉熵

定义:

H(P,Q) = p1*log(1/q1)+...+pn*log(1/qn)

意义:

H(P,Q)表示使用基于Q的编码对来自P的随机变量进行编码所需的最小bit数。(当然是理想状态)

表征两个概率向量的距离可以使用交叉熵。

举例:

p1=0.25, p2=0.75; q1=0.75, q2=0.25  H(P,Q)=1.603759

p1=1/3, p2=2/3; q1=0.787304, q2=0.212696  H(P,Q)=1.603759

p1=1/3, p2=2/3; q1=0.0385291, q2=0.9614709  H(P,Q)=1.603759 

4.相对熵(KL散度)

定义:

KL(P||Q)=H(P,Q)-H(P)

意义:

使用基于Q的编码对来自P的变量进行编码所需的“额外”bits数。

posted on 2016-11-02 16:17  xiaojyan  阅读(402)  评论(0)    收藏  举报