目录标题
传送门:
信息熵在tensorflow2.*中实现参考博文
熵(Entropy)的理论知识
定义
在信息论中,熵被定义为随机变量的平均不确定度的度量。也是平均意义上描述随机变量所需的信息量的度量。
设 X X X是一个离散型随机变量,其字母表(即概率论中的取值空间)为 χ \chi χ。概率密度函数 p ( x ) = P r ( X = x ) , x ∈ χ p(x)=Pr(X=x), x\in\chi p(x)=Pr(X=x),x∈χ, 则一个离散随机变量 X X X的熵 H ( X ) H(X) H(X)定义为
H ( X ) = − ∑ p ( x ) log 2 p ( x ) H(X)=-\sum p(x)\log_{2} p(x) H(X)=−∑p(x)log2p(x)
表达式中对数函数以2为底,熵的量纲为比特。在平均意义下,熵是为了描述随机变量 X X X所需的比特数。
构建这个表达式的优点:对于0-1分布或者伯努利分布而言,p=0.5时,熵值最大,恰好等于1比特。即对事件发生不确定度最大时,恰好熵值最大。
数学期望表达式
如果 X ∼ g ( x ) X \sim g(x) X∼g(x),随机变量 g ( x ) g(x) g(x)的期望值可记作:
E p g ( x ) = ∑ x ∈ χ g ( x ) p ( x ) E_{p} g(x) =\sum_{x\in\chi}g(x)p(x) Epg(x)=x∈χ∑g(x)p(x)
当 g ( x ) = l o g 1 p ( X ) g(x)=log \frac{1}{p(X)} g(x)=logp(X)1时, H ( X ) H(X) H(X)可以表示位随机变量 l o g 1 p ( X ) log \frac{1}{p(X)} logp(X)1的期望值,即
H ( X ) = E p l o g 1 p ( X ) H(X)=E_{p} log \frac{1}{p(X)} H(X)=Eplogp(X)1
例子
1. 均匀分布
一个服从均匀分布且有32种可能结果的随机变量,需要用多长的字符串描述这个随机变量?
首先易得使用二进制需要 2 5 = 32 2^5=32 25=32,即5字节的长度。
由熵公式可得, H ( X ) = − ∑ x = 1 32 p ( x ) l o g ( p x ) = − ∑ x = 1 32 1 32 l o g 1 32 = 5 H(X)=-\sum_{x=1}^{32} p(x)log(px)=-\sum_{x=1}^{32} \frac{1}{32}log\frac{1}{32}=5 H(X)=−∑x=132p(x)log(px)=−∑x=132321log321=5比特,恰好等于描述32的字节长度
2. 非均匀分布
书中举了一个实际的例子,假定一个有8匹马的比赛,8匹马的获胜概率分别位 ( 1 4 , 1 8 , 1 16 , 1 32 , 1 64 , 1 64 , 1 64 , 1 64 ) (\frac{1}{4}, \frac{1}{8}, \frac{1}{16}, \frac{1}{32}, \frac{1}{64}, \frac{1}{64}, \frac{1}{64},\frac{1}{64}) (41,81,161,321,641,641,641,641)。现在需要在马赛比赛结束的第一时刻把消息传播出去,并使用传播所需的信息最小。
有两种策略:
- 对所有参赛的马按照
相同策略
进行编码
此时8匹马需要使用 2 3 = 8 2^3=8 23=8,即使用常规的二进制编码方式从000到111进行编码。因此,对任何一匹马都选哟3字节长度。 可能性较大
的马使用较短
的编码
这样对应8匹马分别使用:0,10,110,1110, 111100,111101,111110,111111的一组二元字符串进行表示的话。对每一匹马的编码长度乘以对应概率值求和,刚好等于2,小于方法一中的3字节长度。
- 策略一中为什么不使用一位和两位的字符?
同时,由求熵公式可得
H ( X ) = − 1 2 l o g 1 2 − 1 4 l o g 1 4 − 1 8 l o g 1 8 − 1 16 l o g 1 16 − 1 32 l o g 1 32 − 1 64 l o g 1 64 − 1 64 l o g 1 64 − 1 64 l o g 1 64 − 1 64 l o g 1 64 = 2 H(X)=- \frac{1}{2}log\frac{1}{2}- \frac{1}{4}log\frac{1}{4}- \frac{1}{8}log\frac{1}{8}- \frac{1}{16}log\frac{1}{16}- \frac{1}{32}log\frac{1}{32}- \\\frac{1}{64}log\frac{1}{64}- \frac{1}{64}log\frac{1}{64}- \frac{1}{64}log\frac{1}{64}- \frac{1}{64}log\frac{1}{64}=2 H(X)=−21