コンテンツにスキップ

第7回 音声と統計モデル(HMM・GMM)+自己教師あり表現学習

この回の資料


本文の項目番号とHTMLスライドのページ番号は異なる。

本日の到達目標

  1. 従来型音声認識システムの全体アーキテクチャを説明できる
  2. HMMの3要素を理解し、音声認識への応用を説明できる
  3. GMMが連続値の特徴量の出力確率密度をどう表すかを理解する
  4. 自己教師あり学習の概念を理解し、wav2vec 2.0とHuBERTの違いを説明できる
  5. 発展:マルコフ性と出力独立の2つの仮定から、系列の確率が積に分解されることを自分で導ける

進化の視点:乳児の統計学習と機械学習をどう比較するか

8か月児に人工的な音節列を提示した実験では、音節間の統計的な関係を手がかりに、列の中でまとまりを作っていた音節列を区別する結果が得られた(Saffran, Aslin & Newport, 1996)。これは語の切り出しに関わる発達研究であり、語の意味を獲得したことや、言語の進化過程そのものを示す実験ではない。

技術への接続:wav2vec 2.0やHuBERTも、文字起こしを使わず音声の規則性から学ぶ。ただし、前者はマスク位置に対応する量子化表現を候補から識別し、後者はクラスタIDを予測する。どちらも単純な「次に来る音の予測」や、元の波形の復元そのものではない。

共通するのは入力の規則性を利用する点であり、人間と同じ学習機構だとは結論できない。また、乳児の入力経験とモデルの学習量を比べるには、期間・反復回数・文字起こしの有無・達成課題などをそろえる必要がある。

問い:人工言語への反応とASRの文字起こし精度は異なる課題である。同じ入力と評価課題を使って、何を比較すれば学習の共通点・相違点を検証できるか。


項目1: 従来型音声認識の全体アーキテクチャ

音響モデル・発音辞書・言語モデルを統合する

従来型ASRの代表的な構成では、複数のモデルをデコーダが組み合わせて探索する。音素列を一つに決めてから言語モデルへ渡すだけの直列処理ではない。

要素 役割 代表例
特徴量抽出 波形を短時間の特徴量列に変換する MFCCなど
音響モデル(AM) 特徴量列と音響状態の対応を評価する GMM-HMM、DNN-HMM
発音辞書 単語と音素列の対応を与える 単語ごとの読みの辞書
言語モデル(LM) 単語列の事前確率・文脈を評価する N-gramなど
デコーダ 上記の情報を統合して候補の単語列を探索する Viterbi、ビーム探索など

基本的な認識の目的は、観測列\(O\)から事後確率の高い単語列\(W\)を選ぶこと:

\[W^*=\arg\max_W P(W\mid O)=\arg\max_W p(O\mid W)P(W)\]

実装では言語モデルの重みや単語挿入ペナルティなども利用する。HMMの最良状態パスを探す処理と、単語列の確率を比較する処理は同一ではない(Kaldiのデコードグラフ解説)。


項目2: マルコフ連鎖の概念

状態と遷移

HMMを理解するには、まずマルコフ連鎖が必要。

マルコフ性(Markov Property):

\[P(q_t \mid q_{t-1}, q_{t-2}, \ldots, q_1) = P(q_t \mid q_{t-1})\]

「現在の状態は、直前の状態だけに依存する」という仮定。

具体例:天気のマルコフ連鎖

状態集合 \(Q = \{\text{晴れ}, \text{曇り}, \text{雨}\}\)

遷移確率行列 \(A\):

\[A = \begin{pmatrix} P(\text{晴}|\text{晴}) & P(\text{曇}|\text{晴}) & P(\text{雨}|\text{晴}) \\ P(\text{晴}|\text{曇}) & P(\text{曇}|\text{曇}) & P(\text{雨}|\text{曇}) \\ P(\text{晴}|\text{雨}) & P(\text{曇}|\text{雨}) & P(\text{雨}|\text{雨}) \end{pmatrix} = \begin{pmatrix} 0.7 & 0.2 & 0.1 \\ 0.3 & 0.4 & 0.3 \\ 0.2 & 0.3 & 0.5 \end{pmatrix}\]

音声との対応

音声では「状態 = 音素の一部(音素サブユニット)」と考える。音声は時間軸上で状態が遷移する過程として捉えられる。


項目3: HMMの3要素

隠れマルコフモデル(Hidden Markov Model)の定義

