作者:维吉特伯
链接:https://www.zhihu.com/question/49812013/answer/148825073
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

简单地说,根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都小于1的话( ),那么即使这个结果是0.99,在经过足够多层传播之后,误差对输入层的偏导会趋于0( )。下面是数学推导推导。

假设网络输出层中的第 个神经元输出为,而要学习的目标为 。这里的 表示时序,与输入无关,可以理解为网络的第 层。

<img src="https://pic2.zhimg.com/50/v2-2fae1a385c8dcada16e17799fa175711_hd.png" data-rawwidth="560" data-rawheight="397" class="origin_image zh-lightbox-thumb" width="560" data-original="https://pic2.zhimg.com/v2-2fae1a385c8dcada16e17799fa175711_r.png">

若采用平方误差作为损失函数,第 个输出神经元对应的损失为

将损失 对输出求偏导

根据链式法则,我们知道,第 层的梯度可以根据第 层的梯度求出来

这里用 表示第 层的第 个神经元, 表示第 层的第 个神经元。

进一步,第 层的梯度可以由第 层的梯度计算出来

这实际上是一个递归嵌套的式子,如果我们对 做进一步展开,可以得到式子

最终,可以一直展开到第 层。

把所有的加法都移到最外层,可以得到

表示的是第 层中神经元的下标(即第 层第 个神经元), 表示第 层的下标。 对应输出层, 对应第 层。实际上展开式就是从网络的第 层到 层,每一层都取出一个神经元来进行排列组合的结果。这个式子并不准确,因为 时实际是损失 对输出层的偏导,即

并没有应用权重,把它修正一下

这样,我们就得到了第 层和第 层的梯度之间的关系

在上面的式子中,由于加法项正负号之间可能互相抵消。因此,比值的量级主要受最后的乘法项影响。如果对于所有的

则梯度会随着反向传播层数的增加而呈指数增长,导致梯度爆炸。

如果对于所有的

则在经过多层的传播后,梯度会趋向于0,导致梯度消失。

LSTM就是为了解决以上两个问题提出的方法之一,它强制令 。 LSTM如何来避免梯度弥撒和梯度爆炸? - 知乎

有兴趣可以参考Long Short Term Memory 一文 。上面的推导过程大体上也参考自这篇论文。

Reference:

Graves, Alex. Long Short-Term Memory. Supervised Sequence Labelling with Recurrent Neural Networks. Springer Berlin Heidelberg, 2012:1735-1780.

转载于:https://www.cnblogs.com/DjangoBlog/p/7699592.html

