什么导致了消失的梯度问题?也就是在深度神经网络中的所谓的梯度不稳定性

为了弄清楚为何会出现消失的梯度,来看看一个极简单的深度神经网络:每一层都只有一个单一的神经元。下图就是有三层隐藏层的神经网络:

简单的深度神经网络

这里, 是权重,而 是偏差,C 则是某个代价函数。回顾一下,从第 j 个神经元的输出,其中 是通常的 sigmoid 函数,而 是神经元的带权输入。我已经在最后表示出了代价函数 C 来强调代价是网络输出 a_4 的函数:如果实际输出越接近目标输出,那么代价会变低;相反则会变高。
现在我们要来研究一下关联于第一个隐藏神经元梯度 。我们将会计算出 的表达式,通过研究表达式来理解消失的梯度发生的原因。
开始就简单地给出的表达式。初看起来有点复杂,但是其结构是相当简单的,我一会儿会解释。下图给出了具体的表达式:

表达式结构如下:对每个神经元有一个 项;对每个权重有一个项;还有一个 项,表示最后的代价函数。注意,我已经将表达式中的每个项置于了对应的位置。所以网络本身就是表达式的解读。
你可以直接认可这个表达式,直接跳到该表达式如何关联于小时的梯度问题的。这对理解没有影响,因为实际上上面的表达式只是前面对于BP 的讨论的特例。但是也包含了一个表达式正确的解释,所以去看看那个解释也是很有趣的(也可能更有启发性吧)。
假设我们对偏差 进行了微小的调整 。这会导致网络中剩下的元素一系列的变化。首先会对第一个隐藏元输出产生一个 的变化。这样就会导致第二个神经元的带权输入产生 的变化。从第二个神经元输出随之发生 的变化。以此类推,最终会对代价函数产生 的变化。这里我们有:

Paste_Image.png

这表示我们可以通过仔细追踪每一步的影响来搞清楚 的表达式。
现在我们看看 如何影响第一个神经元的输出的。我们有,所以有

这项看起很熟悉:其实是我们上面关于 的表达式的第一项。直觉上看,这项将偏差的改变 转化成了输出的变化 随之又影响了带权输入:

的表达式组合起来,我们可以看到偏差 中的改变如何通过网络传输影响到 z_2的:

现在,又能看到类似的结果了:我们得到了在表达式 的前面两项。以此类推下去,跟踪传播改变的路径就可以完成。在每个神经元,我们都会选择一个的项,然后在每个权重我们选择出一个 项。最终的结果就是代价函数中变化 的相关于偏差 的表达式:

除以 ,我们的确得到了梯度的表达式:

为何出现梯度消失:现在把梯度的整个表达式写下来:

除了最后一项,该表达式是一系列形如 的乘积。为了理解每个项的行为,先看看下面的sigmoid 函数导数的图像:

该导数在 时达到最高。现在,如果我们使用标准方法来初始化网络中的权重,那么会使用一个均值为 0 标准差为 1 的高斯分布。因此所有的权重通常会满足。有了这些信息,我们发现会有 。并且在我们进行了所有这些项的乘积时,最终结果肯定会指数级下降:项越多,乘积的下降的越快。**这里我们敏锐地嗅到了消失的梯度问题的合理解释。
更明白一点,我们比较一下 和一个更后面一些的偏差的梯度,不妨设为 。当然,我们还没有显式地给出这个表达式,但是计算的方式是一样的。

比较梯度的表达式
两个表示式有很多相同的项。但是 还多包含了两个项。由于这些项都是 < 1/4 的。所以 会是 的 1/16 或者更小。这其实就是消失的梯度出现的本质原因了。
当然,这里并非严格的关于消失的梯度微调的证明而是一个不太正式的论断。还有一些可能的产生原因了。特别地,我们想要知道权重在训练中是否会增长。如果会,项 会不会不在满足之前 的约束。事实上,如果项变得很大——超过 1,那么我们将不再遇到消失的梯度问题。实际上,这时候梯度会在我们 BP 的时候发生指数级地增长。也就是说,我们遇到了梯度爆炸的问题。
梯度爆炸问题:现在看看梯度爆炸如何出现的把。这里的例子可能不是那么自然:固定网络中的参数,来确保产生爆炸的梯度。但是即使是不自然,也是包含了确定会产生爆炸梯度(而非假设的可能)的特质的。
共两个步骤:首先,我们将网络的权重设置得很大,比如。然后,我们选择偏差使得 项不会太小。这是很容易实现的:方法就是选择偏差来保证每个神经元的带权输入是 (这样 )。比如说,我们希望。我们只要把即可。我们使用同样的方法来获得其他的偏差。这样我们可以发现所有的项 都等于 。最终,我们就获得了爆炸的梯度。
不稳定的梯度问题:根本的问题其实并非是消失的梯度问题或者爆炸的梯度问题,而是在前面的层上的梯度是来自后面的层上项的乘积。当存在过多的层次时,就出现了内在本质上的不稳定场景。唯一让所有层都接近相同的学习速度的方式是所有这些项的乘积都能得到一种平衡。如果没有某种机制或者更加本质的保证来达成平衡,那网络就很容易不稳定了。简而言之,真实的问题就是神经网络受限于不稳定梯度的问题。所以,如果我们使用标准的基于梯度的学习算法,在网络中的不同层会出现按照不同学习速度学习的情况。

