暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

可逆RNN:内存大降,性能不减

北邮数据科学与商务智能实验室 2020-08-11
588

原标题:Reversible Recurrent Neural Networks

作者:Matthew MacKay, Paul Vicol, Jimmy Ba, Roger Grosse
原文链接:

https://arxiv.org/pdf/1810.10999.pdf


中文摘要:递归神经网络(RNN)在处理顺序数据方面提供了最新的性能,但是训练需要占用大量内存,从而限制了可以训练的RNN模型的灵活性。可逆RNN-提供了一条路径来减少训练的内存需求,不需要存储隐藏状态,而是在反向传播期间重新计算先前的隐藏状态。我们首先显示完全可逆的RNN(不需要存储隐藏的激活)受到了根本的限制,因为它们无法从隐藏状态中忘记信息。然后,我们提供了一种用于存储少量位的方案,以便通过遗忘实现完美的反转。我们的方法可实现与传统模型相当的性能,同时将激活内存成本降低了10-15倍。我们将技术扩展到基于注意力的序列到序列模型,该模型在保持性能的同时,将激活内存成本在编码器中降低了5-10倍,在解码器中降低了10-15倍。


英文摘要:Recurrent neural networks (RNNs) provide state-of-the-art performance in processing sequential data but are memory intensive to train, limiting the flexibility of RNN models which can be trained. Reversible RNNs—RNNs for which the hidden-to-hidden transition can bereversed—offer a path to reduce the memory requirements of training, as hidden states need not be stored and instead can be recomputed during backpropagation. We first show that perfectly reversible RNNs, which require no storage of the hidden activations, are fundamentally limited because they cannot forget information from their hidden state. We then provide a scheme for storing asmall number of bits in order to allow perfect reversal with forgetting. Our method achieves comparable performance to traditional models while reducing the activation memory cost by a factor of 10–15. We extend our technique to attention-based sequence-to-sequence models,  where it maintains performance while reducing activation memory cost by a factor of 5–10 in the encoder, and a factor of 10–15 in the decoder.


文献总结


递归神经网络在语音识别,语言建模和机器翻译等序列任务上具有良好的性能。但是,RNN训练需要占用大量内存。标准训练算法是经过时间的截断反向传播(TBPTT)。在该算法中,将输入序列分为较小长度的子序列T。处理这些子序列中的每个子序列,并反向传播梯度。如果H为模型隐藏状态的大小,则TBPTT所需的内存为O(T H)。占用大量内存限制了训练RNN的灵活性。减少TBPTT算法的内存需求将使我们能够增加序列长度T,从而捕获较长时间范围内的依存关系。或者,我们可以增加隐藏状态的大小H或使用更深的输入到隐藏,隐藏到隐藏,隐藏到输出转换,从而使我们的模型具有更高的表达能力。


1、可逆循环结构

用于构建RevNets的技术可以与传统的RNN模型结合,产生reversible RNN。在本文中,作者提出了GRU和LSTM的可逆版本。


Reversible GRU

对于一个标准GRU方程(省略偏差)如公式3:

为了使这个更新可逆,将隐藏状态h分成两组,,使用以下公式来更新:

将此方程称为 “Reversible GRU” 或 “RevGRU”。


Reversible LSTM
对于标准LSTM方程:

将隐藏状态分为两组,其可逆版本的更新方程如下:


此方程称为 “Reversible LSTM” 或 “RevLSTM”


通过对标准方程的改进,使得方程可逆。其思想就是,给出了下一个隐藏状态的值,能够根据可逆方程,重构出前一个隐藏状态的值。这样就不需要在内存中存储隐藏状态的值,而是在反向传播过程中重新计算先前的隐藏状态。


2、有限精度的限制

实际上,由于计算机中的数值精度,无法完美地重构隐藏状态。这些来自信息丢失的错误会随时间步长呈指数积累,导致通过反转获得的初始隐藏状态与真实的初始状态相去甚远。经过实验,文章提出了一种解决此问题的一种有效的方法。即增加一些内存使用,将前向计算中遗忘掉的信息存储在这些内存中, 然后,通过在反向计算中将这些信息恢复到先前的隐藏状态,可以实现完美的重构。


3、实验

文章在两个标准RNN任务上评估了可逆模型的性能:语言建模和机器翻译。 希望确定使用文章开发的技术可以节省多少内存,这些节省与使用理想化缓冲区可以节省的内存相比,以及这些节省的内存是否以性能为代价。


语言建模

在Penn Treebank语料库上对词级语言建模进行了一层和两层可逆模型的评估。为了公平地比较,在所有模型和数据集之间保持架构和正则化超参数相同。实验结果如表一所示。


神经机器翻译实验

总的来说,虽然Emb attention实现了最佳的内存节省,但是BLUE得分较低。而Emb + 20H在性能和内存节省之间实现了最佳平衡。

 

具有Emb + 20H attention且遗忘最多2bits的RevGRU实现了34.41的test BLEU score,优于标准GRU,同时分别在编码器和解码器中将激活内存要求降低了7.1倍和14.8倍。

 

具有Emb + 20H attention且遗忘最多3bits的RevLSTM的test BLEU score为37.23,优于标准LSTM,同时分别在编码器和解码器中将激活内存要求降低了8.9倍和11.1倍。

 

Baseline GRU和LSTM模型的测试BLEU分数分别是32.6和37.06。


4、结论

文章引入了可逆的递归神经网络作为一种减少随时间推移而被截断的反向传播的内存需求的方法。可逆模型可以达到与标准模型大致相同的性能,同时在训练过程中将内存需求减少5–15倍。我们认为可逆模型为构建更灵活,更具表现力的递归神经网络提供了一条引人注目的途径。


文章转载自北邮数据科学与商务智能实验室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论