这两种现象的触发原因都是由于网络层数比较多,导致梯度在逐层回传的时候累积出了问题。

梯度消失

接近输出层的网络层梯度更新较为正常,而越远(越接近输入层),其权值更新会非常慢,此时对网络的学习相当于等价于只对后几层的学习,而前面层的权重可以认为约等于是固定的保持不变。

诱因 可以发现sigmoid激活函数的导数如下:

可以发现其导数是不会大于0.25的,此时链式求导梯度回传过程中梯度是很可能逐渐变小的(取决于初始化权值的大小),导致最后梯度约等于0,即"消失"。

可以考虑采用如下方法缓解梯度消失问题:

  • 将sigmoid替换成ReLU(其导数只为0或1)
  • 使用BatchNorm层(约束xxx的取值从而防止sigmoid导数过小)
  • 使用现代化网络设计(如ResNet的残差连接与LSTM的门结构)
  • 优化权重初始化方式(如xavier)
梯度爆炸

接近输出层的网络层梯度更新较为正常,而越远(越接近输入层),其权值波动会非常剧烈,此时网络训练不稳定。不过相对于梯度消失而言,梯度爆炸则不那么容易遇到,其解决方案如下:

  • 梯度裁切(给梯度设定阈值)
  • 权重正则化(L1正则化,L2正则化)
  • 上述四种梯度消失的解决办法
推荐阅读

https://zhuanlan.zhihu.com/p/72589432

简单理解梯度消失与梯度爆炸相关推荐

  1. 1.10 梯度消失与梯度爆炸-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.9 归一化输入 回到目录 1.11 神经网络的权重初始化 梯度消失与梯度爆炸 (Vanishing/Expanding Gradients) 训练神经网络,尤其是深度神经 ...

  2. sigmoid函数解决溢出_梯度消失和梯度爆炸及解决方法

    一.为什么会产生梯度消失和梯度爆炸? 目前优化神经网络的方法都是基于BP,即根据损失函数计算的误差通过梯度反向传播的方式,指导深度网络权值的更新优化.其中将误差从末层往前传递的过程需要链式法则(Cha ...

  3. 梯度消失和梯度爆炸_知识干货-动手学深度学习-05 梯度消失和梯度爆炸以及Kaggle房价预测...

    梯度消失和梯度爆炸 考虑到环境因素的其他问题 Kaggle房价预测 梯度消失和梯度爆炸 深度模型有关数值稳定性的典型问题是消失(vanishing)和爆炸(explosion). 当神经网络的层数较多 ...

  4. 深度学习的实用层面 —— 1.10 梯度消失与梯度爆炸

    训练神经网络,尤其是深度神经网络所面临的一个问题是梯度消失或者梯度爆炸,也就是说,当你训练深度网络时导数或坡度有时会变得非常大或非常小,甚至以指数方式变小,这加大了训练的难度,这里我们将会了解梯度爆炸 ...

  5. 动手学深度学习(PyTorch实现)(四)--梯度消失与梯度爆炸

    梯度消失与梯度爆炸 1. 梯度消失与梯度爆炸 2. 模型参数的初始化 2.1 PyTorch的默认随机初始化 2.2 Xavier随机初始化 3. 环境因素 3.1 协变量偏移 3.2 标签偏移 3. ...

  6. L8梯度消失、梯度爆炸

    houseprices数据下载: 链接:https://pan.baidu.com/s/1-szkkAALzzJJmCLlJ1aXGQ 提取码:9n9k 梯度消失.梯度爆炸以及Kaggle房价预测 代 ...

  7. 深度学习中梯度消失和梯度爆炸的根本原因及其缓解方法

    深度学习中梯度消失和梯度爆炸的根本原因及其缓解方法 一.梯度消失和爆炸的根本原因 1. 深层网络角度 2. 激活函数角度 二.梯度消失.爆炸的解决方案 1. 梯度剪切.正则 2. 采用其他的激活函数 ...

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

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

  9. 深入了解梯度消失与梯度爆炸

    本文探讨深度学习中经常会提到的概念–梯度消失与梯度爆炸.他们是影响模型收敛,学习好坏的一个重要因素,对此现象也提出了对应的解决方案.在此记录其概念,原因和相关的解决方案,仅供参考. 目录 概念 原因 ...

  10. RNN、LSTM、GRU 的梯度消失及梯度爆炸

    文章目录 RNN.LSTM.GRU 的梯度消失及梯度爆炸 RNN RNN 结构 前向传播 损失函数 后向传播(BPTT) LSTM LSTM 结构 前向传播 后向传播 GRU GRU 结构 前向传播 ...

最新文章

  1. LED,硅光电池的光能-电能转换是可逆的吗?
  2. 使用递归的方式实现简易的二分法
  3. PP部分主数据导出SQVI设置
  4. mysql 学习笔记03 常用数据类型
  5. MacBook创建docker私有仓库docker server gave HTTP response to HTTPS client 问题处理办法
  6. 通过德雷福斯模型探寻成长之路
  7. windows 虚拟磁盘的软链接_如何在Windows的操作系统下创建VHD虚拟磁盘
  8. Vue2中$forceUpdate()的使用
  9. MPLS virtual private network 本地互访实验(华为设备)
  10. 图解 FAT 文件系统之基础知识(一)
  11. robot_marm catkin_make报错
  12. 【时间转换】将秒转换成“时分秒”格式
  13. 牛客网Java选择题练习
  14. 串联谐振电路的品质因数
  15. 我与安利美女过招;安利传销内幕揭秘! 转
  16. 小飞升值记——(7)
  17. 陳三甲网络笔记:几条赚钱感悟!
  18. 完整的DJ表演工具包djay Pro 2 Mac,DJ打碟神器
  19. 使用Python发送和读取Lotus Notes邮件
  20. 湖南计算机专业好的二本学校排名2015,2015湖南二本大学排名

热门文章

  1. visual studio code无法连接网络,五种方法
  2. 精通开关电源设计第三版pdf_看漫画,学电源(一)丨线性电源与开关电源的构造...
  3. hnu暑期实训 数码管儿
  4. Magic Odd Square 思维
  5. 利用python进行数据分析——使用groupby机制对pandas对象类的数据进行聚合与分组操作
  6. python文件操作(路径、移动、复制、见目录)
  7. 图像处理——双线性插值(Bilinear Interpolation)
  8. TensorFlow——Ubuntu系统上TensorFlow的安装教程
  9. Pytorch——搭建深度神经网络的基本流程
  10. CGVAE -> Delinker -> DeepCoy