梯度消失和梯度爆炸原因推导相关推荐

  1. 梯度消失和梯度爆炸_出现梯度消失与梯度爆炸的原因以及解决方案

    在学习李宏毅老师机器学习的相关视频时,课下做了一个有关神经网络的小Demo,但是运行效果总是不尽人意,上网查询资料,才发现是梯度爆炸和梯度消失惹的祸.今天就让我们一起来学习一下梯度消失与梯度爆炸的概念 ...

  2. 梯度消失与梯度爆炸产生原因及解决方法

    1 .什么是梯度消失和梯度爆炸 在反向传播过程中需要对激活函数进行求导,如果导数大于1,那么随着网络层数的增加梯度更新将会朝着指数爆炸的方式增加这就是梯度爆炸.同样如果导数小于1,那么随着网络层数的增 ...

  3. [深度学习-优化]梯度消失与梯度爆炸的原因以及解决方案

    首先让我们先来了解一个概念:什么是梯度不稳定呢? 概念:在深度神经网络中的梯度是不稳定的,在靠近输入层的隐藏层中或会消失,或会爆炸.这种不稳定性才是深度神经网络中基于梯度学习的根本问题. 产生梯度不稳 ...

  4. 出现梯度消失与梯度爆炸的原因以及解决方案

    出现梯度消失与梯度爆炸的原因以及解决方案 参考文章: (1)出现梯度消失与梯度爆炸的原因以及解决方案 (2)https://www.cnblogs.com/XDU-Lakers/p/10553239. ...

  5. 梯度消失和梯度爆炸_梯度消失、爆炸的原因及解决办法

    一.引入:梯度更新规则 目前优化神经网络的方法都是基于反向传播的思想,即根据损失函数计算的误差通过梯度反向传播的方式,更新优化深度网络的权值.这样做是有一定原因的,首先,深层网络由许多非线性层堆叠而来 ...

  6. 【机器学习】梯度消失和梯度爆炸的原因分析、表现及解决方案

    目录 1 基本概念 2 原因分析 2.1 直接原因 2.2 根本原因 3 表现 4 解决方案 1 基本概念 (1)梯度不稳定 在深度神经网络中的梯度是不稳定的,在靠近输入层的隐藏层中或会消失,或会爆炸 ...

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

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

  8. [转载]神经网络梯度消失与梯度爆炸

    神经网络梯度消失与梯度爆炸 原文链接:https://blog.csdn.net/qq_27825451/article/details/80172070 一.神经网络梯度消失与梯度爆炸 (1)简介梯 ...

  9. 深度学习中的梯度消失、梯度爆炸问题

    写在前面: 有些博主对这个问题的解释很好,这里参考了: 详解机器学习中的梯度消失.爆炸原因及其解决方法 我在这方面的工作经验和知识面还不够,还需要积累后再做出更为专业的解答. 参考我之前转发过的一篇文 ...

  10. 梯度消失与梯度爆炸解释

    目录 what & why how what & why 首先,什么是梯度爆炸.梯度消失,或者说,emmmm,什么是梯度?下面通过一个神经网络来解释一下,(字不好还请见谅) 之前看到吴 ...

最新文章

  1. Win8 Metro(C#)数字图像处理--2.52图像K均值聚类
  2. 【PHPWord】列表ListItem
  3. Java查询spark中生成的文件_java+spark-sql查询excel
  4. React数据获取为什么一定要在componentDidMount里面调用?
  5. mlc tlc slc qlc_QLC颗粒怎么样?固态硬盘QLC、SLC、MLC、TLC颗粒区别对比知识
  6. Codeforces Round #315 (Div. 2)
  7. SpringBootSpring --- Redis 集成 Error creating bean with name 'enableRedisKeyspaceNotificationsIniti
  8. 我弥留之际 - 许立志 (珍藏)
  9. fastreport 直接调网络打印机_为什么UV打印机不能打印凹凸不平的材料?
  10. 笔记:后端 - Redis
  11. nginx多入口配置隐藏.php,Nginx配置tp5支持pathinfo以及隐藏入口文件
  12. sqlserver提权失败_利用mssql模拟登录提权
  13. tp 框架防sql注入
  14. 面试案例(2019)一
  15. 【应用笔记】APM32F4xx_ADC应用笔记
  16. 拼多多“超级农货节”收官 阳光玫瑰、琯溪蜜柚上榜“超级水果”
  17. 3-----A Forcast for Bicycle Rental Demand Based on Random Forests and Multiple Linear Regression
  18. 【Python】| 基于Python实现对比Excel的小工具
  19. 我的世界java版gamemode指令_我的世界(电脑Java版)简单又好玩指令教程
  20. 六级考试-考前最后一背

热门文章

  1. 对赌协议的经典案例分析
  2. Python学习_基础_29_面向对象编程之多态、鸭子类型
  3. 基于PHP+Zend Studio 13 + MYSQL+饭店预订管理系统
  4. 写了一个根据ISBN查询图书信息接口,把收藏的几百万本图书分享给大家
  5. 小米、Vivo、Oppo后台弹出界面权限检测
  6. 如何做好风险控制,规避项目中的风险
  7. IDEA社区版下载与安装详细教程
  8. 贝叶斯小数据分析—— 23 条数据决定宇航员生死(使用 PyMC3)
  9. android 自定义控件 书籍,android整理之自定义控件
  10. Niushop 商品分类、规格和类型之间的关系