HMMとは、観測できない(隠れた)状態系列から観測可能な出力が生成されるモデル。

\[\lambda = (A, B, \pi)\]

3要素:

記号 名前 意味
\(\pi_i = P(q_1 = i)\) 初期確率 時刻1で状態\(i\)から始まる確率
\(a_{ij} = P(q_{t+1}=j \mid q_t=i)\) 遷移確率 状態\(i\)から状態\(j\)へ遷移する確率
\(b_i(o_t)\) 出力分布 状態\(i\)のもとでの観測の確率(離散値)または確率密度(連続値)

HMMが「隠れ」ている理由

  • 観測できるもの: 音声の特徴量列 \(O = (o_1, o_2, \ldots, o_T)\)
  • 観測できないもの: どの音素(状態)がどのフレームに対応するか

音声認識の最終目標は文字・単語列の推定である。HMMの復号では、そのための処理として、観測列\(O\)に対応する状態系列を推定する。状態は音素の一部分などに対応させる。

以下の導出は離散観測の確率\(P\)で示す。MFCCなどの連続値を扱う場合は、\(b_i(\mathbf{o})=p(\mathbf{o}\mid q=i)\)という確率密度を使う。同じ一点が出る確率ではなく、密度値は1を超える場合もある。


項目4: 音声認識でのHMMの使い方(音素HMM)

音素HMMの構造

説明用に各音素へ3状態の左から右へ進むHMMを割り当てる。実際には前後の音素などを含む文脈依存状態も使われる。

遷移 パラメータ 意味
S1 → S1、S2 → S2、S3 → S3 \(a_{11},a_{22},a_{33}\) 自己ループ
S1 → S2 \(a_{12}\) 次の状態へ進む
S2 → S3 \(a_{23}\) 次の状態へ進む
S3 → 終端 \(a_{3,\mathrm{end}}\) 音素HMMを出る

各状態から特徴量が出力される。各状態の出る遷移確率は、終端への遷移も含めて合計1とする。

単語・文のHMM

単語のHMMは、その単語を構成する音素HMMを直列につなぐことで作成する。

例:「あいうえお」→ /a/ HMM → /i/ HMM → /u/ HMM → /e/ HMM → /o/ HMM

直感: 音素ごとの継続時間は話者やペースによって異なる。自己ループの遷移確率(\(a_{ii}\))が高いほど、その状態(音素の一部)が長く続く。これを使って音声の時間的なバリエーションを吸収できる。

HMMの3つの問題

  1. 評価問題: 観測列 \(O\) がモデル \(\lambda\) から生成された確率 \(P(O|\lambda)\) を求める → 前向きアルゴリズム
  2. 復号問題: 観測列 \(O\) に対して最も尤もらしい状態系列 \(Q^*\) を求める → Viterbiアルゴリズム
  3. 学習問題: 観測列から \(\lambda = (A, B, \pi)\) を推定する → Baum-Welchアルゴリズム(EMの特殊版)
導出①:2つの仮定が、系列の確率を積に分解する

状態系列 \(Q = (q_1, \ldots, q_T)\) と観測系列 \(O = (o_1, \ldots, o_T)\) の同時確率を考える。何も仮定しなければ、確率の連鎖則で分解できるだけで、各項は過去のすべてに依存したままである。

\[P(Q, O) = P(q_1) \prod_{t=2}^{T} P(q_t \mid q_1, \ldots, q_{t-1}) \times \prod_{t=1}^{T} P(o_t \mid q_1, \ldots, q_T, o_1, \ldots, o_{t-1})\]

ここに2つの仮定を入れる。

マルコフ仮定(項目2)を使うと、遷移の項が直前の状態だけで決まる。

\[P(q_t \mid q_1, \ldots, q_{t-1}) = P(q_t \mid q_{t-1}) = a_{q_{t-1}q_t}\]

出力独立の仮定を使うと、出力の項がその時刻の状態だけで決まる。

\[P(o_t \mid q_1, \ldots, q_T, o_1, \ldots, o_{t-1}) = P(o_t \mid q_t) = b_{q_t}(o_t)\]

この2つを代入すると、長い条件付き確率がすべて短くなり、次の形になる。

\[P(Q, O \mid \lambda) = \pi_{q_1}\, b_{q_1}(o_1) \prod_{t=2}^{T} a_{q_{t-1}q_t}\, b_{q_t}(o_t)\]

