深度解读(1)SPEECH RECOGNITION WITH DEEP RECURRENT NEURAL NETWORKS

(译)解析深度学习中一篇比较好的文章,由Alex Graves, Abdel-rahman Mohamed and Geoffrey Hinton发表关于End-to-End Deep RNN在Speech Recognition方向上的论文《SPEECH RECOGNITION WITH DEEP RECURRENT NEURAL NETWORKS》
另注:CTC(Connectionist Temporal Classification,连接主义时间分类)是一种解决从带有噪声和未格式化的序列数据越策标签值的通用方法,不要求将数据进行分割之后再送入循环网络中检测。CTC解决问题的关键思路是引入了一个空白符,以及用一个函数将循环神经网络的原始输出序列映射为最终的标签序列,消除点空白符和进行连续相同输出的合并。
摘要:递归神经网络(RNN)是顺序数据的强大模型。端到端训练方法(如连接主义时间分类)可以训练RNN用于输入 - 输出比对未知的序列标记问题。这些方法与长短期记忆RNN架构的结合已经证明特别富有成效,为草书手写识别提供了最先进的结果。然而,语音识别中的RNN性能迄今为止令人失望,深度前馈网络返回了更好的结果。本文研究了深度递归神经网络,它将深度网络中证明非常有效的多层次表示与灵活使用赋予RNN的远程上下文相结合。当训练端到端的适当规则化时,我们发现LSTM RNN在Timit 语音识别基准上的测试集误差为17.7%,据我们所知,这是最好的记录分数。
1.介绍
神经网络在语音识别方面有着悠久的历史,通常与隐马尔可夫模型相结合[1],[2]。近年来,随着深度前馈网络产生的声学建模的显着改进,它们受到了关注[3],[4]。鉴于语音是一个固有的动态过程,将循环神经网络(RNN)视为替代模型似乎很自然。HMM-RNN系统[5]也看到了最近的复兴[6],[7],但目前的表现还不如深度网络。

不是将RNN与HMM组合,而是可以训练RNN的“端到端”用于语音识别[8],[9],[10]。与HMM相比,该方法利用了更大的状态空间和更丰富的RNN动态,并避免了使用可能不正确的对齐作为训练目标的问题。长期记忆[11],具有改进记忆的RNN架构与端到端训练相结合,证明对草书手写识别特别有效[12],[13]。然而,到目前为止它对语音识别几乎没有影响。

RNN本身就具有深度,因为它们的隐藏状态是所有先前隐藏状态的函数。启发本文的问题是RNN是否也能从太空深度中获益; 这就是将多个重复隐藏层堆叠在一起,就像在传统的深层网络中堆叠前馈层一样。为了回答这个问题,我们引入深度长短记忆 RNN并评估它们的语音识别潜力。我们还对最近推出的端到端学习方法进行了改进,该方法联合训练两个独立的RNN作为声学和语言模型[10]。第2节和第3 节描述了网络架构和培训方法,第4节提供实验结果,结论性说明见第5节
在这里插入图片描述
2.循环神经网络
给定输入序列 x = (x 1 ,…,x T ),标准的递归神经网络(RNN)计算隐藏的矢量序列h=(h1,…,hT)和输出矢量序列 y =
(y 1 ,…,y T )通过迭代以下方程式从t=1到T:
在这里插入图片描述
W表示权重矩阵(例如,Wxh是输入隐藏权重矩阵),b表示偏向量(例如bH是隐藏的偏矢量)和H是隐藏层功能。
H通常是sigmoid函数的元素应用。然而,我们发现长短期记忆(LSTM)架构[11]使用专用存储单元来存储信息,更好地发现和利用远程上下文。图1示出了单个LSTM存储器单元。对于本文中使用的LSTM版本[14] H 由以下复合函数实现:
在这里插入图片描述
σ是逻辑sigmoid函数,i,f,o和c分别是输入门,遗忘门输出门和单元激活矢量,所有这些矢量都与隐藏矢量h大小相同。从单元到门向量的权重矩阵(例如,Wsi)是对角线矩阵,所以元素m在每个门向量中,只接受来自元素m的小向量。
在这里插入图片描述
在这里插入图片描述
传统RNN的一个缺点是它们只能利用先前的上下文。在语音识别中,一次性转录整个话语,没有理由不利用未来的语境。双向RNN(BRNN)[15]通过使用两个单独的隐藏层处理两个方向上的数据来做到这一点,然后将这些隐藏层转发到同一输出层。如图2所示,BRNN计算前向隐藏序列H ,后向隐藏序列H和输出序列 ÿ 通过迭代后向层 t = T. 到1,前向层来自 t = 1 至 Ť 然后更新输出层:
在这里插入图片描述
将BRNN与LSTM组合在一起可以得到双向LSTM [16],它可以在两个输入方向上访问远程上下文。

