【机器学习】一文理清信息熵,相对熵,交叉熵

初学者在搞清楚这个三个信息论的大怪兽时,往往会晕头转向。本文将简要的对这三个概念进行理清,文章尽量通俗,有不对的地方恳请斧正。

信息熵:

香农提出信息熵主要是用来解决对信息的量化度量问题,比如说存在选项【A,B,C,D】,若每个字母都用8位Ascii码存储,则表示这个四个选项需要32位bit。 如果此时采用二进制的话,4个选项用2位bit便可表示【00,01,10,11】。于是对4个选项信息进行量化为 l o g 2 ( 4 ) = 2 {log}_2(4) =2 log2(4)=2

值得注意的是,我们在量化这个四个选项信息是隐含了一个附加条件(A,B,C,D)出现的概率相同,各为1/4。如果出现的概率各不相同,我们不一定是将其表述为2进制【00,01,10,11】(各个事件的出现概率相同),这样在信息压缩上并不是最优。在考虑信息编码的时候,如果出现概率值不同,我们会将出现概率大的进行短编码,概率小的进行长编码,这也是哈夫曼编码的思想。

那么当事件的出现概率各不相同时,我们如何衡量信息的编码量呢?此时,需要引入数学上的期望。每个事件出现的概率为 p i p_i pi,那么这个信息量可以表示为期望 ∑ i p i l o g ( 1 / p i ) = − ∑ i p i l o g ( p i ) \sum_i p_i log(1/p_i) = -\sum_i p_i log(p_i) ipilog(1/pi)=ipilog(pi)

那么可以将信息熵定义为:
E n t r o p y = − ∑ i p i l o g ( p i ) Entropy = -\sum_i p_i log(p_i) Entropy=ipilog(pi)

所谓信息熵:是对每个可能性编码所需要的期望值,延伸一下,也是对信息的量化指标。香农则将信息熵用来描述信息源的不确定度, 信息熵越大,混乱度越大。

这里再衍生一下,如果有一个硬币,往上抛,落到地上猜正反。那么假如这个硬币是正常硬币的话,则正反的概率均为1/2,此时二元信源的熵达到最大,也就是说我们不知道硬币到底是正,还是反,只能靠猜,信息的混乱度很大,信息源极不确定。

考虑一下,如果这个硬币被动了手脚的,两面都是正,则反的概率为0,代入信息熵的公式可得此时的信息熵为0,也就意味着这个信息是确定的,闭着眼也能知道这个硬币最终是正的。同时,也可以描述信息源是完全确定的。

相对熵:

相对熵也称之为Kullback-Leibler散度(KL散度),是用来衡量两个信息分布的差异性。相对熵是如何去衡量数据分布的差异性呢? K L ( P ∣ ∣ Q ) KL(P||Q) KL(PQ)指的是如果用事件P代替事件Q进行描述,那么其所获得的信息增量。

数学描述为:
K L ( P ∣ ∣ Q ) = ∑ P ( x ) l o g ( P ( x ) Q ( x ) ) = − ∑ P ( x ) l o g ( Q ( x ) P ( x ) ) KL(P||Q)=\sum P(x) log(\frac{P(x)}{Q(x)}) = -\sum P(x) log(\frac{Q(x)}{P(x)}) KL(PQ)=P(x)log(Q(x)P(x))=P(x)log(P(x)Q(x))

Note: 当P(x) = Q(x)时,KL散度为0,当两者分布差异越大时,KL散度也越大。

此处引用维基百科上的一个例子,
存在下面两个分布P,Q。P为二项分布,Q为均匀分布。
在这里插入图片描述
在这里插入图片描述
值得注意的是相对熵并不对称,KL(P||Q)不等于KL(Q||P)。
后续为了引入对称的度量,引入了JS分布,此处不细述。

交叉熵:

交叉熵往往在机器学习的分类问题中的很多
我们将相对熵的数学公式进行拆分为:

K L ( P ∣ ∣ Q ) = ∑ P ( x ) l o g ( P ( x ) Q ( x ) ) = ∑ P ( x ) l o g ( P ( x ) ) − ∑ P ( x ) l o g ( Q ( x ) ) = − H ( P ( x ) ) + C r o s s E n t r o p ( P , Q ) KL(P||Q) =\sum P(x) log(\frac{P(x)}{Q(x)}) = \sum P(x) log(P(x)) - \sum P(x) log(Q(x)) = -H(P(x)) + Cross Entrop(P,Q) KL(PQ)=P(x)log(Q(x)P(x))=P(x)log(P(x))P(x)log(Q(x))=H(P(x))+CrossEntrop(P,Q)

交叉熵的定义:
C r o s s E n t r o p ( P , Q ) = − ∑ P ( x ) l o g ( Q ( x ) ) Cross Entrop(P,Q) = -\sum P(x) log(Q(x)) CrossEntrop(P,Q)=P(x)log(Q(x))

在分类问题中,P(x)为label的one-hot,Q(x)为softmax的结果。由于label的熵不会改变,是一个常数。因此对相对熵进行最小化,也是对交叉熵进行最小化。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值