神经网络中的梯度爆炸

参考文章:https://blog.csdn.net/Uwr44UOuQcNsUQb60zk2/article/details/78877974

一、什么事梯度爆炸?

“梯度爆炸指神经网络训练过程中大的误差梯度不断累积,导致模型权重出现重大更新。会造成模型不稳定,无法利用训练数据学习”
误差梯度是神经网络训练过程中计算的方向和数量,用于以正确的方向和合适的量更新网络权重。 在深层网络或循环神经网络中,误差梯度可在更新中累积,变成非常大的梯度,然后导致网络权重的大幅更新,并因此使网络变得不稳定。在极端情况下,权重的值变得非常大,以至于溢出,导致 NaN 值。 网络层之间的梯度(值大于 1.0)重复相乘导致的指数级增长会产生梯度爆炸。 梯度爆炸引发的问题 在深度多层感知机网络中,梯度爆炸会引起网络不稳定,最好的结果是无法从训练数据中学习,而最坏的结果是出现无法再更新的 NaN 权重值。
总结:
原因:权重初始化过大,导致权重更新梯度大,损失波动幅度大
结果:1、模型不稳定;2、无法继续学习-nan。

二、如何解决梯度爆炸?
1、重新设计网络模型

在深度神经网络中,梯度爆炸可以通过重新设计层数更少的网络来解决。 在循环神经网络中,训练过程中在更少的先前时间步上进行更新可以缓解梯度爆炸问题。
(网络权重过大在反向连乘时会越乘越大)

2、使用 ReLU系列的激活函数

激活函数也是导致梯度爆炸的因素之一,如 Sigmoid 和 Tanh 函数。 使用 ReLU 系列的激活函数可以减少梯度爆炸,。
(ReLu系列:ReLU、LeakyReLU、pReLU等)

3. 使用长短期记忆网络

在循环神经网络中,梯度爆炸的发生可能是因为某种网络的训练本身就存在不稳定性,如随时间的反向传播本质上将循环网络转换成深度多层感知机神经网络。 使用长短期记忆(LSTM)单元和相关的门类型神经元结构可以减少梯度爆炸问题。 采用 LSTM 单元是适合循环神经网络的序列预测的较好实践。

4. 使用梯度截断(Gradient Clipping)

在较深较大的深层网络模型中或输入序列较长的LSTM中,可以使用梯度截断的方法来限制梯度。即:当梯度大于阈值时,将梯度设为阈值。

神经网络中的梯度爆炸相关推荐

  1. 神经网络中的梯度是什么,神经网络梯度公式推导

    1.BP神经网络的MATLAB训练Gradient是什么意思?Performance是什么意思?,大神能解释一下吗?谢谢了 Gradient是梯度的意思,BP神经网络训练的时候涉及到梯度下降法,表示为 ...

  2. 深度神经网络中的梯度丢失与梯度爆炸

    神经网络的反向传播 要理解梯度丢失(vanishing gradient)和梯度爆炸,首先需要理解神经网络的反向传播算法. 一般来说,训练一个神经网络需要很多个迭代.在每个迭代中,都包含两个步骤. 前 ...

  3. 深度神经网络中的梯度消失与爆炸

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

  4. 一文看懂神经网络中的梯度下降原理 图像说明

    本文是一篇关于深度学习优化方法--梯度下降的介绍性文章.作者通过长长的博文,简单介绍了梯度下降的概念.优势以及两大挑战.文中还配有大量生动形象的三维图像,有兴趣的亲了解一下? 从很大程度上来说,深度学 ...

  5. 【深度学习篇】--神经网络中解决梯度弥散问题

     一.前述 在梯度下降中,随着算法反向反馈到前面几层,梯度会越来越小,最终,没有变化,这时或许还没有收敛到比较好的解,这就是梯度消失问题,深度学习遭受不稳定的梯度,不同层学习在不同的速度上 二.解决梯 ...

  6. 详解+推导 神经网络中的前向传播和反向传播公式(神经网络中的梯度下降)

    文章目录 线性回归快速回忆 逻辑回归中的正向传播与反向传播 逻辑回归中的正向传播与反向传播-代码实战 神经网络的正向传播与反向传播 参考资料 线性回归快速回忆 在线性回归(y=ax+by=ax+by= ...

  7. 神经网络中的梯度消失

    什么是梯度消失? 神经元的权重w和偏置b是和激活函数的梯度成正比的,激活函数导数越大,则w,b调整越快,如果激活函数梯度很小,在反向传播时,多个小于0的导数相乘,随着神经网络层数的加深,梯度方向传播到 ...

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

    那么为什么会出现梯度消失的现象呢?因为通常神经网络所用的激活函数是sigmoid函数,这个函数有个特点,就是能将负无穷到正无穷的数映射到0和1之间,并且对这个函数求导的结果是f′(x)=f(x)(1− ...

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

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

最新文章

  1. 学习在Unity中创建一个动作RPG游戏
  2. c语言程序的实质,C语言_printf中的%p的实质
  3. hdu 1688 Sightseeing
  4. android sdk 源码解析
  5. sqlserver 还原bak文件 查看不到_SQL server中用T-SQL语句实现(建库,分离,附加,备份,还原)...
  6. 视频(avi)转换为图片(Python代码实现)
  7. 云计算(1)---基础知识
  8. Centos在线安装nginx
  9. 阿里巴巴CTO王坚:省长也是开发者
  10. python 初步学习
  11. Android开发/源码资源汇总
  12. python socket清空接受区_用 Python 开发一个 「聊天室」
  13. 使用Foxit Reader实现批量打印以及一页多版设置技巧
  14. 来!程序猿教你们玩微信代码~
  15. 增强 扫描王 源码_camscanner(扫描全能王)功能解析与复现 - 页面增强
  16. 中国少数民族语言和文字
  17. k型热电偶材料_什么是k型热电偶_k型热电偶的测量范围
  18. 货币等额换算_换算单位和货币的最佳免费程序和网站
  19. 电商项目必备技能=>放大镜
  20. AD19 keepoutlayer相关

热门文章

  1. 数据库mysql自然连接_MySQL数据库之多表查询natural join自然连接
  2. 2020牛客暑期多校训练营(第一场)j-Easy Integration(思维,分数取模,沃斯利积分)
  3. 冷笑话,收集很多的冷笑话
  4. Android使用Mob开发平台免费短信验证
  5. css3中的景深,3d,和动画效果
  6. 音频有噪音怎么办?不如试试这款软件。
  7. NX安装cuda和cudnn
  8. PHP:PhpSpreadsheet实现Excel的读取和写入
  9. javaweb+themeleaf+Tomcat学习——org.thymeleaf.exceptions.TemplateProcessingException
  10. Unity Android通过拍照和相册上传头像(图片)