CTC(Connectionist Temporal Classification) (G検定)

CTC(Connectionist Temporal Classification)

1. 定義と概要

CTC(Connectionist Temporal Classification)とは、ディープラーニング(深層学習)における学習手法の一つです。日本語ではコネクショニスト時系列分類と呼ばれます。入力系列と出力系列の長さが異なる場合でも、ニューラルネットワークの学習を可能にする手法です。入力のどの部分が出力のどの部分に対応するかがあらかじめ分からない状況にも対応できる点も、もう一つの前提にあたります。

2006年に提案された手法で、音声認識ではこの仕組みが典型的に使われます。具体例として、音声を短い時間ごとに区切った単位(フレーム)の列は数百から数千個あるのに対し、そこから出力すべき文字列ははるかに短いのが実情です。

音声認識では、音声を短く区切ったフレームの列を入力とし、それに対応する文字列を出力します。フレームの数と出力する文字数は一致せず、どのフレームがどの文字に対応するかという対応づけも自明ではありません。

従来はこの対応づけをあらかじめ人手で用意する必要がありましたが、CTC の登場によって、音声データとその書き起こしテキストのペアだけを用意すれば、対応づけ自体を学習の過程で扱えるようになりました。

2. 試験対策ポイント

入力系列と出力系列の長さがそろわないという問題が、CTC の出発点です。音声のフレーム数は数百から数千に及ぶ一方、出力する文字数ははるかに少なく、この長さのズレをどう埋めるかを CTC は中心的な課題として扱います。

長さのズレを埋める仕組みの柱が、ブランク(そのフレームでは何も出力しないことを表す特殊な記号)を出力候補に加える工夫です。ネットワークは各フレームごとに文字かブランクのどちらかを出力し、そのうえで「連続する同じ文字をまとめる」「ブランクを取り除く」という2段階の変換を経て、最終的な文字列にたどり着きます。

この仕組みにより区別できるのは、同じ文字が本当に2回続く単語(例えば「ももいろ」の「もも」のように同じ文字が隣り合う場合)と、1つの文字を発音している間に同じフレームが続いているだけの状態です。前者は2文字の間にブランクを挟むことで、まとめられずに2文字として残ります。

1つの正解の文字列に対応する対応づけのパターンは複数存在するため、CTC はありうる対応づけをすべて足し合わせて確率を計算する考え方をとります。1つの対応づけに決め打ちしない発想が、区切りの正解ラベルを人手で用意しなくてよい理由です。

この結果、CTC の学習に必要なのは音声データと書き起こしテキストのペアだけであり、フレーム単位の対応づけという区切りの正解ラベルの作成コストが大幅に下がる点が利点にあたります。

CTC は、RNN(リカレントニューラルネットワーク。前の時刻の情報を次の時刻へ渡しながら処理する、系列データ(順序に意味があるデータ)向けの構造)の出力層に組み合わせて使われる仕組みです。LSTM(RNN を改良したネットワーク構造)も、同じように出力層へ組み合わせて使われます。

音声認識のほかに、手書き文字認識のように入力と出力の長さが異なる時系列データの認識にも用いられるのが特徴です。RNN や LSTM の構造そのものは、別のテーマとして扱われます。

3. 関連概念との比較・相違点

Attention(注意機構。出力の各時点でどの入力位置に注目するかを学習する仕組み)を使う Seq2Seq(系列変換モデル。入力の系列を別の系列へ変換するモデルの枠組み)との最大の違いは、対応づけの扱い方です。CTC はありうる対応づけをすべて足し合わせて計算し、入力と出力の順序が入れ替わらない単調な対応関係を前提とします。

一方、Attention 付き Seq2Seq は出力の各時点でどの入力位置に注目するかという重みを明示的に学習する仕組みを持ち、語順の入れ替えが起こる機械翻訳のような場面にも対応できます。

従来の音声認識(人手でアライメントを用意する方式)との違いは、区切りの正解ラベルが必要かどうかという点です。従来方式はこれを人手で作る必要がありましたが、CTC は音声とテキストのペアだけで済みます。

三者の関係は、対応づけをどう決めるかという軸で並べると整理しやすくなります。

手法 対応づけの決め方 そこから生じる違い
CTC ありうる対応づけをすべて足し合わせて計算する 音声とテキストのペアだけで学習でき、区切りの正解ラベルが要らない
Attention 付き Seq2Seq 出力の各時点でどの入力位置に注目するかを重みとして学習する 語順の入れ替えが起こる機械翻訳のような場面にも対応できる
従来の音声認識 人手で用意したアライメントに従う 区切りの正解ラベルを人手で作る手間がかかる

対応づけを足し合わせるのか、重みとして学習するのか、あらかじめ与えるのかという違いが、そのまま用意すべきデータの違いにつながります。混同しやすい組み合わせなので、対応づけの扱い方を軸に区別しておくと迷いにくくなります。

4. ビジネス・実務での活用シナリオ

コールセンターや音声インターフェースの分野では、通話音声を書き起こしテキストへ変換する End-to-End モデル(入力から出力までを1つのニューラルネットワークでまとめて学習させる方式)の学習に CTC が使われます。発話区間ごとの区切りを人手で用意しなくても、音声とテキストのペアだけを大量に学習に使える点が実務上の利点です。

手書き文字認識の分野でも、CTC は活用されています。手書きのストロークのように時間の流れに沿って記録された系列データから文字列を認識する際も、文字ごとの区切り位置を人手で用意しなくて済むのが強みです。

字幕や音声ログの自動生成でも、CTC は土台の技術として役立ちます。動画音声から自動で字幕テキストを生成する処理では、音声フレームと文字列との対応づけを人手作業なしに扱える仕組みが効果を発揮します。

5. 要点まとめ

  • CTC は、入力系列と出力系列の長さが異なり、対応づけ(アライメント)があらかじめ与えられていない場合でも学習を可能にする手法です。
  • ブランクを出力候補に加え、ありうる対応づけをすべて足し合わせて計算することで、区切りの正解ラベルを人手で用意しなくても学習できます。
  • Attention 付き Seq2Seq とは対応づけの扱い方が異なり、従来の音声認識とは人手のアライメントが不要な点で異なります。

6. 確認問題

問1CTC は、出力候補に「ブランク」と呼ばれる特殊な記号を加えることで、入力系列と出力系列の長さの違いを扱う。

解答・解説をみる

○ 正しい

各フレームごとに文字かブランクを出力し、連続する同じ文字をまとめたうえでブランクを取り除くという変換を経て文字列を得る仕組みが、この正誤の根拠にあたります。長さの異なる入出力を結びつける中心的な工夫です。

問2CTC を用いた学習では、音声のどの区間がどの文字に対応するかという区切りの正解データを、あらかじめ人手で用意する必要がある。

解答・解説をみる

× 誤り

この命題が誤りである根拠は、CTC が音声データと書き起こしテキストのペアだけで学習できる点にあります。正しくは、区切りの正解データ(アライメント)を人手で用意する必要があるのは従来の方式であり、両者は混同しやすい組み合わせです。

問3CTC は音声認識だけでなく、手書き文字認識のように入力と出力の長さが異なる時系列データの認識にも適用できる。

解答・解説をみる

○ 正しい

CTC が RNN(LSTM を含む)の出力層に組み合わせて使われる汎用的な仕組みである点が、この正誤を支える根拠です。音声のフレーム列に限らず、手書きのストロークの系列にも用いられます。