感想
介绍
贡献
2. 大量标记的训练集
3. 语音识别的计算规模
模型结构
网络的输入是规范化声音片段的log能量谱,用20ms的窗口计算得到的;输出是每个语言的字母表。在每个输出时间步t,RNN做了一个预测,P(lt|x),lt是一个字符或者字母或者一个空白符号。在英文中,lt属于{a,b,c…,z, 间隔(space),撇号(apostrophe),空白(blank)},我们加了间隙代表每个单词的边界。对于普通话系统,网络的输出是简体中文字符,有6000个字符,其中包括罗马字母,。
CTC模型是用一个更大的文本集合进行训练的,我们使用一个特别的定向搜索(beam search)去找转录y,使得下式最大化:
Wc(y)是转录y中英文或者中文的数量,α控制着语言模型和CTC网络的相对贡献。权重β鼓励转录出更多的字。这些参数是在development set集合上进行微调的。
模型训练用的是SGD+ Nesterov momentum,mini batch设置的是512句,学习率是从[1*10^-4,6*10^-4]取得的,在每次迭代后以一个常量因子1.2退火(详细请见论文,我只能帮到这儿了)。Momentum设置的是0.99。如果规范的梯度(norm of the gradient)超过了400这个阈值,我们就将其置为400(这是为了防止梯度爆炸的问题,论文算法伪代码在下面)
对于英文
英文模型有2层2Dj卷积,随后接了3层无向循环层,和每层有2560个GRU cells,随后又接了一个lookahead convolution层,T的值设置为80,用BatchNorm和SortaGrad进行训练。
组成部分的详细细节
Batch Normalization for Deep RNNs
Batch normalization只加在RNN的垂直连接上,对于每一个隐藏单元我们都计算了其均值和方差,在一个mini batch中。
SortaGrad
Frequency Convolutions
实验结果表明,二维的卷积能提升在噪声数据上提升性能。在development set上,我们用三层二维卷积达到了23.9%的错误率,
Lookahead Convolution and Unidirectional Models
Didirectional RNN模型很难用于在线,低延迟的场景中,因为他们不能流式转录过程,因为语音数据是从用户来的,常规的前向循环比双向模型表现效果差,因此,一些未来上下文的信息对识别性能表现的提高是至关重要的。因此我们需要建立一个无向模型,我们提出了一个特别的层,叫做lookahead convolution。如下
这层通过线性的结合每个神经元第t时间步的激励到未来(future,实在不知道怎么翻译通顺,见谅),使得我们可以控制未来所需上下文的数量。
Rt是时间步t,lookahead layer是Wi,j组成的的矩阵,d是上一层的神经元的数量。我们把lookahead convolution放在所有循环层的上面。
这样可以流化所有在lookahead convolution下面计算,以一个比较好的间隔(granularity)。
系统优化
我们的网络有几百万的参数,一次训练实验包含几十个单精度exaFLOPS, 我们开发了一个基于高性能计算设施的高度优化的训练系统。即使现在训练深度网络都是并行的。
但是可拓展性其可拓展性常常成为瓶颈,特别的,我们专门定制了OpenMPI的All-Reduce代码,用于多多节点的GPU的梯度求和,我们实现了一个针对GPU加速的CTC,
并且使用了定制的内存分配器(custom memory allocators)。对于每个节点,这些技术使我们维持了整体45%的理论峰值性能。
注意:exaFLOPS
exa : 用于计量单位,表示10的18次方,表示百亿亿次
FLOPS= FLoating-point Operations Per Second,每秒浮点运算次数(巨型计算机的计算速度单位,即1秒内浮点运算的次数)。
训练数据
大规模深度学习系统需要大量发的标记的训练数据,训练我们的英文模型,我们使用了11940小时的语音数据,约800,0000句话,
中文系统用了9400小时的标记语音数据,约1100,0000句。
数据构造
部分英文和中文数据集是从未处理的数据而来,里面有长语音片段,和一些噪声转录。为了切分这些长语音片段,我们把语音和文稿对齐,对齐计算公式:这本质上是一个Viterbi算法对齐,使用了用CTC进行训练的RNN模型。CTC只保证整个对齐,而不能保证单个的精确对齐。但是我们发现当使用双向RNN以后,
这个方法可以精确单个对齐。
为了过滤掉错误的文稿转录片段,我们使用了一个有以下特征的分类器:CTC损失(the raw CTC cost),CTC损失被序列的长度归一化,序列长度到文稿长度的比率,
文稿中字的数量,文稿中字符的数量。我们用众包的方式建立这些数据集。对于英文集合,当我们通过这种方式重新得到超过50%的训练样例的时候,
我们发现错误率从17%降至5%。另外,我们还给数据集加了一些噪声,SNR在0dB到30dB之间。
如上表,常规的 developments sets和有噪声的development sets,随着不断增加其数据集的比例的结果,结果是WER,越低越好。
模型有9层,2层2D卷积,7个循环层,有68M参数。样本都是在完整数据集里随机采样,模型训练达到20 epoch,用了early-stopping防止过拟合,
WER降了接近40%。
实验结果
上图英文语音识别系统和众包的人类水平的性能对比,数值为WER,越低越好。
上图是不同RNN结构的比较,dev set和test set都是内部的语料库,每个模型大约有80,0000个参数。
上图是普通话识别系统和人类的对比,前一个100句语料,是由一个委员会的5位中国人(a committee of 5 Chinese speakers)标记的。
第二个是250句语料是由一个职业转译的人标记的。
部署
单词
Benchmark n 基准,参照; 标准检查程序; 水准标; vt. 检测(用基准问题测试);
Transcription 抄本; 抄写; 录音; 翻译;
Granularity 间隔尺寸,粒度;
参考文献
[1]. Exaflops. https://baike.baidu.com/item/exaflops/8335270?fr=aladdin
[2] Razvan Pascanu, Tomas Mikolov, YoshuaBengio:On the difficulty of training recurrent neural networks. ICML (3) 2013:1310-1318
[3] Dario Amodei, Rishita Anubhai, EricBattenberg, Carl Case, Jared Casper, Bryan Catanzaro, Jingdong Chen, MikeChrzanowski, Adam Coates, Greg Diamos, Erich Elsen, Jesse Engel, Linxi Fan,Christopher Fougner, Awni Y. Hannun, Billy Jun, Tony Han, Patrick LeGresley,Xiangang Li, Libby Lin, Sharan Narang, Andrew Y. Ng, Sherjil Ozair, RyanPrenger, Sheng Qian, Jonathan Raiman, Sanjeev Satheesh, David Seetapun, ShubhoSengupta, Chong Wang, Yi Wang, Zhiqian Wang, Bo Xiao, Yan Xie, Dani Yogatama,Jun Zhan, Zhenyao Zhu:
Deep Speech 2 : End-to-End SpeechRecognition in English and Mandarin. ICML 2016: 173-182