混合HMM神经网络系统最近成功的关键因素是深层架构的使用,其能够逐步建立声学数据的更高级表示。可以通过将多个RNN隐藏层堆叠在彼此之上来创建深度 RNN,其中一个层的输出序列形成下一个的输入序列。假设所有人都使用相同的隐藏层功能ñ 堆栈中的层,隐藏的矢量序列H从中迭代计算 n=1到n和t=1到T:
在这里插入图片描述
我们定义h0=x。网络的输出yt是:在这里插入图片描述
可以通过替换每个隐藏序列来实现深度双向RNN H[R 具有前向和后向序列 Hn,和 Hn,并确保每个隐藏层都接收来自以下级别的前向和后向层的输入。如果将LSTM用于隐藏层,我们将获得深度双向LSTM,这是本文中使用的主要架构。据我们所知,这是深度LSTM首次应用于语音识别,我们发现它比单层LSTM产生了显着的改进。

3.网络训练
我们专注于端到端培训,其中RNN学习直接从声学序列映射到语音序列。这种方法的一个优点是它不需要预定义(且容易出错)的对齐来创建训练目标。第一步是使用网络输出来参数化可微分布Pr(y|x)在所有可能的语音输出序列上y给出声学输入序列x。
3.1联结主义时间分类
第一种方法,称为连接主义时间分类(CTC)[8],[9],使用softmax层来定义单独的输出分布Pr(k|t)在输入序列当中的每一个补偿t。这个分布涵盖了ķ 音素加上一个额外的空白符号 ∅ 表示非输出(因此softmax层是大小 ķ+ 1)。直观地,网络决定在每个时间步都发出任何标签,还是没有标签。总之,这些决定定义了输入序列和目标序列之间的比对分布。然后,CTC使用前向 - 后向算法对所有可能的对齐求和并确定归一化概率Pr(z|x)在给定的输入序列的目标序列[8]。在语音和手写识别的其他地方也使用了类似的程序来整合可能的分割[18],[19] ; 然而,CTC的不同之处在于它完全忽略了分段,而是对单次步骤标签决策进行了总结。

用CTC训练的RNN通常是双向的,以确保每一个 Pr(k|t)取决于整个输入序列,而不仅仅是输入T。在这项工作中,我们专注于深度双向网络Pr(k|t),定义如下:在这里插入图片描述
yt|[k]是第kT元素K+1非标准化输出向量yt,N是双向级别的数量。
3.2 RNN传感器
CTC定义了仅依赖于声学输入序列的音素序列的分布 X。因此它是一种仅有声学的模型。最近的增强,称为RNN换能器 [10],将类似CTC的网络与单独的RNN相结合,该RNN预测给定先前的每个音素,从而产生联合训练的声学和语言模型。联合LM声学训练在过去被证明对语音识别有益[20],[21]。
CTC在每个输入时间步长确定输出分布,而RNN传感器确定单独的分布 P r(k|t,u)对于输入时间步长的每个组合Ť 和输出时间步 U。与CTC一样,每个分销都涵盖了ķ 音素加 ∅。直观地,网络根据输入序列中的位置和已经发出的输出“去除”输出内容。一个长度ü 目标序列z,完整的 Ťü 决策共同决定了所有可能的对齐的分布 X 和 z然后,可以使用前向 - 后向算法对其进行积分,以确定
log Pr (z|x) [10]。
在原始配方中 P r(k|t,u) 通过采用“声学”分布来定义 P r(k|t) 来自CTC网络的“语言”分布 P r(k|u)从预测网络中,然后将两者相乘并重新正规化。本文介绍的改进是将两个网络的隐藏激活转换为单独的前馈输出网络,然后使用softmax函数对其输出进行归一化以产生P r(k|t,u)。这为结合语言和声学信息提供了更丰富的可能性,并且似乎导致更好的泛化。特别地,我们发现减少了在解码期间遇到的删除错误的数量。
表示HH网络的最高前向和后向隐藏序列,以及P预测网络的隐藏序列。在每一个网络输出的t,u是通过HH实行出一个线性层来迭代出向量lt,然后再反馈lt和pu,到tanh隐藏层来迭代出htu,最终反馈htu到大小为K+1的softmax层来决定P r(k|t,u):
在这里插入图片描述
yut[k]是长度为K+1的第kth个未经证实的输出向量元素。为简单起见,我们将所有非输出层约束为相同的大小(|ht|=|ht|=|pu|=|lt|=|htu|);但是它们可以独立的变化。
可以从随机初始权重训练RNN换能器。然而,当使用预训练的CTC网络和预训练的下一步预测网络的权重进行初始化时,它们看起来效果更好(因此只有输出网络从随机权重开始)。在训练期间,网络使用的输出层(以及所有相关的权重)在重新训练期间被移除。在这项工作中,我们预先录制了关于音频训练数据的语音转录的预测网络; 然而,对于大规模应用,在单独的文本语料库上进行预训练会更有意义。
3.3 解码
可以使用波束搜索[10]对RNN换能器进行解码,以产生n个最佳候选转录列表。在过去,CTC网络已经使用称为前缀搜索的最佳优先解码形式进行解码,或者通过在每个时间步骤简单地获取最活跃的输出[8]。然而,在这项工作中,我们利用与换能器相同的波束搜索,并修改输出标签概率P r(k|t,u) 不要依赖以前的输出 P r(k|t,u)= P r(k|t))。我们发现波束搜索比CTC的前缀搜索更快更有效。注意,来自换能器的n-最佳列表最初按长度归一化对数概率日志Pr 进行排序(y)/ | y |; 在当前的工作中,我们省去了规范化(只有当存在比插入更多的删除时才有帮助)并进行排序P r( y)
3.4 正则
正规化对于RNN的良好性能至关重要,因为它们的灵活性使它们容易过度拟合。本文使用了两个常规器:早期停止和重量噪声(在训练期间向网络权重添加高斯噪声[22])。每个训练序列增加一次重量噪声,而不是每个时间步。在减少传输参数[23],[24]所需的信息量的意义上,权重噪声倾向于“简化”神经网络,这改善了泛化。

