本篇博客主要是参考谷歌2015年的一篇文章《ACOUSTIC MODELLING WITH CD-CTC-SMBR LSTM RNNS》。
什么叫output delay(输出延迟)
在训练传统的HMM-DNN声学模型时,为了利用上下文信息,我们通常会做拼帧的操作,也就是除了考虑当前帧,还会考虑前面的N帧,未来的M帧。因为我们要等到未来的M帧说完才能输出当前帧的预测值,就会有输出延迟。比如考虑未来的5帧,帧移是10ms,那么输出延迟就是50ms。
CTC也会产生输出延迟,但它的延迟时间是不确定的。为什么会产生不确定的输出延迟呢?论文原话是:
With CTC, there is no time alignment supervision since the network is constantly integrating over all possible alignments. This means that the LSTM can vary the delay between acoustics and outputs, using an arbitrarily large future context if that helps optimizing the total sequence probability。
个人理解:因为训练CTC的时候我们不需要每一帧都要输出某个确定的label(比如可以输出blank)。也就是说不需要强制对齐,只要对最大化目标函数有利,延迟可以是任意的。
这种不确定的延迟如下图所示:
首先解释下这张图:
- 横坐标下的区间表示用DNN进行强制对齐的结果。比如我在下图手动画的两红竖,表示在这个区间内对应的输出应该是m。
- 图中的尖峰表示CTC的输出结果。从图中可以看出,第一个m的输出(从左开始的第一个蓝色尖峰)比实际(DNN的对齐结果)延迟了25ms。
解决方法
输出延迟会影响我们的解码速度,所以需要对延迟做限制。具体怎么做呢,论文原话是:
Delay can be limited by restricting the set of search paths used in the forward-backward algorithm to those in which the delay between CTC labels and the “ground truth” alignment does not exceed some threshold。
个人理解:就是以对齐的label作为标准,在前后向变量计算的过程中只选择延时在一定范围内的路径。比如我们限制输出延迟在60ms以内,当前帧的对齐label是m,那么前后向计算的时候我们就不会考虑<b>, <b>,<b>,<b>,<b>,<b>,m这样的路径,因为m出现在了当前帧往后的第7帧,超过了60ms的时间限制。(这里<b>表示blank)
那么限制延迟时间会对wer产生什么样的影响呢,作者做了下面几组实验:
实验结果如下图第二列所示,基本上限制得越狠,wer下降得越多。但加上区分性训练准则sMBR之后,这种影响几乎可以消除了(如红圈所示):