音声認識のためのCTC、RNA、RNN-T、Neural Transducer、MoChAモデルの詳細解説~音声信号処理学習(4)

参考文献:

[1] グレイブス A、フェルナンデス S、ゴメス F、他。コネクショニスト時間分類: リカレント ニューラル ネットワークによるセグメント化されていないシーケンス データのラベル付け[C]//機械学習に関する第 23 回国際会議の議事録。 2006: 369-376。

[2] Graves A. リカレント ニューラル ネットワークによる配列変換[J]。 arXiv プレプリント arXiv:1211.3711、2012。

[3] Jaitly N、Le Q V、Vinyals O、他。部分条件付けを使用したオンラインのシーケンス間モデル[J]。神経情報処理システムの進歩、2016、29.

[4] Chiu C C、Raffel C. 単調チャンクワイズ アテンション[J]。 arXiv プレプリント arXiv:1712.05382、2017。

[5] 音声認識 - CTC、RNN-T など (パート 3)_bilibili_bilibili

[6] 2020 年 3 月の新プログラム Li Honyi 人間言語処理独占メモ CTC、RNN-T およびその他 - 4 - Zhihu (zhihu.com)

[7] 音声認識モデル CTC、RNN-T、神経トランスデューサー、MoCha 研究ノート - Zhihu (zhihu.com)

目次

一、コネクショニスト時間分類(CTC)

1.1 仕組み

1.2 トレーニングの問題

1.3 CTC は本当に実現可能ですか?

1.4 CTCの問題点

二、RNNトランスデューサ(RNN-T)

2.1 リカレントニューラルアライナー(RNA)

2.2 RNN-T、RNA、そしてさらなる改良

2.3 RNAに基づくRNN-Tの改良(言語モデルの追加)

三、神経変換器

四、Monotonic Chunkwise Attention(MoChA)

5. いくつかの主要モデルのまとめ


 

CTC モデルは 2006 年に登場しましたが、CTC には大きな問題があったため、長い間誰も使用していませんでした。

一、コネクショニスト時間分類(CTC)

1.1 仕組み
  1. CTC は、オンライン リアルタイム音声認識を実現できます。 /span> a>一方向 RNN アーキテクチャを採用しているため、オンライン ストリーミング音声認識、いわゆるオンライン リアルタイム音声認識

  2. CTC にはエンコーダが 1 つだけあり、エンコーダは入力 xi を hi に変換した後、線形分類子を通じてすべてのトークンの分布を取得します(つまり、最初に変換し、次にソフトマックス)

  3. 各音響特徴は実際には非常に小さいため、そこに含まれる情報はトークンを構成しない可能性があるため、トークンに新しいトークンを追加する新しいメカニズムが追加されます。∅< /span>

    • 何を出力すればよいかわからない場合は、このトークンを出力できます

    • CTC はダウン サンプリングを無視します。T 音響特徴を入力すると、< a i=3>T が出力されます。 トークン

    • 最後に、CTC は重複したトークンを融合し、トークンを削除します

1.2 トレーニングの問題
  1. では、CTC はどのようにトレーニングすべきでしょうか? 理論的には、各出力トークン分布のクロス エントロピーと正しいワンホット ベクトルを計算する必要があります ですが、実際には、その音響特徴が短すぎるため、出力トークンは正しいトークン数よりもはるかに多くなります。それぞれの正しいラベルが何であるかわかりません< a i =4>。

  2. したがって、大部分において、トレーニングに使用できるラベルを作成する必要があります。

  3. ラベルを自分で作成する操作は、位置合わせと呼ばれます。

  4. これは、実際には多くの Alignment メソッドがあるという事実につながります。たとえば、下の図では、4 つのトークン出力の場合、truth には 2 つのトークンしかありません (素晴らしい)。多くの Alignment メソッドがあります。では、トレーニング用のラベルはどのように選択すればよいのでしょうか?最終的な結果は次のとおりです。全部欲しいです! 考えられるすべてのアライメント結果がトレーニングに使用されます。

1.3 CTC は本当に実現可能ですか?
  • さまざまなトークンを使用した CTC による音声認識の結果の一部を次に示します。

  • 以下は、同じデータセットを使用して異なるモデルで実行された比較実験です。

    • このうちWERはエラー率です。

    • 見栄えを良くするには、CTC の後にさらに処理 (言語モデル) を実行する必要があることを理解するのは難しくありません。

    • したがって、多くの人が CTC を end2end モデルのランクから追い出したことさえあります。

1.4 CTCの問題点
  • CTC の最終線形分類器を Decoder とみなすことができますが、これらの Decoder は一度に 1 つの h ベクトルのみを食べてトークンを出力し、各 Decoder は独立しています。

  • その場合、次の問題が発生します。

    • 最初の 3 つのフレームは確かにトークン「c」に対応しており、これらが合わさって「c」の発音を形成します。

    • 各分類子は独立して存在するため、最初のフレームが c として認識され、2 番目のフレームが理解できない場合、 として認識されます。 3 番目のフレームは c として認識されます。

    • この場合、CTC の結果はスタッタリングと同様になり、最終出力は「cc」になります。

    • しかし、最初の音響特徴が c として認識され、2 番目の音響特徴が として認識された場合、エンコーダーは次のことを学習できることが期待できます。 3 つ目は、識別における c の確率を適切に下げることができます。

実際には、LAS と CTC を組み合わせて、LAS のエンコーダー プロセス中に CTC を同時に実行し、2 つのモデルを同時にトレーニングし、同時に 2 つの損失を発生させる別の方法があります。実際、CTC は LAS のエンコーダとみなすことができます。

