
摘要
循环神经网络(RNNs)已被广泛用于处理序列数据。然而,由于众所周知的梯度消失和梯度爆炸问题,RNNs通常难以训练,并且难以学习长期模式。为了应对这些问题,长短期记忆(LSTM)和门控循环单元(GRU)被开发出来,但使用双曲正切和Sigmoid激活函数会导致梯度在层间衰减。因此,构建一个高效可训练的深度网络具有挑战性。此外,同一RNN层中的所有神经元相互纠缠,其行为难以解释。为了解决这些问题,本文提出了一种新的RNN类型——独立循环神经网络(IndRNN),其中同一层内的神经元彼此独立,并且它们在不同层之间连接。我们已经证明,通过适当调节,IndRNN可以有效防止梯度爆炸和消失问题,同时允许网络学习长期依赖关系。此外,IndRNN可以使用非饱和激活函数(如ReLU(修正线性单元)),并且仍然能够稳健地训练。多个IndRNN可以堆叠以构建比现有RNN更深的网络。实验结果表明,所提出的IndRNN能够处理非常长的序列(超过5000个时间步),可用于构建非常深的网络(实验中使用了21层),并且仍能稳健地训练。与传统的RNN和LSTM相比,在各种任务上使用IndRNN取得了更好的性能。代码可在https://github.com/Sunnydreamrain/IndRNN_Theano_Lasagne 获取。
代码仓库
secretlyvogon/IndRNNTF
tf
GitHub 中提及
TobiasLee/Text-Classification
tf
GitHub 中提及
secretlyvogon/Neural-Network-Implementations
tf
GitHub 中提及
trevor-richardson/rnn_zoo
pytorch
GitHub 中提及
Sunnydreamrain/IndRNN_pytorch
pytorch
GitHub 中提及
StefOe/indrnn-pytorch
pytorch
GitHub 中提及
lmnt-com/haste
tf
GitHub 中提及
Sunnydreamrain/IndRNN_Theano_Lasagne
官方
pytorch
GitHub 中提及
Sunnydreamrain/IndRNN
tf
GitHub 中提及
batzner/indrnn
tf
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| language-modelling-on-penn-treebank-character | IndRNN | Bit per Character (BPC): 1.19 |
| sequential-image-classification-on-sequential | IndRNN | Permuted Accuracy: 96% Unpermuted Accuracy: 99% |
| skeleton-based-action-recognition-on-ntu-rgbd | Ind-RNN | Accuracy (CS): 81.8 Accuracy (CV): 88.0 |