3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[CTC] コネクショニスト時間分類

Posted at

#リカレントニューラルネットワーク
この記事ではリカレントニューラルネットワークについての知識が必要です。 あなたがこの種のニューラルネットワークに慣れていないのであれば、私はあなたがそれらについての私の記事をチェックすることを勧めます。
RNNをよりよく理解するために、通常の(フィードフォワード)ニューラルネットワークとはどう違うのかを調べなければなりません。 次の画像を見てください。
screen-shot-2018-09-05-at-09-10-06.png
FFNNでは、情報は一方向(入力から隠れ層を経由して、出力層を経由する方向)にのみ移動するため、情報がノードに2回接触することはありません。 これがフィードフォワードニューラルネットワークが入力として受け取ったものを思い出せない理由です - 彼らは彼らが訓練されたデータを思い出すだけです。

対照的に、RNNはループを介して情報を循環させます。 決定を下すとき、RNNは現在の入力とそれが以前の入力から何を学んだかを考慮に入れます。
#基本RNNと音声認識
jzgh.png
音声認識は、話し言葉をコンピュータでテキストに翻訳する作業です。問題は、あなたが音響観測(あるオーディオファイルとしての録音)を持っていて、手動でそれを作成せずにそれの転写をしたいということです。

ご存知のとおり、リカレントニューラルネットワークはシーケンシャルデータを含むタスクに非常に適しています。そして、スピーチはシーケンシャルデータなので、理論的には、音響観測とそれに対応する転写のデータセットを使ってRNNをトレーニングすることができます。あなたがおそらくすでに推測したように、それはそれほど簡単ではありません。これは、基本的な、標準的リカレントニューラルネットワークとも呼ばれるデータが整列データを必要とするためです。つまり、各単語(各単語ではありません!)をオーディオファイル内のその位置に合わせる必要があります。下の画像を見て、すべてのキャラクターをその正確な位置に合わせる必要があることを想像してください。
picture1.png
もちろん、これは誰もやりたくない面倒な作業であり、それを実行するのに十分な人数の従業員を雇う余裕がある組織はごくわずかであるため、このようなデータセットが非常に少ないのはこのためです。
#コネクショニストの時間的分類
幸いなことに、私たちはコネクショニスト主義の時間的分類(CTC)を持っています。これは入力と出力の間のアライメントを知らないということです。 CTCは、クロスエントロピーなどのニューラルネットワークのトレーニングに使用される単なる損失関数です。 音声認識のように、データを整列させることが問題となる問題で使用されます。

私が言ったように、CTCでは、整列データは必要ありません。 それは、入力が与えられると、それが任意のラベルの確率を割り当てることができるからです。 これは入力としての音声ファイルとそれに対応する書き起こしだけが必要であることを意味します。 しかし、CTCは、入力が与えられたときに、どのようにして任意のラベルに確率を割り当てることができるのでしょうか。 私が言ったように、CTCは「アライメントフリー」です。 これは、入力とラベルの間のすべての可能な整列の確率を合計することによって機能します。 それを理解するために、この単純なアプローチを見てください。
img_2639.jpg
ここではサイズ9の入力があり、それを正しく表記したものが「Iphone」です。システムに各入力ステップに出力文字を割り当てるよう強制してから、繰り返しを折りたたむと、結果として出力が得られます。しかし、この方法には2つの問題があります。

入力内の無音も考慮する必要があるため、すべての入力ステップをある出力に強制的に合わせることは意味がありません。 「Kaggle」という単語のように、1行に2文字の単語を出力として生成する方法はありません。このアプローチを使用すると、出力として「Kagle」しか生成できませんでした。

###空白のトークン
これを回避する方法があります。これは「空白トークン」と呼ばれます。それは何も意味せず、最終的な出力が生成される前に単に削除されます。現在、アルゴリズムは各入力ステップに文字または空白トークンを割り当てることができます。 1つの規則があります。出力で二重文字を許可するには、それらの間に空白のトークンを入れる必要があります。この単純な規則では、2文字を続けて出力することもできます。

これがどのように機能するかの実例はこれです:
img_2640.jpg
1.)CTCネットワークは、すべての入力シーケンスに最も確率の高い(または文字がない)文字を割り当てます。

2.)間に空白のトークンを入れずに繰り返しがマージされます。

3.)そして最後に、空白のトークンが削除されます。

CTCネットワークは、各タイムステップの文字のすべての確率を合計することによって、特定の入力に対するラベルの確率をユーザーに提供します。
#結論
この記事では、リカレントニューラルネットワークに関する主な事実を概説し、なぜ正規のRNNがシーケンス問題に実際には適していないのかを説明しました。 次に、コネクショニストリストの時間的分類とは何か、それがどのように機能するのか、またなぜRNNが音声認識のようなタスクに取り組むことができるのかを説明しました。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?