二、RNNトランスデューサ(RNN-T)

2.1 リカレントニューラルアライナー(RNA)

RNA は RNN-T よりも後に発表されましたが、モデル導出の観点から見ると、RNA は RNN-T と CTC の間の移行にあたります。

LSTM (Long Short-Term Memory):テキスト、音声、時系列などのシーケンス データを処理するために特別に設計された RNN の変種。従来の RNN と比較して、LSTM はより強力なメモリ容量と勾配消失問題を防ぐメカニズムを備えているため、長いシーケンス データを処理する際のパフォーマンスが向上します。

  • CTC の弱点に対処するために、各分類子は独立して識別されます。

  • RNA は、実際には CTC の線形分類子を LSTM に置き換えます。

2.2 RNN-T、RNA、そしてさらなる改良

RNA は再度修飾されることで RNN-T になることがあります。

  • ベクトル マップをトークンの文字列として認識できるかという質問について考えてみましょう。たとえば、「/θ/, /ð/」と聞こえると、th として認識されます。

  • RNN-T はこれを実行できます。RNA はベクトルを入力してトークンを出力するだけですが、RNN-T はモデルが満足されるまで同じベクトルにトークンを出力し続けることができます ( はエンドマークの数字です)

  • たとえば、次の例:

    • ここで、 は、音響特徴の認識の終了と次の認識の開始を表します。

    • したがって、実際には、元の出力では、T は前述の入力音響特徴の数です)T が存在します。 (ここで、

  • ただし、これは CTC と同じトレーニングの問題、つまりデータセットの位置合わせの問題も引き起こします。 の場合、指定されたデータは使用されず、次の状況が発生します。

    • ここでは、「すごい」の音声に対応する 4 つの音響特徴が入力されています。ただし、 がどこに配置されるべきかはわかりません。それを言う

    • そこで RNN-T が選択した応答方法は CTC と同じ、徹底的なすべてのトレーニングです。

2.3 RNAに基づくRNN-Tの改良(言語モデルの追加)
  • 実際、RNN-T は元の線形分類器を RNA のような RNN に置き換えるのではなく、LM として別の RNN モデルをトレーニングします。 、分類器間の依存関係を実現します。

    • 画像上部の青い四角がそれです。以前に生成されたトークンを受け取り、次のトークンの生成に影響を与える出力を生成します。

    • ただし、この RNN は 記号を無視することを選択しました。これにはいくつかの理由があります。

      • まず、これは実際には LM の役割を果たし、その入力はトークンのみです。学習させる場合、事前学習に大量のテキストが使用されますが、テキストには 記号がないため、 < a i=3>∅ 無視します。

      • 2 番目に、アライメント問題では消尽を選択したと前述しました。これは、優れたアルゴリズムを使用する必要があり、無視する必要があることを意味します。∅< LM of /span>< i=2>。したがって、この設計はモデルのトレーニング用です。モデルに使用されているアルゴリズムを以下に紹介します。

三、神経変換器

CTC、RNA、および RNN-T は一度に 1 つの音響特徴のみを読み取りますが、Neural Transducer は一度に多くの音響特徴を読み取ります。

  • Neural Transducer は、ウィンドウ内で一度に多くの音響特徴を読み取り (サイズは自分で設定します)、アテンション メカニズムを通じてそれらを処理し、最終的に一連のトークンを出力します。

  • アテンションを使用する場合は、1 つのウィンドウでのみ使用してください。

  • 窓はどのくらいの大きさにすればよいでしょうか?元の論文の実験結果:

    • 注目すると良いですね〜

    • ここでもう 1 つ追加すべきことは、上記のLSTM-ATTENTION は前に紹介したものであるということです。位置を認識した注意

四、Monotonic Chunkwise Attention(MoChA)

MoChA は、Neural Transducer に基づいて、ウィンドウ移動のステップ数を動的に変更します。

  • MoChA の重要な点は、アテンション メカニズムに似た追加のモジュールを追加することです。

    • 入力: 2 つのベクトル、隠れ状態と音響特徴

    • 出力: はい/いいえ、つまりウィンドウがここに配置されるかどうか

  • 推論プロセス:

    • まず、フレームを 1 つずつ入力して、ウィンドウを取り込むかどうかを確認します。

    • がウィンドウを閉じた後、アテンション メカニズムを実行してトークンを生成します。このウィンドウではトークンが 1 つだけ生成され、 は出力されないことに注意してください。

    • 次に、前の手順に進み、ウィンドウを移動し続け、ウィンドウを置くかどうかを確認し、ウィンドウを置いた後、テキストの出力を続けます。

5. いくつかの主要モデルのまとめ

  • LAS: seq2seq です

  • CTC: デコーダは線形分類器の seq2seq です

  • RNA: 何かを入力して何かを出力する seq2seq

  • RNN-T: 1 つのことを入力して複数のことを出力できる seq2seq

  • ニューラル トランスデューサ: 一度に 1 つのウィンドウを入力する RNN-T

  • MoCha: ウィンドウモバイルおよびスケーラブルな神経トランスデューサー

以上で音声認識タスクの説明を終了します。さらに、音声認識タスクについては 3 つの選択コースがあり、鉄は熱いうちに打って、この記事が属するコラムの選択 1、選択 2、および選択 3 を確認することをお勧めします。​ 

 

おすすめ

転載: blog.csdn.net/m0_56942491/article/details/134012653