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

梯度消失与梯度爆炸问题

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

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

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

分析步骤

分析:

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

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

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

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

相关推荐
天天代码码天天2 小时前
C# Onnx 动漫人物头部检测
人工智能·深度学习·神经网络·opencv·目标检测·机器学习·计算机视觉
vlln2 小时前
【论文解读】ReAct:从思考脱离行动, 到行动反馈思考
人工智能·深度学习·机器学习
superior tigre4 小时前
RNN循环网络:给AI装上“记忆“(superior哥AI系列第5期)
人工智能·rnn·深度学习
视觉语言导航5 小时前
低空城市场景下的多无人机任务规划与动态协调!CoordField:无人机任务分配的智能协调场
人工智能·深度学习·无人机·具身智能
处女座_三月6 小时前
torch.randn vs torch.rand
人工智能·深度学习·机器学习
丁值心6 小时前
6.04打卡
开发语言·人工智能·python·深度学习·机器学习·支持向量机
codegarfield6 小时前
关于神经网络中的激活函数
人工智能·深度学习·神经网络·激活函数
爱说实话6 小时前
Mnist手写数字
深度学习
Zero_to_zero12346 小时前
layer norm和 rms norm 对比
人工智能·pytorch·深度学习
摘取一颗天上星️7 小时前
BERT:让AI真正“读懂”语言的革命
人工智能·深度学习·bert