深度学习总结(六)——梯度弥散、爆炸和过拟合
来源:互联网 发布:淘宝跳蚤街在哪 编辑:程序博客网 时间:2024/05/28 15:58
一、梯度弥散和爆炸
1. 梯度弥散的解释
梯度弥散的问题很大程度上是来源于激活函数的“饱和”。因为在后向传播的过程中仍然需要计算激活函数的导数,所以一旦卷积核的输出落入函数的饱和区,它的梯度将变得非常小。
使用反向传播算法传播梯度的时候,随着传播深度的增加,梯度的幅度会急剧减小,会导致浅层神经元的权重更新非常缓慢,不能有效学习。这样一来,深层模型也就变成了前几层相对固定,只能改变最后几层的浅层模型。
梯度爆炸的情况正好相反。
2. 防止梯度弥散的方法
BN。加入BN层之前,反向传播的梯度为:
加入BN之后,反向传播的梯度为:
我们可以看到此时反向传播乘以的数不再和w的尺度相关,也就是尽管我们在更新过程中改变了w的值,但是反向传播的梯度却不受影响。
跟进一步:
即尺度较大的 w 将获得一个较小的梯度,在同等的学习速率下其获得的更新更少,这样使得整体 w 的更新更加稳健起来。
3. LSTM如何避免梯度弥散和梯度膨胀
梯度弥散
梯度弥散是RNN存在的一个固有问题。RNN的本质是在网络内部维护了一个状态S_t,其中t表示时间且S_t可递归计算。
传统的RNN总是用“覆写”的方式计算状态:St=f(St−1,xt) ,其中f(·)Sigmoid,x_t表示输入序列在时刻t的值。根据链式求导法则,这种形式直接导致梯度被表示为连积的形式,以致于造成梯度消失——粗略的说,很多小于1的项连乘就很快的逼近零。
现代的LSTM使用的是累加的形式计算状态。这种形式导致导数也是累加形式,因此避免了梯度消失。梯度膨胀
一般靠裁剪后的优化算法解决。比如gradient clipping(如果梯度的范数大于某个给定值,将梯度同比收缩)。
二、过拟合
1. 防止过拟合
- 数据增强:水平翻转,随机裁剪、平移变换,颜色、光照变换。
- Dropout:在Alexnet中提出,变种是dropconnect。
- Weight decay,early stop,Batch Normal,ReLU激活函数
- 深度学习总结(六)——梯度弥散、爆炸和过拟合
- 深度学习算法之过拟合、局部最小值和梯度弥散·
- 梯度弥散和梯度爆炸
- 梯度弥散和梯度爆炸
- 梯度弥散和梯度爆炸
- 深度学习基础之-梯度弥散和梯度爆炸及解决办法
- 【深度学习:CNN】过拟合、梯度弥散、batchsize的影响的问题
- 深度学习:梯度消失和梯度爆炸
- 深度学习:梯度消失和梯度爆炸
- 深入浅出——搞懂卷积神经网络的过拟合、梯度弥散、batchsize的影响的问题(二)
- 深入浅出——搞懂卷积神经网络的过拟合、梯度弥散、batchsize的影响的问题
- 梯度弥散与梯度爆炸
- 理解神经网络梯度爆炸和梯度弥散问题
- 深度学习: gradient diffusion (梯度弥散)
- 深度学习关键词之—过拟合
- 深度学习关键词之—过拟合
- 深度学习-梯度下降和梯度爆炸问题
- 机器学习总结(二):梯度消失和梯度爆炸
- codeforces 148D Bag of mice (概率)
- JFinal神器的配置
- 一行一行读Java源码——ArrayList
- 数据结构实验之图论三:判断可达性
- 史上最全的Spring MVC 中文乱码问题解决方案
- 深度学习总结(六)——梯度弥散、爆炸和过拟合
- web.xml配置简介
- Spring 事务原理
- 判断平年还是闰年
- php 利用阿里云oss实现托管文件
- 研究生教师工资
- cf #336 div1 a
- 基于MapReduce的应用案例
- Linux内核添加设备驱动方法