どの行で何を使ったかを見てほしい。 遷移の項が短くなったのはマルコフ仮定、出力の項が短くなったのは出力独立の仮定による。項目3の3要素 \((A, B, \pi)\) だけでモデルが書けるのは、この2つを認めたからである。

この仮定は音声では厳密には成り立たない

実際の発話では、いま出ている音は前後の音の影響を受ける(調音結合)。出力独立の仮定はこれを無視している。文脈依存HMMやニューラル特徴量で前後の情報を取り込む工夫もある。End-to-EndモデルでもCTCのように条件付き独立性を仮定する方式があり、「End-to-Endなら独立性を仮定しない」とは言えない。

使った数学:条件付き確率の連鎖則(統計学Ⅱ第2回)。

導出②:前向きアルゴリズムは「同じ計算を繰り返さない」ための漸化式

評価問題は \(P(O \mid \lambda)\) を求めることである。導出①の式を、ありうる状態系列すべてについて足せばよい。

\[P(O \mid \lambda) = \sum_{Q} P(Q, O \mid \lambda)\]

だが状態系列は \(N\) 状態・長さ \(T\) なら \(N^T\) 通りある。状態3、100フレームという小さな例でも \(3^{100} \approx 5.15 \times 10^{47}\) 通りあり、数え上げは不可能である。

そこで、時刻 \(t\) に状態 \(i\) にいて、そこまでの観測が出ている確率を1つの数にまとめる。

\[\alpha_t(i) = P(o_1, \ldots, o_t,\, q_t = i \mid \lambda)\]

すると時刻 \(t+1\) の値は、時刻 \(t\) の値だけから作れる。

\[\alpha_{t+1}(j) = \left[\sum_{i=1}^{N} \alpha_t(i)\, a_{ij}\right] b_j(o_{t+1})\]

この漸化式は、マルコフ仮定と状態を条件とした出力独立性を使っている。 次の状態が直前だけで決まるので、そこに至るまでの経路の中身を覚えておく必要がない。経路ごとに別々に持っていた情報を、状態ごとの1つの数に畳み込める。

初期値は\(\alpha_1(i)=\pi_i b_i(o_1)\)、最後に\(P(O\mid\lambda)=\sum_i\alpha_T(i)\)とする(長さ\(T\)を固定し、別の終端確率を使わない場合)。

密な遷移行列では計算量は\(O(N^2T)\)。先ほどの例なら遷移の計算規模は\(3^2\times100=900\)程度となるが、初期化・出力との積・加算などもあるため、厳密に900回の演算という意味ではない。Viterbiは総和を最大値へ置き換え、さらに最良経路を記録する。

使った数学:総和の順序の入れ替えと、マルコフ仮定による項の切り離し。

この授業で扱う統計数理の範囲外

後ろ向き確率との組み合わせや、Baum-Welch がパラメータをどう更新するかの具体的な式は扱わない。


項目5: Viterbiアルゴリズムの直感的理解

問題設定

観測列 \(O = (o_1, o_2, \ldots, o_T)\) が与えられたとき、最も確率の高い状態系列

\[Q^* = \arg\max_Q P(Q, O \mid \lambda)\]

を求めたい。

動的計画法による解法

全探索では状態数\(N\)、時刻数\(T\)に対して \(N^T\) 通りの候補があるが、Viterbiは \(O(N^2 T)\) で解ける。

定義:

\[\delta_t(i) = \max_{q_1, \ldots, q_{t-1}} P(q_1, \ldots, q_{t-1}, q_t=i, o_1, \ldots, o_t \mid \lambda)\]

「時刻\(t\)に状態\(i\)にいる最良パスの確率」

漸化式:

\[\delta_t(j) = \left[\max_i \delta_{t-1}(i) \cdot a_{ij}\right] \cdot b_j(o_t)\]

初期値は\(\delta_1(i)=\pi_i b_i(o_1)\)。各状態へ入る最良の直前状態を記録し、最後に最大の\(\delta_T\)から逆にたどって状態系列を復元する。確率の積によるアンダーフローを避けるため、実装では対数を使うことが多い(HMM解説)。

最良パスを記録して復元する

段階 処理
初期化 時刻1の各状態の値を求める
時刻を進める 各状態へ入る遷移のうち、値が最大のものを残す
経路を記録する 最大値を与えた直前状態の番号を保存する
復元する 最終時刻の最良状態から、保存した番号を逆にたどる

遷移は必ず時刻\(t-1\)から\(t\)へ進む。状態内の自己ループも、次の時刻の同じ状態への遷移である。

