• 信息熵:编码方案完美时,最短平均编码长度
  • 交叉熵:编码方案不一定完美时,平均编码长度
  • 相对熵:不同方案之间的差异性的衡量

信息论引用了熵(entropy)的概念,熵的概念在物理中十分常见,是用来衡量系统的混沌程度的,相应的在信息科学中,熵是用来衡量不确定性的,信息熵的本质是香农信息量 $log \frac{1}{p}$ 的期望

下面我们就来讲讲这三个熵到底有什么含义

首先我们通过一个例子来引出什么是信息熵:
假设一个箱子里面有4种不同颜色的球(a,b,c,d),A 从其中拿出一个,B 来猜(B 可以向 A 提问),B希望提问的次数越少越好。

  • case1:B 不知道颜色的分布,于是先问 “是否是 a,b”,如果是再问 “是否是 a”,不是改为问 “是否是 c”,猜球的次数为:$H=\frac{1}{4}\times 2+\frac{1}{4}\times 2+\frac{1}{4}\times 2+\frac{1}{4}\times 2=2$
  • case2:B 了解到 a 的比例为 1/2,b 的比例为 1/4,c 和 d 的比例都是 1/8,于是 B 先问 a,再问 b,最后问 c,猜球期望为:$H=\frac{1}{2}\times 1+\frac{1}{4}\times 2+\frac{1}{8}\times 3+\frac{1}{8}\times 3=1.75$
  • case3:B 了解到了里面的球全是 a,那么不用猜了:$H=1\times 0=0$

    _假设上面的 B 是足够聪明的,所以他做出策略是最优的_


信息熵

通过上面我们发现:针对特定概率为 $p$ 的小球,猜球的次数为 $log_2 \frac{1}{p}$,所以整体的期望为:

这就是信息熵,case1 的信息熵为 2,case2 的信息熵为 1.75,case3 的信息熵为 0.

信息熵代表随机变量或整个系统的不确定性,熵越大,随机变量或系统的不确定性就越大
上面的熵 case1>case2>case3,在 case1 中,B 对于系统一无所知,在 case2 中,B 知道了系统的分布,但是取了哪个球并不知道,case3 中,B 对于系统完全了解了!所以2是这个系统熵的最大值


交叉熵

每个系统都会有一个真实的概率分布,称为真实分布,case1 的真实分布为 $(\frac{1}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4})$,case2 的真实分布为 $(\frac{1}{2},\frac{1}{4},\frac{1}{8},\frac{1}{8})$,而根据真实分布,我们能够找到一个最优策略,以最小的代价消除系统的不确定性,而这个代价大小就是信息熵,记住,信息熵衡量了系统的不确定性,而我们要消除这个不确定性,所要付出的 [最小努力](猜题次数、编码长度等)的大小就是信息熵。具体来讲,case1 只需要猜两次就能确定任何一个小球的颜色,case2 只需要猜测1.75次就能确定任何一个小球的颜色

回到 case2 假设现在是 C 来猜,C 的智商不高,所以仍然使用了 case1 的策略来,相当于认为小球出现的概率是一样的,即分布为 $(\frac{1}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4})$,这个分布就是非真实分布,最后的信息熵算出来又是 2 了,显然这个策略是不好的比最优策略多了 0.25,那么,当我们使用非最优策略消除系统的不确定性,所需要付出的努力的大小我们该如何去衡量呢?

这就需要引入 交叉熵,其用来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出的努力的大小

交叉熵的公式如下,其中 $p_k$ 表示真实分布,$q_k$ 表示非真实分布

上面所讲将策略 1 用于 case 2,真实分布 $p_k=(\frac{1}{2},\frac{1}{4},\frac{1}{8},\frac{1}{8})$,非真实分布 $q_k=(\frac{1}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4})$,交叉熵为 $\frac{1}{2}\times log_2 4+\frac{1}{4}\times log_2 4+\frac{1}{8}\times log_2 4+\frac{1}{8}\times log_2 4=2$ 比最优分布的 $1.75$ 大

因此,交叉熵越低,策略就越好,最低的也就是真实的信息熵了,此时 $p_k=q_k$,这也是为什么在机器学习中的分类算法中,我们总是最小化交叉熵,因为交叉熵越低,就证明由算法所产生的策略最接近最优策略,也间接证明我们算法所算出的非真实分布越接近真实分布


相对熵

我们如何衡量不同策略之间的差异呢?这里就需要用到相对熵(KL divergence),其用来衡量两个取值为正的函数或者概率分布之间的差异(可以发现相同的话每一项都是 0):

  • $p(x)$ 是真实分布
  • $q(x)$ 是近似分布

相对熵 可以写成 交叉熵信息熵 之差。。


Reference

https://www.zhihu.com/question/41252833answer/195901726