Warp-CTC是一个可以应用在CPU和GPU上高效并行的CTC代码库 (library) 介绍 CTC(Connectionist Temporal Classification)作为一个损失函数,用于在序列数据上进行监督式学习,不需要对齐输入数据及标签。比如,CTC可以被用来训练端对端的语音识别系统,这正是我们在百度硅谷试验室所使用的方法。 端到端 系统 语音识别
论文地址
0,摘要
许多实际的序列学习任务需要从含噪,未分割的数据中预测标记序列。例如,在语音识别中,声音信号被转录成单词或子单词单元。RNN网络具有强大的序列学习能力,也非常适合这样的任务。但是,由于他们需要预先分割的训练数据,以及对输出的标签序列需要后处理(例如一句话的处理,OCR识别是一个汉字一个汉字,最后对单个汉字进行拼接为一句话),所以RNN网络的实用性非常有限(该论文发表时间为2006年)。本文提出一种RNN网络训练的新方法,直接标注未分割的序列,可以解决这两个问题(训练前分割,训练后合并)。在TIMIT语音数据集上证明它比标准的(baseline)HMM和混合的HMM-RNN有优势。
1,引言
对未分段序列数据进行标注是现实序列学习中普遍存在的问题。它在感知任务中尤其常见(例如书写)(识别,语音识别,手势识别),其中噪声,实值输入流注释离散标签串,如字母或单词。
目前,图形化模型,如隐马尔可夫模型(HMMs;Rabiner, 1989),条件随机场(CRFs;Lafferty et al., 2001)及其变体是序列标记的主要框架。虽然这些方法被证明是成功的许多问题,他们有几个缺点:
(1)通常需要大量与任务相关的知识,如:HMMs的状态模型设计,CRFs的输入特征选择;
(2)它们需要明确的(通常是可疑的)依赖假设,以使推理易于处理,例如,假设观察结果是独立于HMMs的;
(3)对于标准的HMMs,训练是生成性的,尽管序列标记是有区别的。
另一方面,递归神经网络(RNNs)不需要数据的先验知识,除了输入和输出表示的选择。它们可以被有区别地训练,它们的内部状态为建模时间序列提供了一个强大的、一般的机制。此外,他们往往是鲁棒的时间和空间噪声。
然而,到目前为止,还不能将RNNs直接应用于序列标记。问题在于,对于训练序列中的每个点,标准神经网络目标函数都是单独定义的;换句话说,RNNs只能被训练成一系列独立的标签分类。这表示训练数据必须经过预分割,网络输出必须经过后处理,得到最终的标签序列。
目前,利用RNNs进行序列标记最有效的方法是将其与HMMs结合,即所谓的混合方法(Bourlard & Morgan, 1994;Bengio。,1999)。混合系统使用HMMs建模数据的长期顺序结构,神经网络提供局部分类。HMM组件能够在训练过程中自动对序列进行分割,并将网络分类转换为标签序列。然而,除了继承了上述HMMs的缺点之外,混合系统并没有充分利用RNNs在序列建模方面的潜力。
本文提出了一种用RNNs标记序列数据的新方法,该方法无需预先分割训练数据和后处理输出,并在单一网络架构中对序列的各个方面进行建模。其基本思想是将网络输出解释为基于给定输入序列的所有可能标签序列的概率分布。给定这个分布,可以推导出一个目标函数,直接最大正确标签的概率。既然目标函数是可微的,那么网络就可以通过标准的时间反向传播进行训练(Werbos, 1990)。
接下来,我们将未分割数据序列的标记任务称为时间分类(Kadous, 2002),并将为此目的使用的RNNs作为连接主义时间分类(CTC)。相比之下,我们将输入序列的每个时间步长或帧的独立标记称为框架分类。
下一节提供了时间分类的数学形式,并定义了在本文中使用的误差度量。第3节描述了允许使用RNNs作为时态分类器的输出表示。第4节解释了如何训练CTC网络。第五部分将CTC与hybrid和进行了比较TIMIT语音语料库中的HMM系统。第6节讨论了CTC和其他时态分类器的一些关键区别,为今后的工作提供了指导,并以第7节作为论文的结尾。
2. 时序分类
设S为从固定分布D X×Z中抽取的一组训练示例。输出空间X = (R m)∗是所有m维实值向量序列的集合。∗是标签(有限的)字母L上的所有序列的集合。通常,我们将L∗的元素称为标签序列或标签。S中的每个例子由一对序列(x,z)组成。目标序列z = (z1, z2,…当输入序列x = (x1, x2,…),即U≤T,由于输入序列和目标序列的长度一般不相同,因此没有一种先验的对齐方式。目的是使用S来训练一个时间分类器h: x7→Z来分类之前没有看到的输入序列,以最小化一些任务特定的误差测量。
2.1. 标签错误率
在本文中,我们感兴趣的误差测量如下:给定一个测试组0⊂D X×Z不相交的序列,定义标签时间分类器的错误率(l) h之间的正常编辑距离其分类和目标序列0,即。
其中Z为S 0中目标标签的总数,ED(p,q)为两个序列p与q之间的编辑距离,即将p变为q需要插入、替换和删除的最小次数。
这是一种很自然的方法(比如语音或手写识别),其目的是将抄写错误的比率降到最低。