直感: 迷路の最短経路問題と同じ発想。各時刻で「ここに来る最良の経路」だけを記録しながら前に進む。


項目6: ガウス混合モデル(GMM)の基礎

ガウス分布の復習

1次元ガウス分布:

\[\mathcal{N}(x; \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)\]

多次元ガウス分布(例:13次元MFCCにデルタ・デルタデルタを加えた39次元特徴量):

\[\mathcal{N}(\mathbf{x}; \boldsymbol{\mu}, \boldsymbol{\Sigma}) = \frac{1}{(2\pi)^{D/2}|\boldsymbol{\Sigma}|^{1/2}} \exp\left(-\frac{1}{2}(\mathbf{x}-\boldsymbol{\mu})^\top\boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu})\right)\]

GMMとは

単一ガウス分布では捉えられない複雑な分布を、複数のガウス分布の重み付き和で近似する。

\[p(\mathbf{x}) = \sum_{k=1}^{K} w_k \cdot \mathcal{N}(\mathbf{x}; \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)\]

ここで: - \(K\): 混合数(成分数) - \(w_k \geq 0\), \(\sum_k w_k = 1\): 混合重み - \(\boldsymbol{\mu}_k\): 第\(k\)成分の平均ベクトル - \(\boldsymbol{\Sigma}_k\): 第\(k\)成分の共分散行列。上の密度式では正定値を仮定する

音響特徴量のモデリング

音素/a/の特徴量の分布は、話者差や発話条件などによって複雑な形状になり得る。GMMは\(K\)個の成分で、多峰性を含むさまざまな分布を柔軟に近似できる。

例えば特徴量空間に異なる位置・広がりの山があれば、複数の成分で近似できる。ただし、学習された成分が性別や感情などの意味のある群と一対一に対応するとは限らない。

導出③:混合重みの規格化を、全確率の公式から理解する

なぜ和の形で書くのか。特徴量が「まず \(K\) 個のグループのどれかに属し、そのグループの正規分布から出てくる」と考える。グループを表す隠れた変数を \(z \in \{1, \ldots, K\}\) とすると、全確率の公式(統計学Ⅱ第3回)から

\[p(\mathbf{x}) = \sum_{k=1}^{K} P(z=k)\; p(\mathbf{x} \mid z=k)\]

ここで \(P(z=k) = w_k\)、\(p(\mathbf{x} \mid z=k) = \mathcal{N}(\mathbf{x}; \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)\) と置けば、上の式そのものになる。

\(\sum_k w_k=1\)と\(w_k\geq0\)は、混合重みを確率として解釈するための条件である。 隠れ変数\(z\)の分布を考えるとこの条件の理由がわかり、推定時にもこの制約を守る。

平均の離れた正規分布を混ぜれば、複数の山を表せる。ただし、2成分だから必ず2つの山になるわけではない。山の数は平均の距離・分散・重みに依存する。単一の非退化な正規分布の山は一つである。

使った数学:全確率の公式(統計学Ⅱ第3回)。

導出④:期待値最大化法は、直接解けない最尤推定を回り道で解く

GMM のパラメータを最尤推定したい。独立な観測\(\mathbf{x}_1,\ldots,\mathbf{x}_M\)に対する対数尤度は、各観測の対数密度を足した形になる。

\[\ell(\theta)=\sum_{m=1}^{M}\log\left[\sum_{k=1}^{K}w_k\,\mathcal{N}(\mathbf{x}_m;\boldsymbol{\mu}_k,\boldsymbol{\Sigma}_k)\right]\]

対数の中に和が入っているのが問題である。 微分して0と置いても、\(\log\) の中の和がほどけず、閉じた形の解が出ない。単一の正規分布なら \(\log\) と \(\exp\) が打ち消し合って標本平均と標本分散がそのまま答えになるのと、対照的である。

そこで、どのグループから出たか(隠れ変数 \(z\))が分かっていたと仮定してみる。分かっていれば、各グループに属するデータだけで平均と共分散を計算すればよく、単一正規分布の問題に戻る。実際には分からないので、次の2段階を繰り返す。

  • E ステップ:いまのパラメータのもとで、各データが各グループから出た確率(負担率)を計算する
  • M ステップ:その負担率を重みとして、平均・共分散・混合重みを更新する

HMM の学習に使う Baum-Welch も、隠れているのが状態系列であるだけで、同じ構造をしている。導出②の前向き確率は、その E ステップの計算に使われる。

