连接主义时间分类(CTC)是一种损失函数和输出表示,用于训练神经网络处理输入与输出在时间上不对齐的序列标注任务。它于2006年提出,且独立于底层神经网络结构,这意味着它可以应用于各种架构。CTC通常用于在线手写识别和语音识别等任务,其中输入序列(例如,音频帧或笔迹笔画)远长于输出标签序列(例如,音素或字符)。
CTC解决的核心挑战是输入观测与目标标签之间的未知对齐。例如,在语音音频中,多个时间片可能对应一个音素,且训练期间确切的边界未知。CTC通过在每个时间步预测标签上的概率分布(包括一个特殊的空白输出)来解决这一问题。它不尝试学习边界或时间;相反,如果标签序列仅在对齐上不同且忽略空白,则被视为等价。这种等价性导致给定标签序列存在许多可能的对齐方式,使得评分变得非平凡,但存在一种高效的前向-后向算法来计算总概率。
训练与评分
CTC得分计算为所有映射到目标标签序列的可能对齐的概率之和。该得分是可微的,使其能够与反向传播算法一起用于更新神经网络权重。网络通常具有连续输出,如softmax层,通过训练拟合以建模每个时间步每个标签的概率。前向-后向算法,类似于隐马尔可夫模型(HMM)中使用的算法,能够高效计算损失及其梯度。CTC拟合神经网络的替代方法包括使用HMM,它显式建模状态转移和持续时间。
应用与里程碑
CTC已在多个著名系统中成功应用。2009年,一个CTC训练的长期短期记忆(LSTM)网络成为首个赢得模式识别竞赛的循环神经网络(RNN),在多个连接手写识别竞赛中取得胜利。2014年,中国公司百度使用一个双向RNN(非LSTM)在CTC损失函数上训练,打破了2S09 Switchboard Hub5'00语音识别数据集基准,且未使用任何传统语音处理方法。2015年,CTC被用于谷歌安卓设备上的语音搜索和听写功能,展示了其在消费产品中的实际效用。
局限性与扩展
CTC仅限于单调对齐,这意味着输出标签的顺序必须与输入观测的顺序相对应。这对于语音识别不是问题,因为音素和单词以固定顺序出现。然而,对于语言翻译可能存在问题,因为一种语言中较晚的单词可能对应另一种语言中较早的单词,由于词序不同。这一局限性促使了基于注意力机制的替代序列到序列模型的发展,这些模型可以处理非单调对齐。尽管如此,CTC仍然是序列标注中的基础技术,并常用于混合系统或作为更复杂架构的组件。
与其他技术的关系
CTC与其他序列建模方法密切相关。它常与隐马尔可夫模型(HMM)进行比较,后者也处理序列对齐但使用不同的概率框架。在深度学习中,CTC常与循环神经网络(尤其是LSTM和双向RNN)一起使用,但也可以应用于其他架构如Transformer。该损失函数是监督学习中使用的损失函数类型,并常与推理时的束搜索等解码技术结合。CTC对免对齐训练的聚焦影响了后续序列到序列学习的发展,尽管它仍与基于注意力的方法不同。