(1) A Context-Sensitive-Chunk BPTT Approach to Training Deep LSTM/BLSTM Recurrent Neural Networks for Offline Handwriting Recognition网络
(2) Training Deep Bidirectional LSTM Acoustic Model for LVCSR by a Context-Sensitive-Chunk BPTT Approach测试
(3) Improving Latency-Controlled BLSTM Acoustic Models for Online Speech Recogintion3d
前言 众所周知,BLSTM是双向的LSTM,它能够同时兼容上下文的信息,从而在通常序列任务上的表现很好。可是BLSTM有一个很致命的弱点,那就是由于有逆向LSTM的存在,它须要有后文的后验,使得它没法在实时的序列任务上也有好的表现。基于实时任务的需求,出现了两种BLSTM的变体——CSC-BLSTM和LC-BLSTMblog
CSC-BLSTM结构全名——Context-Sensitive-Chunk Bidirectional Long Short-Term Memory,是BLSTM的第一种改进版本。请看结构图:ip
CSC-BLSTM首先把序列按照图示的方法分割成多组chunk,除了首尾位置,其余位置处的都是由Nl+Nc+Nr构成,分割的大小事先给定,通常选作30帧+60帧+30帧的模式。get
其核心思想在于,Nl用来初始化Nc的前向细胞层状态,Nr用来初始化Nc的后向细胞层状态。Nl和Nr不参与偏差反向传播。以下图:it
很显然,CSC-BLSTM的这种结构改进能够减少实时任务的延迟,用不着整段话都输入完毕才有结果。可是从总体上看,它是以牺牲计算量为代价的。由于与BLSTM相比,它多出了Nl和Nr上的计算。在此基础之上,为了减小这种计算量,又出现了更加简化了的LC-BLSTM。io
LC-BLSTM结构全名——Latency-Controlled Bidirectional Long Short-Term Memory,它改进了CSC-BLSTM。请看结构图:基础
能够发现,相比于CSC-BLSTM,LC-BLSTM取消了Nl,只保留了Nc+Nr。可是如此在计算上必然有差别。cli
原来,LC-BLSTM的计算也并不复杂,同CSC-BLSTM同样,Nr用来初始化Nc的后向细胞层状态。可是,Nc的前向细胞层状态直接由它的前一个Nc的输出状态获得。这样,相比于CSC-BLSTM,LC-BLSTM避免了Nl的计算量。
But!!!很不幸,经过实验发现,为了保证准确率,LC-BLSTM必需要保证Nr划分的足够大,好比在原论文中,Nc=22的状况下,Nr须要有21,这几乎使得Nr须要有Nc一样的大小。在Nc=Nr=30的状况下,LC-BLSTM的计算量是传统BLSTM的两倍。
经过上述分析,LC-BLSTM的表现依然很差。阿里的研究人员改进了这个结构。他们总结LC-BLSTM的结构,多出来的计算量就在于Nr,可是Nr的做用无非两点:
因而做者分别采用了两种简化的网络结构代替Nr的BLSTM结构。分别是LC-BLSTM-FABDI和LC-BLSTM-FABSR
首先对于时间轴上正向移动的LSTM,去掉了Nr部分的计算。而对于时间轴上反向移动的LSTM,Nr部分的计算主要是为Nc提供cell的初始状态,做者简化了这部分的计算,使用正向全链接来代替LSTM,将f()的输出取平均后做为Nc的初始状态。
首先对于时间轴上正向移动的LSTM,一样去掉了Nr部分的计算。另外做者发现对于BLSTM模型,时间轴上反向传播的LSTM不如时间轴上正向传播的LSTM重要,所以使用简单RNN模型来代替时间轴上反向传播的LSTM。
但RNN会有梯度爆炸的问题,因此对其进行strict gradient-clipping。同时为了利用将来的信息,加入了target delay。
做者在320小时的Switchboard数据集上进行测试,在不影响wer的状况下,这个两种方法的解码速度分别相对提高40%和27%。