学习笔记之信息量、熵、KL散度、交叉熵的一些介绍

文章目录

  • 信息量
  • KL散度(相对熵)
  • 交叉熵
  • 参考

信息量

以前我也一直只是知道信息量的计算公式,也有想过为什么会是这样,但是因为要学的东西太多了,就没怎么深究,直到看了“交叉熵”如何做损失函数?打包理解“信息量”、“比特”、“熵”、“KL散度”、“交叉熵”王木头的视频,才有了比较值观且深刻的理解了。

接下来看这么一幅图:
学习笔记之信息量、熵、KL散度、交叉熵的一些介绍_第1张图片
如何衡量信息量呢

我们看图可以发现,阿根廷进入决赛+阿根廷赢了决赛 = 阿根廷夺冠
这二者再说一件事情,理应信息量一样大,这应该比较好理解。

那么我们就能够推出信息量的定义了
学习笔记之信息量、熵、KL散度、交叉熵的一些介绍_第2张图片
因为需要满足上面的式子,我们容易看出,式子里得带着log
学习笔记之信息量、熵、KL散度、交叉熵的一些介绍_第3张图片
这里以2为底,可以用比特来作为计算出的信息量的单位。
这里取个-因为概率都是<1的,计算出来的都是负数,因为原来概率小的事情发生了,给我们直观的感受应该是信息量越大,因此取个-来迎合我们的感受。

信息量衡量的是一个事件从原来的不确定到确定,他的难度有多大,信息量越大,说明难度就越高。

前面说到信息量是衡量一个事件从不确定到确定的花费,那么熵就是高一级,衡量一个系统从不确定到确定的花费,就称之为熵了。
下面再看这么一幅图:
学习笔记之信息量、熵、KL散度、交叉熵的一些介绍_第4张图片
左右两边分别看成一个系统。
我们可以发现左边系统的熵=1
右边系统的熵=0.08左右
这说明左边系统从不确定到确定的难度远高于右边的系统。
这样符合我们直观的感受,两个势均力敌的人区分胜负,在没看到结局之前,谁也不敢妄下定论,说明从不确定到确定的难度会很大。

那么规范一下,我们系统熵的定义可以写成如下形式:
学习笔记之信息量、熵、KL散度、交叉熵的一些介绍_第5张图片
这样我们便得到了信息熵的定义,数学建模里客观评价中的熵权法中的信息熵的方式就是基于此,因为是根据数据中信息确定性程度(信息量包含的大小)来衡量权重。

KL散度(相对熵)

学习笔记之信息量、熵、KL散度、交叉熵的一些介绍_第6张图片
其中
在这里插入图片描述
分别代表两个概率系统的信息量。

这里的KL散度式子是以P为基准去考虑Q变成P的分布相差有多少信息量。

在这里插入图片描述
这一部分很容易看出,是P系统的信息熵。
在这里插入图片描述
这一部分就是交叉熵了,可以用H(P,Q)来表达。

当KL散度=0时,说明两个概率分布情况时一样的。

根据:
学习笔记之信息量、熵、KL散度、交叉熵的一些介绍_第7张图片
可以说明,这里KL散度一定是大于等于0的

因此,如果我希望Q和P越接近,就是需要寻找交叉熵的最小值就行了,因为后面的式子是恒定的(因为以P为基准了,可以认为P相当于真实值,那么我需要的就是调整Q去接近P)。

对于连续性随机变量也可以定义KL散度:
学习笔记之信息量、熵、KL散度、交叉熵的一些介绍_第8张图片

交叉熵

通过KL散度的推导,我们发现,当以P为基准的时候,计算Q拟合P分布的差距其实就是考虑交叉熵最小即可。
那么放到神经网络中,当P为真实样本标签,Q为预测值的时候,我们就可以通过交叉熵来计算损失,从而进行反向传播,训练模型,从而使得预测值的Q与P的分布越来越近,从而达到比较好的一个效果。

学习笔记之信息量、熵、KL散度、交叉熵的一些介绍_第9张图片
将KL散度推出交叉熵进行展开,我们可以发现就比较熟悉了。
假设xi表示预测值,yi表示预测值xi正确的概率
那么1-xi表示预测出来不是xi,1-yi表示预测出来不是xi的概率

这也就是我们分类问题中经常使用的交叉熵损失函数了。

参考

KL散度超详细讲解
“交叉熵”如何做损失函数?打包理解“信息量”、“比特”、“熵”、“KL散度”、“交叉熵”

你可能感兴趣的:(机器学习,学习,机器学习,人工智能)