它要解决的问题
语音、手写、手势这类序列,输入是一长串帧,而我们想要的答案往往只是一小段标签。循环神经网络可以按时间步一个个读入这些帧,但训练起来很别扭:要算误差,就得知道哪几帧对应哪个字母,而这种帧级别的对齐正是标注者最不愿意做的活。切分既费时,不同标注者的切法还不一致,甚至在原理上就说不清——两个词之间的边界并不是一个清晰的物理事件。
怎么工作
CTC 把对齐问题变成网络可以对之求平均的东西。输出字母表里额外加一个「空白」(blank)符号。每一帧,网络输出一个在字母和空白上的概率分布,所以原始输出的长度和输入一样长。再用一条简单的折叠规则把它变短:合并连续的相同标签,然后删掉空白。
举个例子。假设一段音频念的是「cat」。网络在 8 帧上可能输出 `c c _ a _ t t _`,其中 `_` 是空白;合并重复项、去掉空白,得到 `c a t`。另一条逐帧路径 `_ c _ a a t _ _` 折叠后得到同样的答案。空白是关键:没有它,连续两个相同字母(比如 hello 里的 ll)就和单个字母分不开了。
训练时用的是所有能折叠成正确标签序列的路径的概率之和。路径数量随长度指数增长,所以这个和不是枚举出来的,而是用动态规划递推算出,再求导得到梯度。除此之外不需要别的东西:不需要预先切分好的数据,不需要单独的对齐模型,折叠之外也不需要复杂的解码。
从哪来
Schmidhuber 的回溯文章把 CTC 定在 2006 年,说它是他在慕尼黑工业大学(TU Munich)和 IDSIA 的研究组开发出的两种方法之一[1]。另一种是长短期记忆(long short-term memory,LSTM),也就是为解决 Sepp Hochreiter 在 1991 年分析过的梯度消失问题而设计的循环结构[1]。两者正好互补:LSTM 提供一个能把信息带过很多时间步的网络,CTC 提供让它仅凭序列级标签就能训练的目标函数。原始论文由 Graves、Fernandez、Gomez 和 Schmidhuber 撰写,发表在 ICML 2006 会议论文集第 369 至 376 页[3]。
结果
这一组合早在 2007 年就被用于语音,IDSIA 形容它与此前把神经网络和隐马尔可夫模型(hidden Markov model,HMM)结合的混合方法很不一样[1]。手写识别给出了最清楚的标记:一个用 CTC 训练的 LSTM 在 2009 年赢得 ICDAR 连笔手写识别竞赛,这是循环网络第一次在国际竞赛中获胜[3]。IDSIA 的深度学习时间线记载,借助 2009 年更快的计算机,一叠用 CTC 训练的 LSTM 循环网络成为有史以来第一个赢得正式国际模式识别竞赛的 RNN 系统[2];按回溯文章的说法,CTC 训练的 LSTM 是第一个赢得任何国际竞赛的循环神经网络[1]。
用在哪里,以及局限
凡是输入是长序列、目标是更短的标签串的任务,都是它的候选:语音识别、手写与文本行识别,以及类似的序列标注问题。它的吸引力在于省掉了一整道标注工序——网络在学习「是什么」的同时,也学会了「在哪里」。
代价写在设计里。CTC 假设给定输入后,各帧的标签条件独立,因此无法对输出内部较强的语法结构建模;折叠规则还要求标签序列不长于输入。当任务确实需要显式对齐或语言模型时,CTC 通常要和别的部件配合使用,而后来以软对齐方式学习对应关系的序列到序列方法提供了另一种选择。即便如此,它引入的思路——不是挑一条对齐,而是一次性对所有对齐求和来训练——正是让无切分序列数据变成可用训练数据的关键。
20091
-
评测CTC 训练的 LSTM 赢得 ICDAR 2009 三项手写识别竞赛
2009 年,Alex Graves 用 LSTM 与连接时序分类(CTC)组合参加 ICDAR 连笔手写识别竞赛,拿下法文、波斯文、阿拉伯文三项第一,这是循环神经网络首次在国际竞赛中获胜。
注释与来源
- The 2010s: Our Decade of Deep Learning / Outlook on the 2020shttps://people.idsia.ch/~juergen/2010s-our-decade-of-deep-learning-2020.html
- My First Deep Learning System 1991 / Deep Learning Timeline 1960-2013https://www.idsia.ch/~juergen/firstdeeplearner.html
- Long short-term memoryhttps://en.wikipedia.org/wiki/Long_short-term_memory
引用本页: 联结时序分类(CTC). TellWorld, https://www.tellworld.net/zh/learn/connectionist-temporal-classification. 更新于 2026-11-07