背景:我目前正在训练一个用于文本情感分析的递归神经网络。
数据集是一组被分为正反两类的句子的集合。
问题:神经网络工作良好(即损失随着时间的推移而减少),用较小的句子(少于3-4个单词),但对于较大的句子,成本上升,直到整个程序崩溃。
这是否是消失/爆炸梯度问题的一个例子?
如果是的话,这两种是哪一种,我又如何解决呢?
我认为,对于简单的RNN,消失梯度问题不是一个大问题。通常,RNN在不使用某种LTSM/GRU体系结构的情况下能够很好地处理多少时间步骤?
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发布于 2016-12-09 12:43:10
用LSTM架构重新实现RNN解决了这个问题。逐渐消失的梯度才是问题所在。
https://stackoverflow.com/questions/40954797
复制相似问题