7
5

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 1 year has passed since last update.

論文まとめ:wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations

Last updated at Posted at 2022-02-01

はじめに

以下の論文
[1]A. Baevski, et. al. "wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations"
のまとめ。
journal等は不明。

既に多くの解説があると思うので、要となる事前学習に関してだけザックリまとめ。

概要

  • 音声認識のモデル
  • 事前学習で大量の音声を用いた教師なし学習を行うことで、本学習時のラベル付き音声データを減らすことができる

手法

学習の手順

1)巨大なラベルなしの音声データを使って教師なしで事前学習をする
2)それをfine-tuneして教師ありで学習する

の 2 step。

事前学習時のモデルのネットワーク構造

事前学習時のネットワーク構造は以下。

スクリーンショット 2022-02-01 11.01.37.png

1)図中の下部から音声データ $\mathcal{X}$ を入力する

2)それをCNNでlatent $\mathcal{Z}$ に変換する

3)latentを量子化して $\mathcal{Q}$ とする

4)一方でlatentの一部をmaskしてtransformerに入力し、context representations $\mathcal{C}$ を得る。

このcontext representationsは q を表すように学習する。

5)maskをした部分からのcontext representations と 量子化 $q \in \mathcal{Q}$ とでlossを計算する。

mask部分に対応する q とは一致するようにlossを計算し、一方でそれ以外の q とは一致しないようにlossを計算する。(詳細は後述)これにより、全体の意味を考えながら q を推定するように学習されるだろう。

事前学習時のloss

事前学習時lossは Contrastive Loss と Diversity Loss の2つからなる。

\mathcal{L} = \mathcal{L}_m + \alpha \mathcal{L}_d \tag{2}

Contrastive Loss

先述の「モデルのネットワーク構造」における5)。

${\bf c}_t$: context representations の中でmaskされる時間 t に対応するもの
${\bf q}_t$: latentを量子化したもののうち、maskされる時間 t に対応するもの
${\bf \tilde{q}} \in {\bf Q}_t$: 全ての時間におけるlatentを量子化したもの
$sim({\bf a}, {\bf b}) = {\bf a}^T {\bf b} / | {\bf a} | | {\bf b} |$: 両ベクトル間のコサイン類似度
として

\mathcal{L}_m = - \log \frac{\exp( sim({\bf c}_t, {\bf q}_t)/ \kappa )}{\sum_{\tilde{{\bf q}} \sim {\bf Q}_t} \exp (sim({\bf c}_t, \tilde{\bf q})/ \kappa )}  \tag{3}

とする。

まず右辺は negative logなので、真数部分が1に近ければlossは0に近くなり、真数部分が0に近ければlossはプラスの無限大となる。

真数部分はsoftmax的なものなので、分子は分母に含まれる。

分子が最大化し、分母のうちの分子以外の部分が最小化すれば、真数は1となり、lossは0となる。

つまり、分子に対応する t 時の量子化した値 q と対応する t 時のcontext representation ${\bf c}_t$ とのコサイン類似度が1に近くなり、かつそれ以外のペアのコサイン類似度が遠くなれば、真数部分は 1 に近くなり、lossは0に近くなる。

分母の「t-1時の量子化した値とは異なって欲しい」という部分がキモか?真数分子部分のみ最大化させることを考えると、transformerが前時刻の z を量子化するだけというバカな学習をすれば、t-1時のlatentを量子化したものをt時のcontext representationとして返す。さらに入力が音なので、t時とt-1時の波形は似てる -> t時のlatentとt-1時のlatentは似てる -> t時の量子化とt-1時の量子化が似てる、のであればそれでも成立しそう。

なので「前時刻の z を量子化するだけというバカな学習」は行わず、頑張ってmask以外の部分からcontextを考えて、mask部分の context representationを推定するようになるだろう。

Diversity Loss

これに関してはよくわかってないが、こちらのサイト
https://towardsdatascience.com/wav2vec-2-0-a-framework-for-self-supervised-learning-of-speech-representations-7d3728688cae
のFig 5 においてV entriesを均等に利用するため、V方向に均質したい。

そうすると codebook $p_g$ はV方向でsoftmaxをとっているので確立であるため、エントロピーを最大化することを意味する。これを全てのG方向の p に対して行う。つまり

\mathcal{L}_d = \frac{1}{GV} \sum^G_{g=1} -H(\bar{p}_g) = \frac{1}{GV} \sum^G_{g=1} \sum^V_{v=1} \bar{p}_{g,v} \log \bar{p}_{g,v} \tag{4}
7
5
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
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?