Sequence Modeling with CTC
CTC (Connectionist Temporal Classification) is a method for sequence modeling that eliminates the need for alignment between input and output sequences. It is especially useful in tasks like speech recognition and handwriting recognition, where the input and output sequences have different lengths and alignment is unknown. This article provides a clear, visual explanation of how CTC works, including its loss function, inference process, and practical considerations.
背景メモ
- CTC(Connectionist Temporal Classification)は、音声認識や手書き文字認識など、入力と出力の間に「どのタイミングで何が起こるか」が不明確な系列データを扱うための機械学習手法。2017年にDistillが公開した解説記事が話題を集めた。
- 従来の学習方法では、入力データの各フレームに正解ラベルを人手で割り当てる必要があり、音声のように「誰がいつ話し始めたか」が曖昧なタスクでは困難だった。CTCは、この「タイミングの位置合わせ(アライメント)」を自動で行うことで、ラベル付けの負担を大幅に軽減する。
- 具体的には、CTCは「ブランク記号(何も出力しない)」を導入し、繰り返しや空白を許容することで、入力全体から出力系列への全ての可能な経路を考慮。学習時には、これら全経路の確率を合計して損失を計算し、ネットワークが自動的に正しいアライメントを学習できるようにする。
- CTCは深層学習時代の音声認識(Deep Speechなど)や、エンドツーエンドのOCR(光学文字認識)で標準的に使われる基礎技術。Transformer登場後も、RNN-T(リカレントニューラルネットワーク・トランスデューサー)などの派生手法の土台として影響力が大きい。