この授業で扱う統計数理の範囲外

この手続きが対数尤度を減らさないこと(単調増加性)の証明と、下界を作る際に使うイェンセンの不等式やカルバック・ライブラー情報量の扱いは、この授業では扱わない。厳密なE・Mステップでは訓練対数尤度を減らさないが、初期値によって別の解へ向かい、大域的最適解は保証されない。訓練尤度の改善は汎化性能の改善も保証しない。また、GMMでは共分散が縮んで尤度が発散することがあるので、実装では共分散の正則化などを使う(scikit-learn公式)。

使った数学:対数と和の関係、条件付き確率(統計学Ⅱ第2回)。


項目7: GMM-HMMシステム

HMMの出力確率密度としてのGMM

HMMの各状態 \(i\) における連続観測の出力確率密度 \(b_i(\mathbf{o})\) をGMMでモデル化する:

\[b_i(\mathbf{o}) = \sum_{k=1}^{K} w_{ik} \cdot \mathcal{N}(\mathbf{o}; \boldsymbol{\mu}_{ik}, \boldsymbol{\Sigma}_{ik})\]

GMM-HMMシステムの全体像

MFCCなどの特徴量列に対する各状態の出力密度をGMMで計算する。デコーダはHMMの遷移・発音辞書・言語モデルも組み合わせ、認識結果を探索する。単一の音素列を先に確定してから言語モデルを使うとは限らない。

GMM-HMMの学習

  • EMアルゴリズム(Baum-Welch)でHMMのパラメータを反復更新
  • Eステップ:現在のモデルで各フレームが各状態・成分に属する確率を計算
  • Mステップ:その確率を使ってパラメータ(\(\mu\), \(\Sigma\), \(w\), \(A\), \(\pi\))を更新

項目8: 深層学習への移行(DNN-HMMシステム)

音響モデルをDNNへ置き換える

GMMは柔軟な分布を表せるが、多数の状態・混合成分を使うとパラメータが増える。共分散を対角に制限する方法などが使われた。DNN-HMMでは、DNNで音響状態の事後確率を推定し、HMMの系列構造と組み合わせる。

\[P(q_t=i\mid\mathbf{o}_t)=\operatorname{softmax}(\mathrm{DNN}(\mathbf{o}_t))_i\]

古典的なハイブリッド構成では、状態の事前確率で割った値を尤度に比例するスコアとして使う:

\[p(\mathbf{o}_t\mid q_t=i)\propto\frac{P(q_t=i\mid\mathbf{o}_t)}{P(q_t=i)}\]

入力には周辺フレームも含められる。DNNの出力を、そのままGMMの密度と同じ量だと解釈しない。

性能を比較する際の注意

Hinton et al. (2012)は、複数の課題でDNN音響モデルによる改善を報告している。ただし、性能はモデルだけでなく学習データ・辞書・言語モデル・評価条件にも依存する。

TIMITの音素認識で報告されるPER(音素誤り率)と、単語認識のWER(単語誤り率)は区別する。 異なる指標やデータセットの数値を、そのまま手法の順位として並べない。


項目9: 自己教師あり学習とは

ラベルなし学習の動機

教師ありASRでは「音声+文字起こし」のペアを使う。文字起こしの作成には人手が必要で、利用できるラベル付きデータは言語・分野ごとに異なる。作業時間も音質や転記の詳細さなどに依存する。

→ 大量のラベルなし音声データから有用な表現を学習したい

事前学習(Pre-training)とファインチューニング(Fine-tuning)

[Stage 1: 事前学習] ─── ラベルなし大規模データ(例:1,000時間の音声)
                         自己教師あり目標で学習
                         → 汎用的な音声表現(モデルパラメータ)
                              ↓
[Stage 2: ファインチューニング] ─── 少量のラベル付きデータ(例:10時間)
                                   タスク特化した学習
                                   → 対象タスク用の認識モデル(別データで評価する)

Masked Predictionとは

自己教師あり学習の代表的な手法。入力の一部をマスク(隠す)し、そのマスク部分を予測させる。

  • テキスト: BERTのMLM(Masked Language Model) — 一部のトークンを隠すなどして、そのトークンを予測
  • 画像: MAE(Masked Autoencoder) — パッチをマスクして予測
  • 音声: wav2vec 2.0, HuBERT — 潜在特徴量の一部をマスクし、対応する量子化表現やクラスタIDを予測

