深度学习中的熵相关知识:信息量、熵、相对熵(KL散度)和交叉熵详解
深度学习中的熵相关知识:信息量、熵、相对熵(KL散度)和交叉熵详解
在深度学习和信息论中,熵相关的概念如信息量、熵、相对熵(KL散度)和交叉熵,是理解模型训练和优化的关键。本文将通过通俗易懂的语言和具体例子,帮助读者深入理解这些概念的含义及其相互关系。
信息量
通俗理解:一个事件从不确定变为确定的难度有多大。往往某件事情发生概率越低,信息量越大,从不确定变为确定的难度越大。
例如,“中国队想要在世界杯夺冠”这一事件发生概率极低,信息量非常大,想要实现即“从不确定变为确定”的难度也会非常大。
信息量公式定义:h
- 为什么有个负号?
如上所述,当某件事情发生概率越低时,代表其信息量越大,加上负号后 - 为什么用log?
具体为什么用log可以看相关资料,而至于以2为底是考虑到计算机二进制的特性
熵
通俗理解:和信息量类似,不过熵是用于衡量一个系统从不确定变为确定的难度有多大。熵的本质用一句话概括:用一个数来概括一个概率分布中的不确定性。
熵的定义式:
- 为什么需要对信息量进行加权平均?
举个例子会比较好理解:假设有两个系统,系统1中比利时和阿根廷的胜率均为50%;而在系统2中法国胜率为99%,中国仅为1%。
对于不同国家,根据信息量的公式计算得到:
- 中国队获胜的信息量高达6.6493,证明其想要获胜的话难度很大,与我们前面提到信息量的含义相符。
- 法国队获胜的信息量虽然只有0.0145,但其概率高达99%。
那么现在的问题是,我们怎么知道整个系统中的“信息量”是多少呢?
如果只是进行简单的相加:系统1中的信息量总和为2,系统2中的信息量总和为6.6584,这个结果表示系统2中的不确定性高于系统1,但系统2中的胜率悬殊如此之大,不确定性反而是很小的,此时出现了结果与事实相悖。
故衡量一个系统中的信息量并不能简单地将系统中事件信息量相加而得,还应考虑到事件发生的概率:中国队获胜的信息量虽然高达6.6439,但其概率只有1%;法国队获胜的信息量虽然只有0.0145,但其概率高达99%。
故每个队伍对其系统贡献的信息量应用公式:
此时再将系统内的各个事件的结果相加,得到系统1的熵为1,系统2的熵为0.080794,系统1的不确定性更高,符合预期。而这种将具体的值【信息量】乘以概率并全部相加起来,在数学上可以看作是期望,这就是所谓的熵。
目前,我们知道熵是对一个系统不确定性或混乱程度的描述,那我们如何比较两个模型呢?这就不得不提到相对熵【也叫KL散度】这个概念了。
相对熵【KL散度】
KL散度定义式:
- 一定是样本真实分布P在前,模型预测分布Q在后,表示Q是以P的分布为基准的
- KL散度的值恒大于等于0
- 当两个分布完全相同时,KL散度等于0
将KL散度定义公式展开:
将公式展开到最后可以发现公式的后半部分:
而公式前半部分:
易知交叉熵和P分布的熵恒大于0,且由吉布斯不等式可知交叉熵恒大于P分布的熵,故KL分布恒大于0
也因此最小化KL散度的目标可以转换为最小化交叉熵,即交叉熵自己本身就可以作为损失函数
对交叉熵求最小值等价于求最大似然估计【在王木头机器学习系列能看到相关推导】
以下对于相对熵和交叉熵更为通俗的解释:
尽管实际训练中常用交叉熵代表相对熵【KL散度】作为损失函数,但它们实际的含义是有所不同的:
- 交叉熵:其用来衡量在给定的真实分布p下,使用非真实分布q所指定的策略消除系统的不确定性所需要付出的努力的大小【可以联想GAN训练中一开始的随机噪声z就是这里的非真实分布q,一步步地向图片样本分布p逼近】
- 相对熵:=某个策略的交叉熵 - P分布的熵
结合下图可能会有助于理解: