资料摘要:Connectionist Temporal Classification
Graves 等人在 ICML 2006 提出 CTC:不要求输入帧与目标标签的逐帧对齐,而是在“标签 + blank”构成的全部单调路径上边缘化,用 forward-backward 动态规划直接最大化正确标签序列的概率。
- 问题设定:输入是长度为 的连续特征序列,监督只给长度为 的标签序列,且没有帧级边界;传统逐帧交叉熵无法直接训练。
- 表示创新:输出层比标签表多一个 blank 单元。长度为 的逐帧输出形成路径 oldsymbol\pi,折叠映射 先合并连续重复标签,再删除 blank。
- 概率定义:一条路径的概率是逐时刻输出概率之积;一个标签序列的概率,是所有可折叠为它的路径概率之和。
- 可训练性:CTC forward-backward 算法在插入 blank 的扩展标签序列上递推,无需显式枚举指数级路径;最大似然目标可用 BPTT 和常规梯度优化器训练。
- 训练与解码分层:训练边缘化全部合法路径;推理时可用 best-path 或 prefix search 近似寻找概率最大的标签序列,两者不是同一个操作。
- 实验结果:TIMIT 音素标注中,CTC prefix search 的 LER 为 30.51 ± 0.19%,优于论文中的 context-dependent HMM(35.21%)与 weighted-error BLSTM/HMM(31.57 ± 0.06%)。
- 历史边界:这篇论文证明了“无显式分段的神经序列标注”可行,但实验规模、声学特征与解码器均属于 2006 年条件,不能把表中数值直接与现代 ASR 比较。
1. 从逐帧分类改写为序列概率
Section titled “1. 从逐帧分类改写为序列概率”标准神经网络损失要求每个输入时刻都有目标标签。语音、手写等任务通常只给最终转写,不知道每个字符或音素对应哪几帧。论文把 RNN 输出解释为给定输入后的逐时刻标签分布,并让网络同时考虑所有可能对齐。
对路径 ,其中 ,论文定义:
然后用多对一映射 删除连续重复与 blank。目标标注 的条件概率为:
因此 CTC 的关键不是“找一条正确对齐再训练”,而是把所有与目标文本一致的对齐当作隐变量并求和。
2. blank 真正解决什么
Section titled “2. blank 真正解决什么”blank 表示当前时间步不发射标签,不等于声学静音。它有两个作用:
- 允许输入帧数远多于输出标签数;
- 区分相邻重复标签,例如路径
A- A可折叠为AA,而连续AA会先合并成单个A。
折叠顺序必须理解为:先合并原路径中的连续重复,再删除 blank。例如:
A A - B→ABA - A B→AAB- C - A - T -→CAT
3. Forward-backward 为什么必要
Section titled “3. Forward-backward 为什么必要”直接枚举 条路径不可行。论文为目标序列首尾和相邻标签之间插入 blank,得到长度 的 ;动态规划状态 表示到时间 已覆盖扩展序列位置 的路径总概率。
状态只允许三类推进:停留在当前位置、前进一步、在标签不重复且当前位置不是 blank 时跨过一个 blank。这样可在 量级完成路径求和。Backward 变量 从序列尾端作对称递推;两者还可组合得到每个时刻经过某标签位置的后验占用概率,并据此计算梯度。
论文还讨论了数值下溢:对每个时刻的 forward / backward 变量缩放,并把序列对数似然写成缩放因子的对数和。现代框架通常在 log domain 或经过数值稳定化的算子中实现同一思想。
4. 最大似然训练
Section titled “4. 最大似然训练”训练集 上的目标为:
论文进一步推导了损失对 softmax 前激活的梯度。直观上,它比较“模型当前逐帧分布”和“所有合法路径构成的后验占用分布”:模型在某时刻对标签给得过多就压低,给得过少就提高。
5. 解码不是训练路径求和
Section titled “5. 解码不是训练路径求和”- Best path decoding:每帧取最大概率符号,再执行 ;便宜,但最高概率路径不一定属于最高概率标签序列。
- Prefix search decoding:逐步扩展标签前缀并累计其所有路径概率;更接近目标,但最坏情况下搜索空间随长度指数增长。
- 论文利用训练后输出常呈“blank 间隔的尖峰”这一现象,把序列按高 blank 概率位置分段以加速 prefix search;这是实验启发式,不是 CTC 损失本身。
6. TIMIT 实验与证据边界
Section titled “6. TIMIT 实验与证据边界”论文使用 61 个 TIMIT 音素,输入是每 5 ms 移动一次的 10 ms 帧;每帧包含 12 个 MFCC、log-energy 及其一阶差分,共 26 维。CTC 网络为双向 LSTM,正反向各 100 个 block,输出为 61 个音素加 blank,共 114,662 个权重。
| 系统 | 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% |
这些结果支持 CTC 在当时无需手工分段、任务特定状态模型和 HMM 后处理即可工作。它们不证明 CTC 在所有数据集或现代架构上始终优于 Transducer、attention decoder 或强制对齐系统。
7. 批判性判断
Section titled “7. 批判性判断”- 论文真正的范式贡献,是把未知对齐作为隐变量边缘化,并把这一概率模型接到可微神经网络上;blank 只是实现该空间的一部分。
- 逐时刻输出在给定网络内部状态后的条件独立分解,是路径概率乘积成立的模型假设;RNN 隐状态仍可编码前后文,因此不等于原始输入帧彼此独立。
- CTC 不显式建模输出标签之间的依赖。语言模型、prefix beam search 或更强 decoder 可以弥补这一点,但会改变解码系统而非基础损失。
- 论文使用 BLSTM 和完整序列,不能直接推出低延迟流式能力;流式 CTC 还需因果或 chunk encoder、稳定提交规则与延迟控制。
| 项目 | 论文信息 |
|---|---|
| 会议 | ICML 2006 |
| 作者 | Alex Graves、Santiago Fernández、Faustino Gomez、Jürgen Schmidhuber |
| 原始 PDF | Toronto 官方 PDF |
| 页数 | 8 |
| 原图 / 表格 | Figure 1–4 / Table 1 |
| 编号公式 | (1)–(16) |
| 参考文献 | 17 条 |
| 全文译稿 | 中文全文译稿 |
| 精读笔记 | CTC 精读笔记 |
- CTC(连接时序分类) — 公式、shape、折叠规则与相邻方法对比
- 自动语音识别(ASR) — CTC 最重要的应用领域之一
- 资料摘要:CTC-TTS — 把 CTC Viterbi 路径用作 TTS 结构对齐,而非生成损失
- Wiki 目录