查看原文
其他

《神经网络和深度学习》系列文章二十二:交叉熵的意义是什么?它又是怎么来的?

哈工大SCIR 2021-02-05

出处: Michael Nielsen的《Neural Network and Deep Learning》,点击末尾“阅读原文”即可查看英文原文。

本节译者:哈工大SCIR本科生 袁建华

校对:哈工大SCIR硕士生 徐梓翔

声明:我们将在每周四连载该书的中文翻译,如需转载请联系wechat_editors[at]ir.hit.edu.cn,未经授权不得转载。


  • 使用神经网络识别手写数字

  • 反向传播算法是如何工作的

  • 改进神经网络的学习方法

    • 改进神经网络的学习方式

    • 交叉熵损失函数

    • 用交叉熵解决手写数字识别问题

    • 交叉熵意味着什么?它从哪里来?

    • Softmax

    • 过拟合和正则化

    • 正则化

    • 为什么正则化能够降低过拟合?

    • 其他正则化技术

    • 参数初始化

    • 重温手写数字识别:代码

    • 如何选择神经网络的超参数

    • 其他技术

  • 神经网络能够计算任意函数的视觉证明

  • 为什么深度神经网络的训练是困难的

  • 深度学习

我们之前对交叉熵的讨论集中在代数分析和实际实现。这些工作看起来是足够了,但也留下一些待回答的更宽泛的概念问题,比如:交叉熵的意义是什么?有没有直观方式去思考交叉熵?还有,我们怎么才能在一开始的时候就想到交叉熵?

我们从最后一个问题入手:什么会促使我们在第一时间想到交叉熵?假设我们发现了之前描述过的学习减缓问题,并且明白根源是公式(55)和公式(56)中的项。在仔细观察了这两个公式之后,我们可能会猜想——是否可以通过选择一个代价函数使得项消失。那样的话,一个单一训练样本的代价就会满足:

(71)

(72)

如果我们能选择某个代价函数使得这个等式成立,那么它们将会直接使得如下直觉成立:一开始的错误越大,神经元学习得越快。同时它们也消除了学习减缓的问题。实际上,如果我们从这些等式着手,凭借我们的数学嗅觉,就能够推导出交叉熵的公式。注意由链式法则,我们有:

(73)

运用最后一个等式变成:
(74)

和等式(72)对比,我们得到:
(75)

将这个表达式对求积分有:
(76)

常数部分为某个值。这是单个训练样本对代价的贡献。想得到完整的代价函数,我们必须在所有样本上平均一下,得到:
(77)

其中,常数部分是每个训练样本各自常数的平均值。因而我们可以看出,公式(71)和(72)唯一确定了交叉熵的形式,以及一个整体的常数项。交叉熵不是奇迹般凭空产生的,而是我们能够以一种简单自然的方式发现的。

那交叉熵的直观意义是什么?我们又该如何理解它呢?深入地解释这个问题会扯得很远,我就不细说了。但值得一提的是,在信息论领域是有一种标准方式来解释交叉熵的。大致说来,想法就是:交叉熵是对惊讶的测度。特别地,我们的神经元尝试去计算函数。但是,取而代之的是,它计算函数。假设我们把当作时神经元估计的概率,的正确值为时估计的概率。然后,交叉熵衡量的是我们在了解的真实值时的平均「惊讶」程度。当输出是我们期望的值,我们得到低程度的惊讶;当输出不是我们期望的,我们得到高程度的惊讶。当然,我还没准确说明「惊讶」是什么意思,所以这个措辞听起来很空洞。但事实上是有一种精确的信息理论方法来阐述惊讶所表达的意思的。不幸的是,我并不知晓网络上是否能够找到有关该主题的出色、简短、内自含的讨论。但是如果你想深究下去,维基百科上有一个能让你正确入门的。细节部分可通过研读有关Kraft不等式的材料来补充,这些材料在所写的有关信息论的书籍的第五章中可以找到。

问题

  • 我们已经详尽地讨论了当我们使用平方代价来训练的神经网络时,会产生输出神经元饱和、学习速率下降的问题。另一个会妨碍学习的因素是等式(61)中项。因为该项的存在,当输入接近于0时,对应的权重会学习得很慢。解释一下,为什么我们不能通过选择一个好的代价函数来消除项。


  • “哈工大SCIR”公众号

  • 编辑部:郭江,李家琦,徐俊,李忠阳,俞霖霖

  • 本期编辑:李家琦

长按下图并点击 “识别图中二维码”,即可关注哈尔滨工业大学社会计算与信息检索研究中心微信公共号:”哈工大SCIR” 。点击左下角“阅读原文”,即可查看原文。



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存