記事ディレクトリ
比較した
索引 | wav2vec | wav2vec 2.0 | ヒューバート |
---|---|---|---|
マスクメソッド | いいえ | マスクエンコーダからトランスへの入力 | マスクエンコーダからトランスへの入力 |
マスクの長さ | エンコーダ上の複数の連続ステップ、ステップ=10 | ステップ=10 | ステップ=10 |
改善点 | ベース | 量子化の導入 | 位置の量子化と kmeans 反復クラスタリングの改善 |
損失関数 | バイナリコントラスト損失 | 対照的な損失 + 多様性の損失 | コントラストの損失 |
定量化する | なし | エンコーダーの出力を量子化する | トランスと中間層の出力を量子化する |
Wav2Vec: 音声認識のための教師なし事前トレーニング
- Facebookを使ってますか
- コード
- 2019年のインタースピーチ
抽象的な
- 大量のラベルなしデータを教師なし事前トレーニングに使用し、音声認識のための音声の高次元表現を学習します。
- モデル: 多層 CNN ダウンサンプリングで z を取得し、テキスト エンコーダーで L を取得し、過去のフレームを使用して現在のフレームを予測します。
- 結論: fbank-mel を事前トレーニングされた wav2vec 特徴に置き換えます。データのラベルが少ないほど、wav2vec はベースラインと比較してより多くの改善をもたらします。
方法
z = エンコーダネットワーク ( X ) z = エンコーダネットワーク (X)z=e n coder net tw or k ( X ) c =コンテキストネットワーク( zi , . . . , zi − u ) c = コンテキストネットワーク(z_i, ..., z_{iu } )
c=con t e x t ne t w or k ( z _私は、... 、z私−あなた)
- 各 z は 10 ミリ秒の情報をエンコードし、コンテキスト ネットワークは複数の z を入力し、知覚フィールドは 210 ミリ秒です。
- 1を訓練するwav2vec 大きいモデルでは、コンテキスト ネットワークの知覚フィールドはより大きく、810 ミリ秒です。
- 特徴および時間次元でサンプルを正規化する 正規化メカニズムは非常に重要であるため (入力スケーリングとオフセットに対して不変です)、より大きなデータ セットでも適切に一般化できます。
- ノイズ対比二項分類タスク。
- zi + k z_{i+k}z私+ kはその後の k ステップの特性であり、負の例はランダム分布からサンプリングされたノイズです (負のサンプルが他のシーケンスまたは他のスピーカーから取得された場合、結果はさらに悪くなります)
- ci c_iを取得しますc私はオリジナルの mel fbank 入力認識ネットワークを置き換えます。
wav2vec 2.0: 音声表現の自己教師あり学習のためのフレームワーク
- 2020年NIPS
- Facebookを使ってますか
- コードと組み合わせたリファレンス説明
抽象的な
- ラベルなしのデータは、自己教師あり学習を通じて ASR モデルを事前トレーニングした後、少量のデータで微調整するため、現在最良の半教師ありモデルを超える可能性があります。
- LM の方法 + 比較: wav2vec 2.0 は、潜在空間内の音声入力をマスクし、共同学習される潜在表現の量子化に関して定義された対照的なタスクを解決します。
- 量子化コーディング
導入
- 比較タスクでは、隠れ層の特徴を表すガンベル ソフトマックスを通じて離散音声単位を学習する方が、量子化されていない特徴よりも効果的です。
- 事前トレーニング後、ラベル データ + CTC 損失を使用して微調整し、ダウンストリーム ASR タスクに適用します。
- データ量子化を使用する以前の方法は、一般に 2 つの段階に分かれています。データ量子化と、slf-attn を使用した意味情報のモデル化です。この記事では end2end メソッドを使用しており、実験ではより良い結果が得られることが証明されています。10 分間のデータ微調整で、LibriSpeech のクリーン/その他のテスト セットで WER 4.8/8.2 がオンになりました。
方法
モデルアーチ
- 特徴エンコーダー: マルチレイヤー CNN、波形をダウンサンプリングして z を取得します。
- Transformers によるコンテキスト化された表現: 入力 z、モデリング意味情報、出力 c。
- 量子化モジュール: z を量子化してエンコードし、Gumbel ソフトマックスを使用してコードブック トレーニングを最適化します。G コードブック、各コードブックには V 個の部分があります (量子化エラーを減らすために複数のコードブックがより細かく分割されます?)
損失関数
- 損失関数はコントラスト損失 + ダイバーシティ損失の 2 つの部分に分割されます。
- 对比损失: $z_t$mask掉,预测的$c_t$和量化的结果$q_t$计算距离;负样本$q^~}$来自干扰器(同一句话中其他masked step的正态采样)
- 多样性损失:训练码本量化过程。损失函数$L_d$,最大化概率分布
微調整
- 事前学習が完了したら、線形投影をソフトマックス層に置き換え、CCを置き換えます。Cは、CTC 損失制約を使用して分類されます。SpecAugment の実装を参照し、トレーニング プロセス中にタイムステップ マスクとチャネル マスクを追加します。これにより、オーバーフィッティングが大幅に遅延され、精度が向上します。
急行
- トレーニング データ: Librispeech 960h [24] または Libri-Light 60k 時間
HuBERT: 隠れ単位のマスク予測による自己教師あり音声表現学習
抽象的な
- 自己教師あり学習トレーニング ASR は、wav2vec 2.0 と同等またはそれ以上の結果を達成できます。
- 自己教師あり学習の欠点は、多少のラベルがないことです。ラベルはテキストの内容や話者などが比較的単一であることを示すため、モデルの表現学習が制限され、自己教師あり学習は影響を受けないため、より良好な汎化特性が得られます。
イントロ
- 自己教師あり音声表現学習には 3 つの困難があります: (1) 音声には複数の単位がある; (2) NLP とは異なり、トレーニング中に個別の単語や文字の入力はありません; (3) 各単位の長さは異なります。対応するラベルがありません。本稿ではクラスタリングによりラベルを提供する隠れユニットBert, HuBertを提案する。
方法
-
X= CNN エンコーダ(wav)、次元削減
-
Z=Transformer(X)、タイミングモデリング、入力 X は一定の比率α \alphaを持ちます。αのマスク、L u L_uLあなたマスクされていない部分を示します
-
Z と損失のクラスタリング結果
クラスタリング
- クラスタリングの統合方法: 単一の Kmeans クラスタリングでは、初期値または k 値の選択によって結果が大きく異なるため、これを回避するには複数の Kmeans クラスタリングを設定します。さらに、複数の kmeans クラスターは、異なる粒度の表現を学習できます。複数の異なるコードブックを使用して積量子化によって量子化することもできます。
- トレーニング中にクラスタリングを定義します。学習潜在表現を離散化し、トレーニング中にクラスタリング結果を更新します。
関連作業
- HuBERTとDiscreteBERT:
- 同じ点: どちらもマスクされた領域の個別のターゲットを予測します。
- 違い: (1) HuBERT は元の音声を入力してできるだけ多くの情報を伝えますが、これは非常に重要です; (2) HuBERT は単純な kmeans を使用して DiscreteBERT vq-vae よりも優れた結果を達成することが実験で証明されています。(3) 複数のトリックにより教師の質が向上しますが、DiscreteBERT では固定の教師が 1 つだけ使用されます。
- HuBERT と wav2vec 2.0
- wav2vec 2.0 はコントラスト損失を使用し、ネガティブ サンプルのソースを設計する必要があります。Gumble-softmax はダイバーシティ損失に使用され、温度アニーリング スケジュールを設計する必要があります。さらに、wav2vec 2.0 はエンコーダ出力を定量化しますが、この論文のアブレーション実験では、この量子化方法ではエンコーダの能力が限られているため、量子化結果の品質が制限されることが証明されています。
- HuBERT は、音響ユニットの発見ステップをマスクされた予測表現の学習フェーズから分離することにより、より直接的な予測損失を採用します。
- HuBERT は、反復改良ターゲット ラベルの方法を使用して、半教師あり学習における擬似ラベル生成の方法を自己教師あり学習に拡張します。
実験
- トレーニング セット: LibriSpeech audio 960h、または Libri-light 60k 時間。(ボランティアによるオーディオブックの朗読)
- テストセット: Libri-light 10 分、1 時間、10 時間分割および LibriSpeech 100 時間
監視されていないユニットの検出
-
最初の反復: 39-d MFCC は kmeans (k=100) でクラスター化されます。
-
後続の反復: kmeans=500、ターゲット変換器の中間層。クラスタリングのために 960 時間のデータの 10% をサンプリングします (クラスタリング全体のコストが高すぎる)
-
scikit-learn によって実装された MiniBatchKMeans パッケージ、ミニバッチ サイズ = 10000 フレーム、初期化を向上させるために 20 個のランダムな開始。
-
異なるデータ型とデータ量でのクラスタリング結果を比較します (分散が小さいほど、クラスタリング結果は安定します。)