《神经网络和深度学习》系列文章二十二:交叉熵的意义是什么?它又是怎么来的?
出处: 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)唯一确定了交叉熵的形式,以及一个整体的常数项。交叉熵不是奇迹般凭空产生的,而是我们能够以一种简单自然的方式发现的。
那交叉熵的直观意义是什么?我们又该如何理解它呢?深入地解释这个问题会扯得很远,我就不细说了。但值得一提的是,在信息论领域是有一种标准方式来解释交叉熵的。大致说来,想法就是:交叉熵是对惊讶的测度。特别地,我们的神经元尝试去计算函数
问题
我们已经详尽地讨论了当我们使用平方代价来训练的神经网络时,会产生输出神经元饱和、学习速率下降的问题。另一个会妨碍学习的因素是等式(61)中
项。因为该项的存在,当输入 接近于0时,对应的权重 会学习得很慢。解释一下,为什么我们不能通过选择一个好的代价函数来消除 项。
“哈工大SCIR”公众号
编辑部:郭江,李家琦,徐俊,李忠阳,俞霖霖
本期编辑:李家琦
长按下图并点击 “识别图中二维码”,即可关注哈尔滨工业大学社会计算与信息检索研究中心微信公共号:”哈工大SCIR” 。点击左下角“阅读原文”,即可查看原文。