摘要
许多现实世界的序列学习任务,都要求从带噪且未分段的输入数据中预测标签序列。例如在语音识别中,需要把声学信号转写为词或子词单元。循环神经网络(RNN)是强大的序列学习器,看起来很适合此类任务。然而,由于它们需要预先分段的训练数据,还需要后处理才能把网络输出转成标签序列,其适用范围一直受限。本文提出一种新方法,可训练 RNN 直接为未分段序列打标签,从而同时解决这两个问题。TIMIT 语音语料库上的实验表明,该方法优于基线 HMM 和混合 HMM–RNN。
1. 引言
为未分段的序列数据打标签,是现实序列学习中普遍存在的问题。在感知任务里尤其常见,例如手写识别、语音识别和手势识别:带噪的实值输入流需要被标注为由字母或词等离散标签组成的字符串。
当时,隐马尔可夫模型(HMM;Rabiner,1989)、条件随机场(CRF;Lafferty 等,2001)及其变体等图模型,是序列标注的主流框架。这些方法虽已在许多问题上取得成功,却有几项缺点:(1)通常需要大量任务特定知识,例如设计 HMM 的状态模型或选择 CRF 的输入特征;(2)为使推断可处理,必须显式作出依赖关系假设,而这些假设往往值得质疑,例如 HMM 的观测独立假设;(3)标准 HMM 的训练是生成式的,而序列标注本质上是判别式任务。
另一方面,循环神经网络除输入与输出表示的选择外,不需要有关数据的先验知识。它们可以进行判别式训练,其内部状态为时间序列建模提供了强大而通用的机制;此外,它们通常对时间噪声和空间噪声具有鲁棒性。
然而,此前还无法把 RNN 直接用于序列标注。问题在于,标准神经网络目标函数是对训练序列中的每个位置分别定义的;换言之,RNN 只能被训练成进行一系列彼此独立的标签分类。这意味着训练数据必须预先分段,网络输出也必须经过后处理才能得到最终标签序列。
当时,在序列标注中使用 RNN 最有效的方式,是在所谓混合方法中将其与 HMM 结合(Bourlard & Morgan,1994;Bengio,1999)。混合系统用 HMM 建模数据的长程序列结构,用神经网络提供局部分类。HMM 组件可以在训练时自动分割序列,并把网络分类结果转换成标签序列。不过,这类系统除了继承前述缺点之外,
还没有充分发挥 RNN 在序列建模方面的潜力。
本文提出一种使用 RNN 标注序列数据的新方法:不再需要预先分段的训练数据和经过后处理的输出,并在单一网络架构内建模序列的所有方面。基本思想是,把网络输出解释为在给定输入序列条件下、对所有可能标签序列的概率分布。由此可导出一个直接最大化正确标注概率的目标函数。由于该目标函数可微,网络随后可以用标准的时间反向传播训练(Werbos,1990)。
下文把对未分段数据序列进行标注的任务称为时间分类(temporal classification;Kadous,2002),把为此使用 RNN 的方法称为连接时序分类(connectionist temporal classification,CTC)。与之相对,把对输入序列每个时间步或帧独立打标签称为逐帧分类(framewise classification)。
下一节给出时间分类的数学形式,并定义本文使用的误差度量。第 3 节说明使 RNN 能作为时间分类器使用的输出表示;第 4 节解释如何训练 CTC 网络;第 5 节在 TIMIT 语音语料库上比较 CTC、混合系统与 HMM;第 6 节讨论 CTC 与其他时间分类器的一些关键差异并提出未来方向;第 7 节作总结。
2. 时间分类
设 是从固定分布 中抽取的一组训练样本。输入空间 是所有由 维实值向量组成的序列集合;目标空间 是有限标签字母表 上的全部序列。一般把 中的元素称为标签序列或标注。每个样本由一对序列 构成。目标序列 至多与输入序列 一样长,即 。由于输入序列和目标序列通常长度不同,事先并不存在一种显然的对齐方式。
目标是利用 训练时间分类器 ,使其按某个任务特定的误差度量对未见输入序列进行分类,并把该误差最小化。
2.1 标签错误率
给定与 不相交的测试集 ,把时间分类器 的标签错误率(label error rate,LER)定义为其分类结果与 上目标之间的归一化编辑距离:
其中 是 中目标标签的总数, 是序列 与 的编辑距离,即把 变成 所需插入、替换和删除操作的最少次数。
对于语音识别或手写识别等以降低转写错误率为目标的任务,这是一个自然的度量。
3. 连接时序分类
本节说明一种输出表示,使循环神经网络可以用于 CTC。关键步骤是把网络输出变换为标签序列上的条件概率分布;随后,对给定输入序列选择概率最高的标注,就能把网络用作分类器。
3.1 从网络输出到标注
CTC 网络的 softmax 输出层(Bridle,1990),比标签集合 中的标签数多一个单元。前 个单元的激活值,被解释为在各时刻观察到相应标签的概率;额外单元的激活值,是观察到 blank(空白,即没有标签)的概率。这些输出共同定义了所有标签序列与输入序列之间全部可能对齐方式的概率。把同一标签序列的不同对齐方式的概率相加,就得到该标签序列的总概率。
更形式化地,对长度为 的输入序列 ,把具有 个输入、 个输出和权重向量 的循环神经网络记作连续映射 。令 ,并用 表示时刻 输出单元 的激活值。把它解释为在时刻 观察到标签 的概率,就在字母表 上所有长度为 的序列集合 上定义了分布:
逐帧网络与 CTC 网络对同一段语音信号进行分类。彩色曲线是输出激活值,对应在各时刻观察到不同音素的概率。CTC 网络只预测音素序列,通常表现为由 blank(空预测)分隔的一串尖峰;逐帧网络则试图把音素与人工分段的竖线对齐。逐帧网络即便预测出正确音素,只要分段边界错位也会受罚,例如图中的“dh”。当一个音素总是紧邻另一个音素时,例如闭塞音“dcl”与塞音“d”,CTC 往往用相邻的双尖峰一起预测它们。CTC 的标注结果可以直接沿尖峰读出,而逐帧网络的预测在使用前仍需后处理。
从现在起,把 中的元素称为路径,记为 。
式(2)隐含一个假设:给定网络内部状态,不同时刻的网络输出条件独立。为保证这一点,要求输出层不存在指向自身或网络内部的反馈连接。
下一步定义多对一映射 ,其中 是原标签字母表 上长度不超过 的所有可能标注。映射的做法是从路径中删除所有 blank 和重复标签,例如 。直观上,只有当网络从“无标签”切换为某标签,或从一个标签切换到另一个标签时,才输出新标签。最终,用 把给定标注 的条件概率定义为所有对应路径概率之和:
3.2 构造分类器
按上述形式,分类器应输出给定输入序列下概率最高的标注:
借用 HMM 的术语,把寻找这个标注的任务称为解码。遗憾的是,作者不知道对该系统普遍可行且计算可处理的精确解码算法,但下面两种近似方法在实践中效果良好。
第一种方法是 best path decoding(最佳路径解码),它假设概率最高的路径对应概率最高的标注:
其中
最佳路径解码很容易计算,因为只需把每个时间步激活值最大的输出串接起来即可得到最优路径;但它不能保证找到概率最高的标注。
第二种方法是 prefix search decoding(前缀搜索解码)。它修改第 4.1 节的 forward-backward 算法,从而高效计算标签前缀逐次扩展后的概率。
如果时间足够,前缀搜索总能找到概率最高的标注;但它必须扩展的前缀数上限随输入序列长度指数增长。当输出分布在众数附近足够尖锐时,它仍可在合理时间内结束,不过本文实验还需要额外启发式方法才能实际使用。
在标签字母表 X、Y 上进行前缀搜索解码。每个节点要么结束其父节点的前缀(e),要么扩展该前缀。扩展节点上方的数值,是以该前缀开头的所有标注的总概率;结束节点上方的数值,是在其父节点处结束的那一个标注的概率。每轮都探索当前剩余前缀中概率最高者的扩展。当某个完整标注(图中为 XY)的概率高于所有剩余前缀时,搜索结束。
观察到训练后的 CTC 网络输出往往形成一串由高概率 blank 分隔的尖峰,作者把输出序列切成若干很可能以 blank 开始和结束的片段:在 blank 概率高于某阈值的位置选择边界,分别计算每个片段中概率最高的标注,再把各片段拼接成最终分类结果。
实践中,这个启发式使前缀搜索表现良好,并且通常优于最佳路径解码;但它也会在某些情形下失败,例如同一标签在片段边界两侧都被弱预测时。
4. 训练网络
前文已经给出让 RNN 可用于 CTC 的输出表示。下面推导用于梯度下降训练 CTC 网络的目标函数。
目标函数来自最大似然原则:最小化该目标,就等价于最大化目标标注的对数似然。这与标准神经网络目标函数背后的原则相同(Bishop,1995)。给定目标函数及其对网络输出的导数,便可用时间反向传播计算权重梯度,再使用当时已有的任意基于梯度的神经网络优化算法训练网络(LeCun 等,1998;Schraudolph,2002)。
首先介绍计算最大似然函数所需的算法。
4.1 CTC Forward-Backward 算法
需要一种高效方法来计算单个标注的条件概率 。乍看式(3)会很棘手,因为它要对给定标注对应的全部路径求和,而这类路径通常非常多。
幸运的是,可以用类似 HMM forward-backward 算法(Rabiner,1989)的动态规划解决。核心思想是:把与一个标注对应的路径总和,拆成与该标注各个前缀对应的路径上的迭代求和,再用递归的 forward 变量和 backward 变量高效计算这些迭代。
对长度为 的序列 ,分别用 与 表示它的前 个和后 个符号。对标注 ,定义 forward 变量 为在时刻 得到 的总概率:
可以由 和 递归计算。
为允许输出路径中出现 blank,构造修改后的标签序列 :在首尾以及每对标签之间插入 blank,因此其长度为 。计算 各前缀的概率时,允许 blank 与非 blank 标签之间的所有转移,也允许任意两个不同非 blank 标签之间的转移。所有前缀都可以从 blank 或 的首符号 开始。
Forward 变量的初始化规则为:
递推规则为:
其中
对标注“CAT”应用 forward-backward 算法的示意图。黑色圆表示标签,白色圆表示 blank,箭头表示允许的转移。Forward 变量沿箭头方向更新,backward 变量则逆箭头方向更新。
注意,当 时 ,因为这些状态剩余的时间步不足以完成序列,对应 Figure 3 右上角未连接的圆;此外, 时也有 。
标注 的概率,是时刻 处,修改后序列 带末尾 blank 与不带末尾 blank 的总概率之和:
类似地,把 backward 变量 定义为时刻 得到 的总概率:
Backward 变量的初始化为:
递推规则为:
其中
注意,当 时 ,对应 Figure 3 左下角未连接的圆;当 时同样为零。
实际计算中,上述递推会很快在任何数字计算机上发生数值下溢。一种避免方法是缩放 forward 与 backward 变量(Rabiner,1989)。定义
并在式(6)、(7)的右端用缩放后的 代替 ,forward 变量就能保持在可计算范围内。对 backward 变量同样定义
并在式(10)、(11)的右端作相同替换。
计算最大似然误差需要目标标注概率的自然对数。使用缩放变量后,它具有特别简单的形式:
4.2 最大似然训练
最大似然训练的目标,是同时最大化训练集中所有正确分类的对数概率。在本文问题中,这等价于最小化:
要用梯度下降训练网络,需要对网络输出求式(12)的导数。由于训练样本相互独立,可以分别考虑:
关键在于:对标注 ,给定 与 时,forward 与 backward 变量之积,是所有与 对应、并在时刻 经过符号 的路径概率:
重排并代入式(2),得到:
由式(3)可知,这一项就是总概率 中,由时刻 经过 的路径所贡献的部分。因此对任意 ,可以对所有 求和:
对 求导时,只需考虑时刻 经过标签 的路径。由于同一标签(或 blank)在一个标注中可能重复出现多次,定义标签 的位置集合 ,它可以为空。于是对式(14)求导可得:
又因为
所以令 ,并把式(8)、(15)代入式(13),即可得到目标函数的导数。
最后,要通过 softmax 层反向传播梯度,需要目标函数对未归一化输出 的导数。采用第 4.1 节的缩放后:
其中
式(16)就是训练时网络接收到的“误差信号”,见 Figure 4。
训练期间 CTC 误差信号的演化。左列显示同一序列在不同训练阶段的输出激活,虚线是 blank 单元;右列显示相应误差信号。横轴上方的误差会增大相应输出激活,下方的误差则会减小它。(a)起初网络权重是很小的随机值,误差仅由目标序列决定;(b)网络开始作出预测,误差逐渐局部化到这些预测附近;(c)网络强烈预测正确标注,误差几乎消失。
5. 实验
作者在现实时间分类问题——TIMIT 语音语料库上的音素标注——比较了 CTC、HMM 和 HMM–RNN 混合系统。更具体地说,任务是为 TIMIT 测试集中的话语标注音素序列,使第 2.1 节定义的标签错误率尽可能低。
为公平比较,CTC 与混合网络使用相同的循环网络架构:双向长短期记忆网络(BLSTM;Graves & Schmidhuber,2005)。BLSTM 把 LSTM(Hochreiter & Schmidhuber,1997)跨越长时间间隔的能力,与双向 RNN(Schuster & Paliwal,1997)同时访问过去和未来上下文的能力结合起来。作者强调,也可以使用其他架构;选择 BLSTM 是因为标准双向 RNN 和单向网络在同一任务上的结果更差。
5.1 数据
TIMIT 包含带人工分段音素转写的英语提示语音,共有 61 种不同音素,训练集和测试集分别包含 4620 与 1680 条话语。随机抽取训练话语的 (184 条)作为验证集,用于混合系统与 CTC 实验的 early stopping。音频被预处理为 10 ms 帧,相邻帧重叠 5 ms;从 26 个 filter-bank 通道计算 12 个 MFCC,并加入对数能量以及所有系数的一阶差分,使每帧总共得到 26 维系数。每个系数分别按训练集统计量归一化为均值 0、标准差 1。
5.2 实验设置
CTC 网络使用带 peephole 与 forget gate 的扩展 BLSTM 架构(Gers 等,2002);正向和反向隐藏层各有 100 个 block;cell 的输入与输出激活使用双曲正切函数,gate 使用取值范围为 的 logistic sigmoid。
隐藏层与自身及输出层全连接,并接收来自输入层的全连接。输入层大小为 26;softmax 输出层大小为 62,即 61 个音素类别加 1 个 blank;网络总权重数为 114,662。
训练采用时间反向传播和 online gradient descent,即每个训练样本后更新一次权重;学习率为 ,momentum 为 。每个样本开始时把网络激活重置为 0。前缀搜索解码的 blank 概率阈值设为 。权重用区间 上的均匀随机分布初始化;训练时向输入加入标准差 的 Gaussian noise 以改善泛化。
基线 HMM 与混合系统按 Graves 等(2005)实现。简言之,使用 HTK Toolkit 训练并测试 context-independent 与 context-dependent 的三状态 left-to-right HMM。观测概率由 Gaussian mixture 建模,并为任务选择最佳 Gaussian 数量和 insertion penalty。系统不含语言学信息,也不含部分音素序列概率,总参数超过 900,000。
脚注 1:HTK Toolkit 的原始网址为 http://htk.eng.cam.ac.uk/。
混合系统由 HMM 与 BLSTM 网络组成,使用基于 Viterbi 的 forced alignment 训练(Robinson,1994)。用训练集正确转写初始化 61 个单状态模型的转移概率和先验概率;网络输出概率除以先验概率,得到供 HMM 使用的似然;insertion penalty 同样按任务性能选择。
混合系统的 BLSTM 架构与参数和 CTC 相同,但有三处例外:(1)学习率为 ;(2)注入噪声标准差为 ;(3)输出层为 61 个单元,不含 blank,而非 62 个。两个系统的噪声和学习率分别通过粗略参数搜索设定。混合网络共有 114,461 个权重,HMM 另增加 183 个参数。在 weighted-error 实验中,误差信号被缩放,使长音素与短音素具有相同权重(Robinson,1991)。
| 系统 | LER |
|---|---|
| Context-independent HMM | 38.85% |
| Context-dependent HMM | 35.21% |
| BLSTM/HMM | 33.84 ± 0.06% |
| Weighted error BLSTM/HMM | 31.57 ± 0.06% |
| CTC(best path) | 31.47 ± 0.21% |
| CTC(prefix search) | 30.51 ± 0.19% |
5.3 实验结果
Table 1 表明,采用前缀搜索解码时,CTC 优于基线 HMM 识别器,也优于使用相同 RNN 架构的 HMM–RNN 混合系统;前缀搜索相对最佳路径解码还有小幅改进。
需要注意,混合系统的最佳结果依赖 weighted error signal。CTC 不需要这种启发式,因为它的目标函数只取决于标签序列,而不取决于标签时长或分段。
输入噪声对 CTC 泛化能力的影响比对混合系统更大,而且 CTC 的最优噪声水平更高。
6. 讨论与未来工作
CTC 与其他时间分类器的一个关键差别,是它不显式分割输入序列。这带来几项好处:无需定位本来就含糊的标签边界,例如语音或手写中的边界;如果多个标签常常一起出现,也允许把预测聚成一组。无论如何,如果任务只需要标签序列,确定分段本身就是对建模能力的浪费。对确实需要分段的任务,例如蛋白质二级结构预测,使用 CTC 看起来会有问题;不过 Figure 1 表明,CTC 自然倾向于把每个标签预测
与序列中的相应部分对齐。因此,对于关键词检测这类只需近似分段的任务,它应当仍然适用。
CTC 的另一个显著特征,是它不显式建模标签之间的依赖关系。这与图模型不同,后者通常假设标签形成 k 阶 Markov chain。尽管如此,CTC 会隐式建模标签间依赖,例如把经常共同出现的标签预测为相邻双尖峰。
一种非常通用的结构化数据处理方式,是建立时间分类器层级:某一层的标注(例如字母)成为下一层标注(例如词)的输入。层次化 CTC 的初步实验结果令人鼓舞,作者计划继续探索这一方向。
最大似然训练中的良好泛化总是很难,而 CTC 似乎尤其如此。作者未来将继续探索 weight decay、boosting 与 margin maximisation 等降低过拟合的方法。
7. 结论
本文提出一种使用 RNN 进行时间分类的新颖通用方法。它自然融入现有神经网络分类器框架,并由相同的概率原理推导而来。它消除了对预先分段数据的需要,使网络能够直接针对序列标注训练;而且无需任何任务特定知识,就在现实时间分类问题上优于 HMM 与 HMM–RNN 混合系统。
致谢
作者感谢 Marcus Hutter 提供有益的数学讨论。本研究由 SNF 项目 200021-111968/1 与 200020-107534/1 资助。
参考文献
参考文献按原论文顺序与书目信息保留。
- Bengio., Y. (1999). Markovian models for sequential data. Neural Computing Surveys, 2, 129–162.
- Bishop, C. (1995). Neural Networks for Pattern Recognition, chapter 6. Oxford University Press, Inc.
- Bourlard, H., & Morgan, N. (1994). Connnectionist speech recognition: A hybrid approach. Kluwer Academic Publishers.
- Bridle, J. (1990). Probabilistic interpretation of feedforward classification network outputs, with relationships to statistical pattern recognition. In F. Soulie and J. Herault (Eds.), Neurocomputing: Algorithms, architectures and applications, 227–236. Springer-Verlag.
- Gers, F., Schraudolph, N., & Schmidhuber, J. (2002). Learning precise timing with LSTM recurrent networks. Journal of Machine Learning Research, 3, 115–143.
- Graves, A., Fernández, S., & Schmidhuber, J. (2005). Bidirectional LSTM networks for improved phoneme classification and recognition. Proceedings of the 2005 International Conference on Artificial Neural Networks. Warsaw, Poland.
- Graves, A., & Schmidhuber, J. (2005). Framewise phoneme classification with bidirectional LSTM and other neural network architectures. Neural Networks, 18, 602–610.
- Hochreiter, S., & Schmidhuber, J. (1997). Long Short-Term Memory. Neural Computation, 9, 1735–1780.
- Kadous, M. W. (2002). Temporal classification: Extending the classification paradigm to multivariate time series. Doctoral dissertation, School of Computer Science & Engineering, University of New South Wales.
- Lafferty, J., McCallum, A., & Pereira, F. (2001). Conditional random fields: Probabilistic models for segmenting and labeling sequence data. Proc. 18th International Conf. on Machine Learning (pp. 282–289). Morgan Kaufmann, San Francisco, CA.
- LeCun, Y., Bottou, L., Orr, G., & Muller, K. (1998). Efficient backprop. Neural Networks: Tricks of the trade. Springer.
- Rabiner, L. R. (1989). A tutorial on hidden markov models and selected applications in speech recognition. Proc. IEEE (pp. 257–286). IEEE.
- Robinson, A. J. (1991). Several improvements to a recurrent error propagation network phone recognition system (Technical Report CUED/F-INFENG/TR82). University of Cambridge.
- Robinson, A. J. (1994). An application of recurrent nets to phone probability estimation. IEEE Transactions on Neural Networks, 5, 298–305.
- Schraudolph, N. N. (2002). Fast Curvature Matrix-Vector Products for Second-Order Gradient Descent. Neural Comp., 14, 1723–1738.
- Schuster, M., & Paliwal, K. K. (1997). Bidirectional recurrent neural networks. IEEE Transactions on Signal Processing, 45, 2673–2681.
- Werbos, P. (1990). Backpropagation through time: What it does and how to do it. Proceedings of the IEEE, 78, 1550–1560.