直感:周囲の情報から隠れた部分を推定する訓練。入力自体から学習用の目標を作ることを「自己教師あり」と呼ぶ。人間と同じ内部処理をするという意味ではない。


項目10: wav2vec 2.0の仕組み

アーキテクチャ概要

音声波形 x
   ↓
[CNN特徴抽出器 (Feature Encoder)]
  ・7層の時系列CNN
  ・25msウィンドウ、20msシフト
  ・波形 → 潜在特徴量列 z₁, z₂, ..., zT
   ↓
   ├─→ [量子化モジュール (Quantizer)]
   │     ・G個のコードブック × V個のエントリ
   │     → 離散トークン q₁, q₂, ..., qT
   │
   └─→ [Transformerエンコーダ]
         ・マスキング(マスクされたzには学習可能なベクトルを挿入)
         → 文脈化表現 c₁, c₂, ..., cT
   ↓
[コントラスト学習]
  マスクされた位置のcᵢ から対応するqᵢ を正例として予測

CNN特徴抽出器

生波形から直接特徴量を学習する(MFCCは不要)。

\[(\mathbf{z}_1,\ldots,\mathbf{z}_T)=f_{\mathrm{CNN}}(\mathbf{x})\]

原論文の16 kHz入力では、出力間隔は約20 ms、各出力の受容野は25 ms。20 msごとの非重複切り出しを独立に処理するという意味ではない(原論文§4.2)。

量子化モジュール

連続特徴量\(\mathbf{z}_t\)からコードブックの項目を選び、量子化表現\(\mathbf{q}_t\)を作る。離散的な選択を含むため、Gumbel-Softmaxとstraight-through推定で勾配を近似して学習する。

\(G=2\)個のコードブック(各\(V=320\)エントリ)なら、組合せは最大\(320^2=102400\)通り。すべて使われるとは限らず、各コードが音素と一対一に対応するわけではない。

コントラスト学習損失

マスクされた時刻 \(t\) について:

\[\mathcal{L}_t = -\log \frac{\exp(\text{sim}(\mathbf{c}_t, \mathbf{q}_t)/\kappa)}{\sum_{\tilde{\mathbf{q}} \in Q_t} \exp(\text{sim}(\mathbf{c}_t, \tilde{\mathbf{q}})/\kappa)}\]
  • \(\mathbf{c}_t\): Transformer出力(文脈表現)
  • \(\mathbf{q}_t\): 正解の量子化ベクトル
  • \(Q_t\): 正例1つ+\(K\)個の負例。原論文では同じ発話の別のマスク位置から負例を選ぶ
  • \(\mathrm{sim}\)はコサイン類似度、\(\kappa>0\)は温度パラメータ

直感:この文脈に対応する量子化表現は、候補のどれかを当てる訓練。コードブックの利用を分散させる多様性損失も加える。量子化側にはマスク前の特徴量を渡す(原論文§3)。


項目11: HuBERTの特徴

HuBERT(Hidden Unit BERT)とは

Hsu et al. (2021)が提案。wav2vec 2.0とは異なり、オフラインで作ったクラスタIDを学習目標に使う。

核心的アイデア:オフライン音響クラスタリング

訓練サイクル:

[イテレーション0]
  MFCCにk-meansクラスタリング → 擬似ラベル(k個のクラスタID)
   ↓
[Stage 1学習]
  Transformerエンコーダを擬似ラベルの分類で学習(Masked Prediction)
   ↓
[イテレーション1]
  Stage 1のTransformer特徴量にk-meansクラスタリング → 更新した擬似ラベル
   ↓
[Stage 2学習]
  更新した擬似ラベルで再学習
   ↓
  繰り返す...

wav2vec 2.0との比較

項目 wav2vec 2.0 HuBERT
離散化 量子化モジュール(end-to-end) k-meansクラスタリング(オフライン)
予測目標 量子化ベクトル 離散クラスタID
損失関数 コントラスト損失+多様性損失など クロスエントロピー(マスク部分)
特徴 学習中に量子化も最適化 反復的に擬似ラベルを更新

擬似ラベルをどう解釈するか

  • クラスタIDは音響特徴の類似性をまとめた番号で、正解の音素ラベルではない
  • 原論文は、不完全でも一貫した目標を予測する訓練から有用な表現を学べることを報告している
  • 原論文ではクラスタリングと表現学習の反復で改善を報告しているが、反復すれば必ず改善するという保証ではない

