RNN中的梯度消失与梯度爆炸问题

梯度消失与梯度爆炸问题

循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络.在循环神经网络中,神经元不但可以接受其他神经元的信息,也可以接受自身的信息,形成具有环路的网络结构。

在RNN中,梯度计算时需要沿时间步反向传播(BPTT,Backpropagation Through Time),这个算法即按照时间的逆序将梯度信息一步步地往前传递.当输入序列比较长时了,时间步展开导致的长链乘积会存在梯度爆炸和消失问题,也称为长程依赖问题。

上图是一个简单的循环神经网络,只有一个隐藏层的神经网络,𝒉_𝑡不仅和当前时刻的输入𝒙_𝑡 相关,也和上一个时刻的隐藏层状态𝒉_{𝑡−1} 相关

分析步骤

分析:

1、使用了一个4层的前馈神经网络来模拟展开的RNN。

2、若激活函数是Sigmoid,求梯度的最大值是0.25,可能会导致梯度消失问题,这时候网络就学习不到东西了,即无法更新梯度。

3、若权重设置过大了,可能出现梯度爆炸问题,梯度变成NaN。

注:最后等式括号中根据不同的激活函数有不同的导数。

相关推荐
relis10 分钟前
llama.cpp Flash Attention 论文与实现深度对比分析
人工智能·深度学习
盼小辉丶13 分钟前
Transformer实战(21)——文本表示(Text Representation)
人工智能·深度学习·自然语言处理·transformer
艾醒(AiXing-w)18 分钟前
大模型面试题剖析:模型微调中冷启动与热启动的概念、阶段与实例解析
人工智能·深度学习·算法·语言模型·自然语言处理
无风听海32 分钟前
神经网络之交叉熵与 Softmax 的梯度计算
人工智能·深度学习·神经网络
java1234_小锋35 分钟前
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 神经网络基础原理
python·深度学习·tensorflow·tensorflow2
JJJJ_iii36 分钟前
【深度学习03】神经网络基本骨架、卷积、池化、非线性激活、线性层、搭建网络
网络·人工智能·pytorch·笔记·python·深度学习·神经网络
玉石观沧海42 分钟前
高压变频器故障代码解析F67 F68
运维·经验分享·笔记·分布式·深度学习
JJJJ_iii1 小时前
【深度学习05】PyTorch:完整的模型训练套路
人工智能·pytorch·python·深度学习
DP+GISer1 小时前
自己制作遥感深度学习数据集进行遥感深度学习地物分类-试读
人工智能·深度学习·分类
paid槮2 小时前
《深度学习》【项目】自然语言处理——情感分析 <上>
深度学习·自然语言处理·easyui