AI用語集・ディープラーニングの応用例

CTCとは

シーティーシーConnectionist Temporal Classification略語 CTC

別名:Connectionist Temporal Classification

  • シラバス 技術28
  • ◯×チェック3問
  • 練習問題2問

最終更新日:作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未出典

1行定義

CTCとは、入力のどの区間が出力のどの文字に当たるかが分からないデータでも、ブランク記号を導入して系列の変換を学習できるようにする手法のことです。

くわしく

CTC(Connectionist Temporal Classification)は、2006年にグレイブスらが発表した、系列を別の系列に変換するモデルの学習方法です。音声認識で、音声から文字列を直接出力するEnd-to-Endのモデルを学習するときによく使われます。

解決した問題

音声は、10ミリ秒ごとなどの細かいフレームに区切って処理します。1秒の発話でも100フレームほどになり、出力する文字の数よりずっと多くなります。しかも、どのフレームがどの文字に当たるかは、ふつうの学習データには書かれていません。従来は、HMMを使ってフレームと音素の対応を推定したり、人手で区切りを付けたりする必要がありました。

しくみ

CTCでは、ニューラルネットワークが各フレームで、どの文字か、またはブランク(何も出さない)かの確率を出力します。フレームごとの出力の並びは、次の規則で文字列に変換します。

  1. 連続する同じ記号を1つにまとめる。
  2. ブランクを取り除く。

たとえば「c c - a a - - t」(-はブランク)は「cat」になります。「hello」のように同じ文字が続く場合は、「l - l」のように間にブランクを挟みます。

同じ文字列になる出力の並びは、たくさんあります。CTCは、それらの確率をすべて足した値を正解の文字列の確率とし、これを大きくするように学習します。この計算は、動的計画法で効率よく行います。

特徴と位置づけ

出力の長さは、入力のフレーム数以下になります。また、各フレームの出力は、入力が与えられたもとで互いに独立だと仮定します。そのため、単語のつながりを補う言語モデルと組み合わせて精度を上げることがよくあります。原論文では双方向LSTMと組み合わせ、音素認識でHMMを使う従来の手法を上回りました。手書き文字の認識など、音声以外の系列にも使えます。

覚え方

「同じ記号はまとめ、ブランクは消す」と覚えます。

G検定での出題

出題のされ方

入力と出力で長さの異なる系列を、フレームごとの正解なしに学習できる点、ブランクと同じ文字の連続をまとめる規則、HMMを使う従来の音声認識との違いが問われます。

◯×チェック

3問

次の文が正しいか、誤りかを選んでください。

  1. CTCで、フレームごとの出力が「c c - a a - - t」(-はブランク)のとき、最終的な出力は「cat」になる。

    答えを見る

    答え ◯ 正しい

    まず連続する同じ記号を1つにまとめて「c - a - t」とし、次にブランクを取り除くと「cat」になります。

  2. CTCでは、各フレームの出力が、入力が与えられたもとで互いに独立であると仮定している。

    答えを見る

    答え ◯ 正しい

    この仮定により計算は簡単になりますが、前後の文字のつながりはとらえにくくなります。そのため、単語のつながりを補う言語モデルと組み合わせることがよくあります。

  3. CTCは、出力する文字列が、入力された音声のフレーム数より長い場合にも使える。

    答えを見る

    答え × 誤り

    CTCは、フレームごとに1つの記号を出力し、それをまとめて文字列を作ります。そのため、出力の長さは入力のフレーム数を超えられません。

この用語の練習問題

2問
  1. #0072音声認識と音声合成の手法難易度 基礎・単一選択未回答
  2. #0414CTCの出力確率の計算難易度 応用・単一選択未回答

出典

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未 最終確認日: 対応シラバス:シラバス第1.4版 技術28

誤りを報告

表示設定

テーマ
文字の大きさ
問題演習