項目12: 自己教師あり表現の活用(下流タスクへのファインチューニング)

ファインチューニングの手順

事前学習済みモデル(wav2vec 2.0 / HuBERT)
         ↓
[タスク特化ヘッドを追加]
  ASR: CTCヘッド(文字・音素の分類器)
  感情認識: 分類ヘッド
  話者認識: 話者埋め込みヘッド
         ↓
[少量ラベルデータでファインチューニング]
  全体をエンドツーエンドで学習 or 上位層だけ学習
         ↓
対象タスク用モデル(別データで性能を確認)

ラベル付きデータ量と性能:条件をそろえた比較

wav2vec 2.0原論文のTable 1から、BASEモデル・LS-960(960時間の音声)で事前学習・4-gram言語モデルで復号という同じ条件を取り出す。値はLibriSpeechのテストセットにおけるWER(%)。

ファインチューニングのラベル付き音声 test-clean test-other
10分 9.1 15.6
1時間 5.5 11.3
10時間 4.3 9.5
100時間 3.4 8.0

出典:Baevski et al. (2020), Table 1。10分は追加学習に使う文字起こし付き音声の量であり、学習全体の音声量ではない。事前学習用音声に加え、4-gram言語モデルにはテキストデータも使われる。

この結果は指定された英語読み上げ音声の条件での値であり、日本語・雑音・別のタスクに同じ性能を保証しない。

応用範囲

  • 音声認識 (ASR): テキストへの変換
  • 感情認識/意図分類: それぞれの課題で定義したラベルを推定(感情と意図は別の課題)
  • 話者認識・検証: 誰が話しているかの判定
  • 音声翻訳: 音声から異言語テキストへ
  • 言語識別: 何語を話しているかの判定

項目13: まとめ

本日のポイント

  1. 従来型ASR: 音響モデル・発音辞書・言語モデルをデコーダで統合
  2. HMM: マルコフ性に基づく時系列モデル。\((A, B, \pi)\) の3要素。音素単位でモデル化。
  3. GMM: 複数ガウス分布の重み付き和で音響特徴量の複雑な分布を近似
  4. DNN-HMM: DNNの状態事後確率を利用し、HMMの系列構造と組み合わせる
  5. 自己教師あり学習: ラベルなし大量データから有用な表現を学習
  6. wav2vec 2.0: CNN+Quantizer+Transformerによるコントラスト学習
  7. HuBERT: オフラインk-meansクラスタリングによる反復的な擬似ラベル学習

次回予告(第8回)

ConformerとWhisperを例に、ニューラル音声認識の構成と使い方を学ぶ。


Google Forms テスト問題(第7回)


問1: HMMの3要素

隠れマルコフモデル(HMM)の3要素の説明として、正しいものの組み合わせはどれか。

  • (A) 初期確率 \(\pi_i\):時刻1において状態\(i\)から始まる確率
  • (B) 遷移確率 \(a_{ij}\):状態\(i\)から状態\(j\)へ遷移する確率
  • (C) 出力確率 \(b_i(o)\):観測\(o\)が与えられたときに状態\(i\)にいる確率
  • (D) 学習率:モデルを更新する際のステップサイズ

選択肢:

  1. AとBのみ正しい
  2. AとBとCが正しい
  3. BとCとDが正しい
  4. すべて正しい

正解: 1

解説: - (A) 正しい。\(\pi_i = P(q_1 = i)\) は初期確率の定義そのもの。 - (B) 正しい。\(a_{ij} = P(q_{t+1}=j \mid q_t=i)\) は遷移確率の定義そのもの。 - (C) 誤り。\(b_i(o)\)は状態を条件にした観測の確率、または連続観測の確率密度であり、条件の向きが逆。\(P(\text{状態}\mid\text{観測})\)は事後確率と呼ぶ。 - (D) 誤り。学習率はHMMの定義要素ではなく、学習アルゴリズム(勾配降下法)のハイパーパラメータ。


問2: Viterbiアルゴリズム

Viterbiアルゴリズムに関する説明として最も正確なものはどれか。

  1. 観測列が与えられたモデルからの生成確率 \(P(O|\lambda)\) を効率的に計算するアルゴリズムである
  2. 最も確率の高い状態系列を動的計画法で効率的に求めるアルゴリズムである
  3. HMMのパラメータ \((A, B, \pi)\) をEMアルゴリズムで推定するためのアルゴリズムである
  4. GMMの混合成分数\(K\)を最適に決定するアルゴリズムである