4.实验
在TIMIT语料库上进行音素识别实验[25]。移除了所有SA记录的标准462扬声器组用于训练,并且使用50个扬声器的单独开发组用于早期停止。报告了24个扬声器核心测试集的结果。使用基于傅里叶变换的滤波器组对音频数据进行编码,该滤波器组具有分布在梅尔级上的40个系数(加上能量)以及它们的第一和第二时间导数。因此,每个输入向量的大小为123.对数据进行归一化,使得输入向量的每个元素在训练集上具有零均值和单位方差。所有61个音素标签都在训练和解码期间使用ķ= 61),然后映射到39个类进行评分[26]。请注意,所有实验仅运行一次,因此随机重量初始化和重量噪声引起的方差未知。

如表1所示,评估了9个RNN,沿着三个主要维度变化:使用的训练方法(CTC,传感器或预训练的传感器),隐藏水平的数量(1-5),以及每个隐藏的LSTM细胞的数量层。双向LSTM用于除CTC-31-500h-tanh之外的所有网络,其具有tanh单位而不是LSTM单元,并且CTC-31-421h-uni,其中LSTM层是单向的。所有网络都使用随机梯度下降进行训练,具有学习率10- 4,动量0.9和从中均匀绘制的随机初始权重 [ - 0.1 ,0.1 ]。除了CTC-31-500h-tanh和PreTrans-31-250h之外的所有网络首先进行了无噪声训练,然后从开发集上的最高对数概率开始,用高斯权重噪声重新训练(σ= 0.075 )直到开发集上最低的音素错误率。使用CTC-31-250h的权重初始化PreTrans-31-250h,以及音素预测网络(其也具有250个LSTM细胞的隐藏层)的权重,两者都在没有噪声的情况下训练,用噪声训练。 ,并在最高对数概率点停止。从这一点开始训练PreTrans-31-250h并添加噪音。CTC-31-500h-tanh完全没有重量噪音训练,因为它没有加入噪音。波束搜索解码用于所有网络,波束宽度为100。
深度网络的优势是显而易见的,随着隐藏级别的数量从1增加到5,CTC的错误率从23.9%下降到18.4%。四个网络CTC-31-500h-tanh,CTC-l1-622h,CTC-31-421h-uni和CTC-31-250h都具有大致相同的权重数,但给出了截然不同的结果。我们可以从中得出的三个主要结论是(a)LSTM比tanh更好地完成这项任务,(b)双向LSTM比单向LSTM略有优势,(c)深度比层大小更重要(这支持以前的发现对于深层网络[3])。虽然当重量随机初始化时换能器的优点很小,但是当使用预训练时它变得更加显着。
表1 TIMIT音素识别结果。“Epochs”是收敛前通过训练集的次数。“PER”是核心测试集上的音素错误率。
在这里插入图片描述
图3 输入深CTC RNN的灵敏度。热图(顶部)显示相对于滤波器组输入(底部)以红色打印的“ah”和“p”输出的导数。TIMIT地面实况分割如下所示。请注意,灵敏度延伸到周围的区段; 这可能是因为CTC(缺乏明确的语言模型)试图从声学数据中学习语言依赖性。
在这里插入图片描述
5.结论和未来的工作
我们已经证明,深度双向长短期内存RNN与端到端训练和权重噪声的结合为TIMIT数据库中的音素识别提供了最先进的结果。显而易见的下一步是将系统扩展到大词汇量语音识别。另一个有趣的方向是将频域卷积神经网络[27]与深LSTM 结合起来。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值