解决梯度爆炸和梯度消失
文章目录
- 原因
- 解决方案
- 1.预训练和微调
- 2.relu、leakyrelu、Relu等激活函数
- 3.Batch Normalization(批规范化)
- 4.残差结构
- 5.梯度剪切、正则
- 6.LSTM(长短期记忆网络)
原因
梯度消失和梯度爆炸两种情况产生的原因可以总结成2类原因:1.深层网络的结构;2.不合适的损失函数,比如Sigmoid函数。梯度爆炸一般出现在深层网络和权值初始化值太大的情况下。
解决方案
1.预训练和微调
预训练:无监督逐层训练,每次训练一层隐藏点,训练时将上一层隐节点的输出作为输入,而本层隐节点的输出作为下一层隐节点的输入。称为逐层预训练。在预训练完成后还要对整个网络进行微调。
2.relu、leakyrelu、Relu等激活函数
具体介绍可参看我的另外一篇文章详解激活函数
3.Batch Normalization(批规范化)
因为在反向传播的时候,需要计算梯度,那么不可避免带有权重 W,而BN的作用就是通过对每一层的输出规范为均值和方差一致的方法,消除了 W 带来的放大缩小的影响,进而解决梯度消失和爆炸的问题,或者可以理解为BN将输出从饱和区拉到了非饱和区(比如Sigmoid函数)。
4.残差结构
具体介绍可参看我的另外一篇文章ResNet知识点补充
5.梯度剪切、正则
剪切的方法有两种
- 按值截断:在第t次迭代时,梯度为 gtg_tgt ,给定一个区间[a,b],如果一个参数的梯度小于a时,就将其设为a;如果大于b时,就将其设为b。
- 按模截断:将梯度的模截断到一个给定的截断阈值b。如果 ∣∣gt∣∣2<=b||g_t||^2 <= b∣∣gt∣∣2<=b ,保持 gtg_tgt 不变。如果 ∣∣gt∣∣2>b||g_t||^2 > b∣∣gt∣∣2>b ,∣∣gt∣∣=b/∣∣gt∣∣∗gt||g_t|| = b/||g_t|| * g_t∣∣gt∣∣=b/∣∣gt∣∣∗gt ,b为超参数,往往一个小的阈值可以达到很好的效果。在训练循环神经网络时,按模截断是避免题都爆炸问题的有效方法。
正则化的方法有比较常见的l1正则和l2正则,正则化是通过对网络权重做正则限制过拟合,仔细看正则项在损失函数的形式:
λλλ 是正则项系数,如果发生梯度爆炸,权值的范数会变得非常大,通过正则化项,可以部分限制梯度爆炸的发生。
6.LSTM(长短期记忆网络)
在RNN网络结构中,由于使用Logistic或者Tanh函数,所以很容易导致梯度消失的问题,即在相隔很远的时刻时,前者对后者的影响几乎不存在了,LSTM的机制正是为了解决这种长期依赖问题。这个算法不多,只是知道可以解决。
解决梯度爆炸和梯度消失相关推荐
- 梯度爆炸与梯度消失是什么?有什么影响?如何解决?
文章目录 一.梯度爆炸 1.什么是梯度爆炸? 2.有何影响? 二.梯度消失 1.定义 2.有何影响? 三.共同点 1.产生原因 2.解决办法 a. 方案1-预训练加微调 b. 方案2-梯度剪切.正则化 ...
- 梯度消失和梯度爆炸_梯度消失、爆炸的原因及解决办法
一.引入:梯度更新规则 目前优化神经网络的方法都是基于反向传播的思想,即根据损失函数计算的误差通过梯度反向传播的方式,更新优化深度网络的权值.这样做是有一定原因的,首先,深层网络由许多非线性层堆叠而来 ...
- 梯度消失和梯度爆炸_梯度消失梯度爆炸-Gradient Clip
梯度爆炸与梯度消失 实际现象: 当我们使用sigmoid function作为激活函数时,随着神经网络的隐藏层数增加,训练误差反而增大,造成了深度网络的不稳定. 梯度弥散: 靠近输出层的hidden ...
- 什么是梯度爆炸与梯度消失
梯度爆炸(Gradient Explosion)和梯度消失(Gradient Vanishing)是深度学习训练过程中的两种常见问题. 梯度爆炸是指当训练深度神经网络时,梯度的值会快速增大,造成参数的 ...
- 【转载】梯度爆炸和梯度消失
写得很全的一篇知乎上的介绍 一.梯度消失 梯度消失出现的原因: 在深层网络中,如果激活函数的导数小于1,根据链式求导法则,靠近输入层的参数的梯度因为乘了很多的小于1的数而越来越小,最终就会趋近于0,例 ...
- 为什么会出现梯度爆炸和梯度消失现象?怎么缓解这种现象的发生?
前言:梯度消失现象在深度神经网络训练过程中表现得尤为突出,随着网络层数的加深,损失在反向传播时梯度在不断减小,导致浅层网络的学习进行不下去,参数得不到有效更新.为什么会出现这种现象呢?下面小编将从神经 ...
- 神经网络梯度爆炸、梯度消失原因及解决方案
本文参考:深度网络梯度爆炸的原因.产生的影响和解决方法(常用激活函数)_凝眸伏笔的博客-CSDN博客 产生原因: 网络层数太深,链式求导时的连乘效应会导致梯度爆炸或梯度消失. 如果梯度值均小于1,则会 ...
- 如何理解梯度爆炸和梯度消失
如何理解梯度爆炸和梯度消失 何为梯度消失,产生的原因是什么? 梯度消失的最核心原因是,选择的优化方法不能很好的应对多层结构.在利用链式法则,求导的过程中导致梯度逐层衰减,最后消失.反之如果每次求导之后 ...
- 梯度消失和梯度爆炸_梯度消失和梯度爆炸详解
在中文搜索引擎搜索梯度爆炸或者梯度消失,出现的往往是一篇文章复制黏贴多次,而且这篇文章讲的并不清晰,比方说下面这种在文章中出现的图一,反正我是根本看不懂这张图描述的实什么,因此那篇被复制黏贴无数次的文 ...
最新文章
- Python 精选笔试面试习题—类继承、方法对象、包管理、闭包、可变类型作为默认参数、列表引用、sort与sorted、 append 和 extend、深拷贝和浅拷贝
- 业务层战略制定的思路和方法_智能商业时代的一种敏捷战略框架
- Windows Store获得Fluent Design加成
- 会计日历-自动生成脚本
- mysql5.58_mysql5.58编译安装手记
- Exceptions(小节)
- HTML笔记一,部分常用的元素与属性
- matlab linspace
- w7重启计算机打印机无法使用,win7系统电脑重启打印机服务就会被关闭的解决方法...
- JVM本地方法栈及native方法
- EDR BYPASS
- c语言课件设计食堂饭卡管理系统,食堂饭卡管理系统课件.doc
- thinkpad E40 的 C1门
- unity3d游戏开发第二版pdf_从零开始学基于ARKit的Unity3d游戏开发系列10
- matlab中pwm占空比计算代码,如何计算pwm波占空比
- 关于文件你必须了解的一些基本概念
- 嵌入式系统是不是计算机系统,开发必知:嵌入式系统对比计算机系统
- Python爬链家网租房信息
- 基于JAVA餐饮掌上设备点餐系统计算机毕业设计源码+系统+lw文档+部署
- 2021物理化学实验4:液体饱和蒸气压的测定
热门文章
- 图像处理:黑白效果(灰度处理)
- java ----数据结构和算法
- java aes pbe_Java加密技术(三)——PBE算法
- 2022-2028全球与中国镀镍钢片市场现状及未来发展趋势
- Cmake的安装与使用
- linux下ora-12505,甲骨文临时ORA 12505错误后的Linux启动
- lmx2592频率源原理图和程序源码。 20MHz——9.8GHz的低噪声锁相环频率源
- hdu 1540 Tunnel Warfare(线段树区间合并)
- Javascript 04 读取本地文件内容
- JeewxBoot 1.3.1 版本发布,免费开源的JAVA微信管家