正解: 2

解説: - 選択肢1は「前向きアルゴリズム(Forward Algorithm)」の説明。\(P(O|\lambda)\) を求めるが、最良状態系列は求めない。 - 選択肢2が正しい。Viterbiは復号問題(Decoding Problem)を解く。格子(Trellis)図上で動的計画法を使い \(O(N^2T)\) で最良状態系列を求める。 - 選択肢3は「Baum-Welchアルゴリズム」の説明(HMM学習のEMアルゴリズム特殊版)。 - 選択肢4はBIC(ベイズ情報量基準)などを使う手法の話であり、Viterbiとは無関係。


問3: GMMの特性

ガウス混合モデル(GMM)の説明として誤っているものはどれか。

  1. GMMは複数のガウス分布を重み付き和で組み合わせたモデルである
  2. 混合重み \(w_k\) はすべての成分で合計すると1になる
  3. GMMは成分ごとの平均・共分散・混合重みを使って確率密度を表現する
  4. GMMの成分数\(K\)を大きくすればするほど、常に汎化性能が向上する

正解: 4

解説: - 選択肢1は正しい。\(p(\mathbf{x}) = \sum_{k=1}^{K} w_k \mathcal{N}(\mathbf{x}; \boldsymbol{\mu}_k, \boldsymbol{\Sigma}_k)\) がGMMの定義。 - 選択肢2は正しい。\(\sum_k w_k = 1\), \(w_k \geq 0\) は確率の規格化条件。 - 選択肢3は正しい。成分ごとの広がりや重みを設定でき、各点の成分への所属は事後確率(負担率)で表せる。共分散の形には実装による制約もある。 - 選択肢4が誤り。\(K\)を大きくしすぎると過学習(訓練データに過度に適合)が起きるため、汎化性能は必ずしも向上しない。適切な\(K\)の選択が重要。


問4: wav2vec 2.0のコントラスト学習

wav2vec 2.0のコントラスト学習に関する説明として最も適切なものはどれか。

  1. マスクされたフレームの位置を予測する2値分類問題である
  2. 量子化された表現を正例として、他の時刻のサンプルを負例として識別する学習である
  3. 事前学習から音声認識用の追加学習まで、一切の文字起こしを使わない
  4. オフラインk-meansで作ったクラスタIDを、マスク位置の目標として分類する学習である

正解: 2

解説: - 選択肢1は誤り。マスクされた位置を特定するのではなく、マスクされた位置に対応する量子化コード(内容) を識別する問題。 - 選択肢2が正しい。Transformerの出力 \(\mathbf{c}_t\) から、対応する量子化ベクトル \(\mathbf{q}_t\)(正例)をランダムサンプルした負例 \(\tilde{\mathbf{q}}\) から識別するコントラスト損失を使用。 - 選択肢3は誤り。原論文の事前学習では文字起こしを使わないが、ASR用のファインチューニングでは文字起こしを使う。入力から学習目標を作ることと、すべての学習段階で教師情報を使わないことは異なる。 - 選択肢4はHuBERTの説明。HuBERTがオフラインk-meansで擬似ラベルを使う。


問5: 自己教師あり学習の利点

この回で紹介したwav2vec 2.0・HuBERTの原論文の学習構成について、最も適切なものはどれか。

  1. 少量のラベルなしデータで、ラベル付きデータのみで学習したモデルと同等以上の性能が得られる
  2. 文字起こしのない音声で事前学習することで、ASRへの追加学習に必要なラベル付きデータを減らせる場合がある
  3. ラベルなしデータのみで最終的な音声認識システムを構築でき、ファインチューニングが不要になる
  4. 量子化モジュールにより、連続的な音声特徴量を人間が解釈可能な音素記号に変換できる

正解: 2

解説: - 選択肢1は誤り。少量のラベルなしデータだけで同等以上の性能を保証する方式ではない。 - 選択肢2が正しい。原論文では事前学習した表現を利用し、文字起こし付き音声でASRへ追加学習している。必要量と達成性能は条件による。 - 選択肢3は誤り。この回で紹介した原論文のASR評価では、文字起こし付きデータで追加学習している。既存のASRモデルを追加学習なしで使う場合とも区別する。

  • 選択肢4は誤り。量子化モジュールの出力は学習された離散コード(番号)であり、必ずしも人間が解釈できる音素記号に直接対応するわけではない(対応関係は事後的に分析で確認できる程度)。

参考資料