首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RNN的消失/爆炸梯度

RNN的消失/爆炸梯度
EN

Stack Overflow用户
提问于 2016-12-04 02:39:56
回答 1查看 712关注 0票数 2

背景:我目前正在训练一个用于文本情感分析的递归神经网络。

数据集是一组被分为正反两类的句子的集合。

问题:神经网络工作良好(即损失随着时间的推移而减少),用较小的句子(少于3-4个单词),但对于较大的句子,成本上升,直到整个程序崩溃。

这是否是消失/爆炸梯度问题的一个例子?

如果是的话,这两种是哪一种,我又如何解决呢?

我认为,对于简单的RNN,消失梯度问题不是一个大问题。通常,RNN在不使用某种LTSM/GRU体系结构的情况下能够很好地处理多少时间步骤?

EDIT1:我不会在这个网络上使用LSTM或GRU架构。

EDIT2:我认为这可能是一个逐渐消失的梯度问题,因为梯度接近于零,特别是对于较长的句子。

EDIT3:我注意到,当我执行梯度检查时,反向传播梯度和数值计算的梯度之间的差异是不一致的。

有时它们非常相似:

代码语言:javascript
复制
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

*这些不是相邻的检查--只是手工挑选的好梯度检查的例子。

其他时候,它们是非常不同的:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-09 12:43:10

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40954797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档