bp算法中为什么会产生梯度消失?相关推荐

  1. 反向传播算法推导、激活函数、梯度消失与爆炸

    目录 反向传播算法 定义 推导过程 激活函数 定义 性质 常用的激活函数 Sigmoid Tanh ReLU softmax 梯度消失与梯度爆炸 起因 出现的原因 表现 解决方案 参考文档 反向传播算 ...

  2. 深度学习中的激活函数与梯度消失

    转载请注明出处:http://www.cnblogs.com/willnote/p/6912798.html 前言 深度学习的基本原理是基于人工神经网络,信号从一个神经元进入,经过非线性的激活函数,传 ...

  3. 优化算法中的鞍点与梯度下降

    摘要:本文将讨论寻找凸路径( convex path )时可能会遇到的不同类型的临界点( critical points),特别是基于梯度下降的简单启发式学习方法,在很多情形下会使你在多项式时间内陷入 ...

  4. 【算法】梯度消失与梯度爆炸

    概念 梯度不稳定 在层数比较多的神经网络模型的训练过程中会出现梯度不稳定的问题. 损失函数计算的误差通过梯度反向传播的方式,指导深度网络权值的更新优化.因为神经网络的反向传播算法是从输出层到输入层的逐 ...

  5. 面试真题总结:Faster Rcnn,目标检测,卷积,梯度消失,Adam算法

    目标检测可以分为两大类,分别是什么,他们的优缺点是什么呢? 答案:目标检测算法分为单阶段和双阶段两大类.单阶段目标验测算法(one-stage),代表算法有 yolo 系列,SSD 系列:直接对图像进 ...

  6. 今天开始学Pattern Recognition and Machine Learning (PRML),章节5.2-5.3,Neural Networks神经网络训练(BP算法)

    这一篇是整个第五章的精华了,会重点介绍一下Neural Networks的训练方法--反向传播算法(backpropagation,BP),这个算法提出到现在近30年时间都没什么变化,可谓极其经典.也 ...

  7. ztree在刷新时第一个父节点消失_从反向传播推导到梯度消失and爆炸的原因及解决方案(从DNN到RNN,内附详细反向传播公式推导)...

    引言:参加了一家公司的面试和另一家公司的笔试,都问到了这个题!看来很有必要好好准备一下,自己动手推了公式,果然理解更深入了!持续准备面试中... 一. 概述: 想要真正了解梯度爆炸和消失问题,必须手推 ...

  8. 梯度消失、梯度爆炸及其解决方法

    前言 本文主要深入介绍深度学习中的梯度消失和梯度爆炸的问题以及解决方案.本文分为三部分,第一部分主要直观的介绍深度学习中为什么使用梯度更新,第二部分主要介绍深度学习中梯度消失及爆炸的原因,第三部分对提 ...

  9. 梯度消失和梯度爆炸情况详解

    前言 本文主要深入介绍深度学习中的梯度消失和梯度爆炸的问题以及解决方案.本文分为三部分,第一部分主要直观的介绍深度学习中为什么使用梯度更新,第二部分主要介绍深度学习中梯度消失及爆炸的原因,第三部分对提 ...

  10. 网络退化梯度消失梯度爆炸

    ** 网络退化.梯度消失.梯度爆炸 ** 网络退化:在增加网络层数的过程中,training accuracy 逐渐趋于饱和,继续增加层数,training accuracy 就会出现下降的现象,而这 ...

最新文章

  1. C++函数的一些特性
  2. MyBatis-06 MyBatis XML方式之多个接口参数用法
  3. AI到底有多吃香?推荐一个斯坦福、CMU、清北学生都在上的AI课
  4. 用java连接Excel和SQLite3,实现从excel文件读取数据并将其存入SQLite3数据库中
  5. mysql查询新建查询报错_mysql开启慢查询报错:
  6. 一个简单的Ajax实例
  7. 点赞!刘强东:无论京东员工遭遇何种不幸,将负责其子女费用到22岁
  8. java系列4:数组的默认值
  9. shape中的ring标签的使用方法
  10. 计算机考研英语资料推荐,2016考研计算机专业备考资料推荐
  11. 五线谱音名和组别对照表_五线谱简谱对照表
  12. python自动下载小说
  13. JS Event Propagation (bubbling and capture)
  14. Chrome浏览器出现无法访问此网站/无法显示此网页的错误,怎么解决?
  15. anaconda安装包
  16. 1.1初步了解和认识大数据
  17. 【ALM】POLARION ALM之需求管理解决方案介绍
  18. 关于辞职创业的思考(完整)
  19. 太吾绘卷加载卡54_太吾绘卷保存卡死应对方案_无法保存解决方法一览_可可网...
  20. 累加一到50python_numpy累加方法介绍

热门文章

  1. Antlr中文文档初稿5(《ANTLR记号流》)
  2. 苹果mac视觉效果和动态图形设计软件:After Effects 2022 (ae 2022)
  3. 如何在 Mac 上使用剪贴板?
  4. Mac 麦克风不工作?6 种修复方法
  5. 3D渲染和动画制作KeyShot Pro for mac
  6. Mac电脑的连接服务器功能如何使用?
  7. 聊聊Elasticsearch RestClient的NodeSelector
  8. openSUSE Tumbleweed 支持 Linux Kernel 4.20
  9. ubuntu如何更改crontab的默认编辑器
  10. 今天我离开了工作四年的大宇