傻子都能看懂的交叉熵解释

正文索引 [隐藏]

1. 信息与熵

”熵“,Entropy,这个名词在这里指的是香农教主创建的信息论中的”信息熵“,这里不深究信息论中那一大堆让人眼花缭乱的数学公式,但从语义上解释什么是信息、什么是熵。

信息

信息时代,信息为王,但是信息到底是个啥呢,有没有比较符合理工科直男们思维的定义嘞?有的,思考一下两条消息:

  1. 地球是个圆的
  2. 地球明天要炸了

哪句话对你的触动大?那句话的”信息量“大?显而易见的第二句,为啥,因为第一句是所谓的”废话“,即高概率事件,而第二句话是低概率事件:

  1. 地球是个圆的,P1 ≈ 1
  2. 地球明天要炸了,P2 ≈ 0

这么看来,信息似乎可以被其概率所度量,香农教主经过一系列严格数学推理,给出了信息的数学定义:

image-20200824195955590

即所谓的信息就是事件发生概率取对数的负值,观察一下,用初中知识就能发现,概率越大的事件,P 越接近 1,信息就越接近 0,反之概率越小,事件的信息量成指数型增加,非常符合我们的生活实际

熵又是个啥嘞,触类旁通一下,高中化学学反应动态平衡时,或者学物理热力学时,也有这个名词,它指的是”系统的混乱程度“,有点抽象?就是说,一个消息它有发生的概率,发生概率非常小的话,它信息量确实大,但是却接近不可能发生,系统的混乱自然也不会很逆天,所以还需要加上一个期望限制,这就得出了信息熵的数学定义:

image-20200824200007592

即,信息熵就是事件的期望与事件信息量的乘积,如果将期望近似为概率值,则:

image-20200824200022914

2. 交叉熵

知道了信息熵,再来看交叉熵(Cross-Entropy),这个玩意儿是用在神经网络中计算 Loss 的,Loss 反映了个啥?反映的是预测值和目标值的偏差程度。用熵来衡量就是预测值和目标值的混乱程度。拿啥叫个交叉熵嘞,就是说,目标值是期望发生的,而预测值一般是一大堆概率值,那么用目标值的期望乘预测值的概率就是交叉熵,举个栗子:

四分类问题,将目标分为 猫、狗、蛇、虫 四类,样本1对应的分类是 ,则它的目标向量就是 [0, 0, 1, 0],而假设神经网络算出来个预测值 [0.1, 0.1, 0.5, 0.3],那么计算其交叉熵:

image-20200824200034098

这也就是为什么我们在使用交叉熵算 Loss 的时候:

image-20200824200042403

表示概率越大,预测的准确度越接近目标值,Loss 越小。