CTC (Connectionist Temporal Classification)とは
CTCとは、入力と出力の長さが違うデータを、対応付けを与えずに学習できるようにする仕組みです。音声認識では「どのフレームがどの文字か」を人が用意する必要があり、それが大きな壁でした。CTCはこの対応付けを不要にし、音声から文字までを一気通貫(End-to-End)で学習できるようにしました。
この用語はG検定シラバスの「28. 音声処理」に含まれます。 章全体の用語は用語解説⑤(全133語)にまとまっています。
一言でいうと
「どの音がどの文字か」を人が教えなくても、音声から文字を学習できるようにする仕組みです。
何が問題だったのか
「ねこ」と1秒話した音声を考えます。音声は細かく区切られ、100個ほどのフレームになります。一方、正解の文字は「ね」「こ」の2文字だけです。
普通の教師あり学習をするには、「1〜40フレーム目が"ね"、41〜100フレーム目が"こ"」という対応付け(アライメント)を人が用意しなければなりません。
しかし話す速さは人によっても場面によっても変わります。全部の音声にこの区切りを手作業で付けるのは現実的ではありません。
CTCの考え方:3ステップ
CTCは、区切りを人が決める代わりに次の3ステップで文字列を作ります。
- フレームごとに1文字を予測する。ここでε(空白ラベル)という「何も出力しない」記号を使えるようにしておく
- 連続する同じ文字をひとつにまとめる(例:「ねね」→「ね」)
- εを取り除く
この手順なら、話す速さが変わっても同じ「ねこ」にたどり着きます。区切りを人が決めなくてよくなったのがCTCの核心です。
なぜεが必要なのか
「まとめる」だけだと困る場合があります。「ねねこ」のように、本当に同じ文字が続く言葉です。そのまままとめると「ねこ」になってしまいます。
そこで間にεを挟みます。「ね ε ね こ」と予測すれば、まとめてもεを外しても「ねねこ」のまま残ります。εは文字の区切りを表す役目も持っているのです。
手書き文字認識でも使える
手書き文字の画像も、横方向のフレーム列と文字列の対応が不明という点で音声と同じ構造です。
そのためCTCがそのまま使えます。問題の構造が同じなら手法も共通する——分野をまたいで応用できる好例です。
🎯 G検定での押さえどころ
- 入力(音声フレーム)と出力(文字)の長さが違う問題を扱う
- アライメントを与えずにEnd-to-End学習できる
- 空白ラベル(ε)の導入が鍵。同じ文字の連続とも区別できる
⚠️ よくある誤りの選択肢
- 「CTCでは入力と出力の対応付けを事前に与える必要がある」→ 誤り。不要にした点が特徴です
関連する用語
ご利用にあたって 本ページの内容は、JDLAが公開しているG検定シラバス2024や公式テキストなど、一般に公開されている情報をもとに独自に整理・解説したものです。実際の試験の出題内容を示すものではなく、また合格を保証するものでもありません。制度・法令・試験要項は変更されることがあるため、最新の情報は必ずJDLA公式サイトでご確認ください。