gpt4 book ai didi

python - RNN 的消失/爆炸梯度

转载 作者:太空宇宙 更新时间:2023-11-04 03:00:51 25 4
gpt4 key购买 nike

背景:我目前正在训练用于文本情感分析的递归神经网络。
数据集是句子的集合,这些句子被二元分类为正面或负面。

问题:对于较小的句子(少于 3-4 个单词),神经网络工作正常(即损失随时间减少),但对于较大的句子,成本会飙升,直到整个程序崩溃。

这是梯度消失/爆炸问题的一个例子吗?
如果是,是这两者中的哪一个,我该如何解决?

我认为,对于简单的 RNN,梯度消失问题不是什么大问题。通常,在不使用某种 LTSM/GRU 架构的情况下,RNN 可以很好地处理多少个时间步长?

EDIT1:我没有为这个网络使用 LSTM 或 GRU 架构。
EDIT2:我认为这可能是梯度消失问题,因为梯度接近零,尤其是对于较长的句子。
EDIT3:我注意到,当我执行梯度检查时,反向传播梯度和数值计算梯度之间的差异是不一致的。
有时它们非常相似:

Estimated gradient: -0.03798713081426541
Actual gradient: -0.03798713058052253

Estimated gradient: 0.09233359214502745
Actual gradient: 0.09233359179904115

Estimated gradient: 0.0769223445411249
Actual gradient: 0.07692234419615167

Estimated gradient: 0.12397360958732451
Actual gradient: 0.12397360903699521

*这些不是相邻检查 - 只是精心挑选的良好梯度检查示例。
其他时候,它们非常不同:

Estimated gradient: -4.0245362598057e-07
Actual gradient: 3.4145999078185475e-12
Gradient Check ERROR
Relative error: 1.0

Estimated gradient: -4.241412776551101e-08
Actual gradient: -2.1161111156415113e-16
Gradient Check ERROR
Relative error: 0.9999999900216686

Estimated gradient: 0.0
Actual gradient: -4.450453565269026e-32
Gradient Check ERROR
Relative error: 1.0

最佳答案

用 LSTM 架构重新实现 RNN 解决了​​这个问题。消失的梯度是问题所在。

关于python - RNN 的消失/爆炸梯度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40954797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com