Train RNN as fast as CNN
@(NLP)[cuDNN-LSTM, SRU]
ABSTRACT
作者提出了一个简单循环单元的架构(SRU),能够轻易的实现并行化。SRU像CNN一样快,比优化后的LSTM实现快5到10倍。
In SRU, the majority of computation for each step is independent of the recurrence and can be easily parallelized. SRU is as fast as a convolutional layer and 5-10x faster than an optimized LSTM implementation.
Architecture
左边是通用的RNN结构,右边是SRU
- 在传统的结构中,每次输入step xt x t , t=1,…,n t = 1 , … , n 依赖于前一步。这阻碍了并行化。
- SRU的设计,使得处理输入的过程能与其他输入独立(大灰块),用相对轻量级的计算做递归组合(小灰块)。主要的计算(虚线框内)能被轻易的并行化。
Average processing time
使用cuDNN LSTM和字级别的2D卷积,提出的SRU在32个样本每一批的平均处理时间(毫秒)
- D:特征维数
- K:特征宽度
- l l :每一个序列的令牌数
METHOD
Formula
SRU的基础形式包含一个遗忘门,给出一个在t时间给出
输入,我们可以计算一个装换 x˜t x ~ t 和一个遗忘门 ft f t
x˜t=Wxt x ~ t = W x t
ft=σ(Wfxt+bf) f t = σ ( W f x t + b f )
计算只依赖 xt x t ,使得能让所有的时间步并行化, 遗忘门能调制用来产生输出的状态的