初学者在搞清楚这个三个信息论的大怪兽时,往往会晕头转向。本文将简要的对这三个概念进行理清,文章尽量通俗,有不对的地方恳请斧正。
信息熵:
香农提出信息熵主要是用来解决对信息的量化度量问题,比如说存在选项【A,B,C,D】,若每个字母都用8位Ascii码存储,则表示这个四个选项需要32位bit。 如果此时采用二进制的话,4个选项用2位bit便可表示【00,01,10,11】。于是对4个选项信息进行量化为。
值得注意的是,我们在量化这个四个选项信息是隐含了一个附加条件(A,B,C,D)出现的概率相同,各为1/4。如果出现的概率各不相同,我们不一定是将其表述为2进制【00,01,10,11】(各个事件的出现概率相同),这样在信息压缩上并不是最优。在考虑信息编码的时候,如果出现概率值不同,我们会将出现概率大的进行短编码,概率小的进行长编码,这也是哈夫曼编码的思想。
那么当事件的出现概率各不相同时,我们如何衡量信息的编码量呢?此时,需要引入数学上的期望。每个事件出现的概率为,那么这个信息量可以表示为期望
那么可以将信息熵定义为:
所谓信息熵:是对每个可能性编码所需要的期望值,延伸一下,也是对信息的量化指标。香农则将信息熵用来描述信息源的不确定度, 信息熵越大,混乱度越大。
这里再衍生一下,如果有一个硬币,往上抛,落到地上猜正反。那么假如这个硬币是正常硬币的话,则正反的概率均为1/2,此时二元信源的熵达到最大,也就是说我们不知道硬币到底是正,还是反,只能靠猜,信息的混乱度很大,信息源极不确定。
考虑一下,如果这个硬币被动了手脚的,两面都是正,则反的概率为0,代入信息熵的公式可得此时的信息熵为0,也就意味着这个信息是确定的,闭着眼也能知道这个硬币最终是正的。同时,也可以描述信息源是完全确定的。
相对熵:
相对熵也称之为Kullback-Leibler散度(KL散度),是用来衡量两个信息分布的差异性。相对熵是如何去衡量数据分布的差异性呢?指的是如果用事件P代替事件Q进行描述,那么其所获得的信息增量。
数学描述为:
Note: 当P(x) = Q(x)时,KL散度为0,当两者分布差异越大时,KL散度也越大。
此处引用维基百科上的一个例子,
存在下面两个分布P,Q。P为二项分布,Q为均匀分布。
值得注意的是相对熵并不对称,KL(P||Q)不等于KL(Q||P)。
后续为了引入对称的度量,引入了JS分布,此处不细述。
交叉熵:
交叉熵往往在机器学习的分类问题中的很多
我们将相对熵的数学公式进行拆分为:
交叉熵的定义:
在分类问题中,P(x)为label的one-hot,Q(x)为softmax的结果。由于label的熵不会改变,是一个常数。因此对相对熵进行最小化,也是对交叉熵进行最小化。