音声言語処理特論 第5回 HMMのパラメータ推定と応用 山本一公 HMM3つの基本問題 1. モデル(HMM)に対する観測系列(音声ではMFCC ベクトル時系列など)の出力確率の計算 – トレリス(前向き、Forward)アルゴリズム 2. 最適な状態系列を求める – Viterbiアルゴリズム 3. モデルから観測系列を出力する確率を最大とする モデルのパラメータの設定 – EMアルゴリズム(Baum-‐Welchアルゴリズム) 音声言語処理特論 第5回 出力確率の計算 • HMMは「生成モデル」 – 観測された特徴系列が当該モデルから出力(生成)される確率が求 まる • 各時刻の特徴ベクトル xt は状態から生成されるものとする – 状態毎に出力確率分布(離散確率分布や混合正規分布)を持つ p (x t | qi (t ) ) = ∑ wm ,i (t ) N (x t | µ m ,i (t ) , Σ m ,i (t ) ) m • 任意の状態系列 s を考え、すべての状態系列に対する確率 の総和を求める(トレリスアルゴリズム) P(X | Θ ) = ∑∏ p (qi (t +1) | qi (t ) )p (x t | qi (t ) ) q t 音声言語処理特論 第5回 トレリスアルゴリズム (前向き(Forward)アルゴリズム) 必ずq1から始まる ↓ q1の初期状態確率が1 q1 1.0 “a” “b” 0.3 x 0.7 0.21 0.5 x 0.8 q2 0.0 q3 0.0 q4 0.0 q5 0.0 0.2 x 0.5 0.4 0.1 “a” 0.0189 0.0396 9 0.0829 0.0108 76 0.169 0.0826 26 0.2 x 0.5 0.6 x 0.6 0.2 x 0.7 0.4 x 0.1 0.3 x 0.4 0.3 x 0.4 0.0 矢印が重なる ところは、加算 0.0 音声言語処理特論 第5回 0.3 x 0.6 0.068 0.012 0.5 x 0.4 1.0 x 0.1 0.0421 94 0.0452 2 最適な状態系列 • 前向きアルゴリズムで求まる確率は、可能な状態系列の全ての総和 – 状態系列は「隠れている」ので分からないから、可能なものを全部考えている • しかし、最適な状態系列が欲しい場合もある – 特徴量時系列を音素ごとに対応付けたい場合等 – DPマッチングのフレーム対応(バックポインタ)操作 • Viterbiアルゴリズム – 可能な状態系列の中から、確率が最大になるものを選ぶ P(X | Θ ) = max ∏ p (qi (t +1) | qi (t ) )p (x t | qi (t ) ) q t log P(X | Θ ) = max ∑ (log p (qi (t +1) | qi (t ) ) + log p (x t | qi (t ) )) q t – 対数を取ると、DPマッチングと同じアルゴリズムが使える(「距離の最小値」が 「対数確率の最大値」に変わっている) – 対数を取るのは計算上の理由もある • 指数関数の計算を避けることで計算量が減る • 乗算が加算に変わることで計算量が減る • アンダーフローを防ぐ(1より小さい数を繰り返し掛けて数値表現が0になってしまうのを 避ける) 音声言語処理特論 第5回 Viterbiアルゴリズム “a” q1 1.0 “b” 0.3 x 0.7 0.21 0.5 x 0.8 q2 0.0 q3 0.0 q4 0.0 q5 0.0 0.2 x 0.5 0.4 0.1 0.2 x 0.5 0.6 x 0.6 0.2 x 0.7 0.4 x 0.1 0.3 x 0.4 0.3 x 0.4 0.0 矢印が重なる ところは、max 0.0 音声言語処理特論 第5回 “a” 0.0189 0.0396 9 0.064 0.0075 6 0.144 0.0518 4 0.3 x 0.6 0.056 0.012 0.5 x 0.4 1.0 x 0.1 0.0259 2 0.0259 2 パラメータの推定 • HMMのパラメータ – 状態間の遷移確率 – 各状態のシンボル出力確率 • 連続型HMMなら、平均ベクトル、共分散行列、混合重み • 状態遷移系列が分かっている場合は、状態毎に「数 え上げによる最尤推定」が使えるが、状態遷移系列は 「隠れている」ので分からない – 学習データから状態遷移系列の確率(各状態の滞在確 率の期待値)を推定し、それに基づいて(学習データの確 率が最大になるように)確率分布のパラメータを更新する ⇒ ExpectaMon-‐MaximizaMonアルゴリズム 音声言語処理特論 第5回 まず「最尤推定」から • 尤度(likelihood):ある仮説(モデル λ)のもと で観測された事象(o)が生じる確率 p(o|λ) – 「モデルの尤もらしさ」 • 尤度が最大となるようにパラメータ推定を行う ことを最尤推定という – 「最も尤もらしい」モデルを推定する 音声言語処理特論 第5回 最尤推定の例(1)-離散分布- 事象 {Xi | i=1, …, M} の確率 Θ={pi} (i=1, …, M) を推定 観測系列 O(Xi の系列)を得た結果 Xi の回数が ni であったとき M M i =1 i =1 n 条件: ∑ pi = 1 の下でP(O | Θ) = ∏ ( pi ) i の対数を最大化 ラグランジュの未定乗数法で M M ⎛ ⎞ M ⎛ ⎞ L = log P(O | Θ) + λ ⎜1 − ∑ pi ⎟ = ∑ ni log pi + λ ⎜1 − ∑ pi ⎟ ⎝ i =1 ⎠ i =1 ⎝ i =1 ⎠ pi での偏微分を 0 とした式と条件式を連立させて解くと M λ = ∑ ni i =1 piML = ni M ∑n i i =1 音声言語処理特論 第5回 数え上げになっている 最尤推定の例(2)-連続分布- 正規分布に従う確率変数 X の分布パラメータ Θ={µ, σ2} を推定 観測系列 O( Xi の系列; i=1,N )を得たとき ⎧ ( x − µ ) 2 ⎫ 1 exp⎨− 確率分布 f X ( X ) = ⎬ のパラメータ Θ={µ, σ2} を 2 2σ ⎭ 2π σ ⎩ ⎧ N ⎫ ( X i − µ ) 2 ⎫ 1 N ⎧ 2 L = log P(O | Θ) = log ⎨∏ f X ( X i )⎬ = − ∑ ⎨log(2π ) + log(σ ) + ⎬ 2 2 σ i = 1 i = 1 ⎩ ⎭ ⎩ ⎭ の最大化で求める。µ、σ2での偏微分を0として解くと µ ML 1 = N N ∑ Xi i =1 1 (σ ML ) 2 = N N ⎛ 1 2 X − ⎜ ∑ i i =1 ⎝ N N 2 1 ⎞ X = ⎟ ∑ i N i =1 ⎠ 数え上げになっている 音声言語処理特論 第5回 N ( ∑ X i2 − µ ML i =1 2 ) 隠れ変数がある場合 -‐ EMアルゴリズム (Baum-‐Welchアルゴリズム) • • 観測できない変数(隠れ変数、HMMでは状態系 列)が存在する場合には繰り返しアルゴリズムで 解く必要がある。 HMMのパラメータを Θ、観測可能変数(特徴ベク トル系列)を x、観測できない変数(状態遷移系 列)を s とする p ( x | Θ ) = ∑ p ( x, s | Θ ) s Q(Θ, Θʹ′) = ∑ p(x, s | Θ )log p(x, s | Θʹ′) s 音声言語処理特論 第5回 隠れ変数がある場合 -‐ EMアルゴリズム (Baum-‐Welchアルゴリズム) ≪定理≫ もし、Q(Θ,Θ’)≧ Q(Θ, Θ) なら、P(x|Θ’)≧P(x|Θ) で ある(等号はΘ = Θ’のときのみ)。このとき、以 下を繰り返すことで、Θを推定できる 1. Θ の初期値を設定する 2. [E-‐step] Q(Θ,Θ’)を最大にするΘ’を最尤推定 3. [M-‐step] Θ を更新する Θ = Θ’ 4. 2.から繰り返し 音声言語処理特論 第5回 定理の証明 log Z ≤ Z − 1の関係を用いれば、 Q(Θ, Θʹ′) − Q(Θ, Θ ) p(x, s | Θʹ′) = ∑ p(x, s | Θ )log p ( x, s | Θ ) s ⎡ p(x, s | Θʹ′) ⎤ ≤ ∑ p(x, s | Θ )⎢ − 1⎥ z ⎣ p(x, s | Θ ) ⎦ = ∑ p(x, s | Θʹ′) − ∑ p(x, s | Θ ) s s = p(x | Θʹ′) − p(x | Θ ) 音声言語処理特論 第5回 もうちょっと簡単に • 何かしらの初期パラメータが与えられているとする – 即ち、それによって尤度が計算できる • 状態遷移が分からないので、学習データを使って状態 遷移を数える(ただし、確率的に) → Eステップ – Viterbiアルゴリズムを使って状態遷移を「明示的に」数え ることもできる(実際、そういうやり方もある)が、それは EMアルゴリズムではない • 確率的に遷移回数が分かったら、それを使ってパラ メータを再推定する → Mステップ – 先ほどのQ関数の極値を取る • パラメータで偏微分して0とおき、方程式を解く 音声言語処理特論 第5回 状態遷移の確率的数え上げ • γ(i, j, t) – 時刻 t において、シンボル xt を出力し、状態 i か ら状態 j に遷移する確率(確率的回数) γ (i, j , t ) = = α (i, t − 1)aij bij ( xt ) β ( j , t ) P(X | Θ ) α (i, t − 1)aij bij ( xt ) β ( j , t ) ∑ α (i, T ) i∈F • F:最終状態の集合、T:時系列の長さ 音声言語処理特論 第5回 前向き確率と後ろ向き確率 • 前向き確率 α(i, t) α ( j , t ) = ∑ α (i, t − 1)aij bij (xt ) i • 後ろ向き確率 β(i, t) β (i, t ) = ∑ β ( j , t + 1)aij bij (xt +1 ) j ∑ α (i, T ) = ∑ β (i,0)π i∈F i πi:状態 i の初期状態確率 i 音声言語処理特論 第5回 トレリスアルゴリズム (前向き(Forward)アルゴリズム) 必ずq1から始まる ↓ q1の初期状態確率が1 q1 1.0 “a” “b” 0.3 x 0.7 0.21 0.5 x 0.8 q2 0.0 q3 0.0 q4 0.0 q5 0.0 0.2 x 0.5 0.4 0.1 “a” 0.0189 0.0396 9 0.0829 0.0108 76 0.169 0.0826 26 0.2 x 0.5 0.6 x 0.6 0.2 x 0.7 0.4 x 0.1 0.3 x 0.4 0.3 x 0.4 0.0 矢印が重なる ところは、加算 0.0 音声言語処理特論 第5回 0.3 x 0.6 0.068 0.012 0.5 x 0.4 1.0 x 0.1 0.0421 94 0.0452 2 後ろ向き(Backward)アルゴリズム “a” “b” “a” q1 0.0452 2 q2 0.0169 68 q3 0.0515 52 0.6 x 0.6 0.2 x 0.7 0.0432 0.4 x 0.1 0.3 x 0.4 0.3 x 0.4 q4 0.029 0.11 0.2 q5 0.009 0.09 0.1 0.3 x 0.7 0.018 0.5 x 0.8 0.2 x 0.5 0.2 x 0.5 0.0928 音声言語処理特論 第5回 0.0 0.0 0.0 0.0 0.18 0.0 0.3 x 0.6 0.5 x 0.4 1.0 x 0.1 0.0 1.0 パラメータ更新式の求め方 T −1 T −1 t =0 t =0 P(x, s | Θ ) = π s0 ∏ ast st +1 ∏ bst st +1 (xt +1 ) Q(Θ, Θʹ′) = ∑a ij j 1 ⎧ ⎫ ʹ′ ʹ′ ʹ′ ( ) ( ) P x , s | Θ log π + log a + log b x ⎨ ∑ ∑ ∑ s0 st st +1 st st +1 t +1 ⎬ P (x | Θ ) s t t ⎩ ⎭ = 1, ∑ b (k ) = 1, ∑ π ij k i = 1の条件でQの最大値を求める。 i F = Q + λ1 ∑ aijʹ′ + λ2 ∑ bijʹ′ (k ) + λ3 ∑ π i j k i aij , bij (k ), π iは全て独立な変数なので、独立に最大化できる。 Fをそれぞれで偏微分して零とおき、λ1 , λ2 , λ3を消去する。 Q = max ∑ wi log yi , wi i ∑ y =1 ⇒ i yi = wi ∑ wj j 音声言語処理特論 第5回 パラメータ更新式(初期状態確率) • 状態 i の初期状態確率 πˆ i ∑ γ (i, j,1) = ∑∑ γ (i, j,1) j i j 時刻 1 に状態 i から 遷移した確率的回数 時刻 1 にどこでもいいから 遷移した確率的回数 確率的数え上げになっていることが分かる 音声言語処理特論 第5回 パラメータ更新式(状態遷移確率) 状態 i から状態 j への状態遷移確率 ∑ γ (i, j, t ) ∑ α (i, t − 1)a b (x )β ( j, t ) = = ∑∑ γ (i, j, t ) ∑ α (i, t − 1)β (i, t − 1) ij ij aˆij t j t t t t 確率的数え上げになっていることが分かる 分子側 状態i α(i,t-1) 状態 i から状態 j へ 遷移した確率的回数 状態 i を通過した 確率的回数 分母側 状態j α(i,t-‐1):前向き確率 時刻 t-‐1 に状態 i にいる確率 β (j,t):後向き確率 時刻 t に状態 j にいた確率 状態 i α(i,t-1) β(j,t) 音声言語処理特論 第5回 β(i,t-1) パラメータ更新式(出力確率)(1) • 出力確率分布(離散確率分布の場合) ∑ γ (i, j, t ) ∑ α (i, t − 1)a b (x )β ( j, t ) ij ij bij (k ) = t:xt = k = t t:xt = k ∑ γ (i, j, t ) ∑ α (i, t − 1)a b (x )β ( j, t ) ij ij t t 確率的数え上げになっていることが分かる 音声言語処理特論 第5回 t パラメータ更新式(出力確率)(2) • 出力確率分布(正規分布の場合) – 無相関正規分布(対角共分散行列)の場合も次元ごとに求めれば 同じ式 ∑ γ (i, j, t )x ∑ α (i, t − 1)a b (x )β ( j, t )x = = ∑ γ (i, j, t ) ∑ α (i, t − 1)a b (x )β ( j, t ) t µˆ ij t ij ij t ij ij t σˆ ij2 = bij(xt)が正規分布 t t 2 ( ) α i , t x ∑ t β (i , t ) t ∑ α (i, t )β (i, t ) t t t 2 ⎛ ∑ α (i, t )xt β (i, t ) ⎞ ⎜ t ⎟ − ⎜ ⎟ = ⎜ ∑ α (i, t )β (i, t ) ⎟ ⎝ t ⎠ 2 ( ) α i , t x ∑ t β (i , t ) t ∑ α (i, t )β (i, t ) t 確率的数え上げになっていることが分かる 音声言語処理特論 第5回 − µˆ m2 パラメータ更新式(出力確率)(3) • 出力確率分布(多次元正規分布の場合) µˆ ij ∑ γ (i, j, t )x = ∑ γ (i, j, t ) t t Σˆ ij = t ∑ α (i, t − 1)a b (x )β ( j, t )x = ∑ α (i, t − 1)a b (x )β ( j, t ) ij ij ∑ γ (i, j, t ) t t t ij ij bij(xt)が 多次元正規分布 t t t ˆ ˆ ( )( ) ( ) γ i , j , t x − µ x − µ ∑ t ij t ij t t = t ˆ ˆ ( )( ) ( ) ( ) ( ) α i , t − 1 a b x β j , t x − µ x − µ ∑ ij ij t t ij t ij t ∑ α (i, t − 1)a b (x )β ( j, t ) ij ij t 確率的数え上げになっていることが分かる 音声言語処理特論 第5回 t パラメータ更新式(出力確率)(3) • 出力確率分布(多次元混合正規分布の場合) – 状態遷移のように、正規分布ごとに分岐しているとみなす ∑ γ (i, j, m, t ) ∑ α (i, t − 1)a β ( j, t )w b (x ) = = ∑ γ (i, j, t ) ∑ α (i, t − 1)a β ( j, t )∑ w b (x ) ij wˆ ijm t ijm ijm ij ∑ γ (i, j, m, t )x = ∑ γ (i, j, m, t ) t t ∑ γ (i, j, m, t ) t m t ∑ α (i, t − 1)a w b (x )β ( j, t )x = ∑ α (i, t − 1)a w b (x )β ( j, t ) ij ijm ijm t t t ij ijm ijm t t t ˆ ˆ ( )( ) ( ) γ i , j , m , t x − µ x − µ ∑ t ij t ij t ijm ijm t t Σˆ ijm = bij(xt)が 多次元混合正規分布 t t µˆ ijm t = t ˆ ˆ ( )( ) ( ) ( ) ( ) α i , t − 1 a w b x β j , t x − µ x − µ ∑ ij ijm ijm t t ij t ij t ∑ α (i, t − 1)a w ij t 音声言語処理特論 第5回 b ijm ijm (xt )β ( j, t ) 学習データが複数個ある場合 • 学習データ(訓練サンプル)が n 個ある場合、これらの「全サ ンプルのセット」について更新式を用いて1回パラメータを更 新し、これをパラメータが収束するまで繰り返さなければなら ない • 1サンプルごとによるパラメータ更新では、パラメータの収束 が保障されない { } n個の訓練データ x1 , x 2 , ! , x n に対して ( ) ( )( ) ( ) P x1 , x 2 , ! , x n = P x1 P x 2 ! P x n を最大にするようにパラメータΘを 推定しなければならない 音声言語処理特論 第5回 その場合の更新式 • 遷移確率の場合の例 aˆij = ∑∑ γ n (i, j, t ) n t ∑∑∑ γ (i, j, t ) n n j t = n ( ) ( α i , t − 1 a b x ∑∑ n ij ij t )β n ( j , t ) n t ∑∑ α (i, t − 1)β (i, t − 1) n n n t – データセット全体で1回更新する – 通常、学習データが多ければ多いほど、パラメー タの信頼性は上がる • 学習データの分布が理想に近づく 音声言語処理特論 第5回 1つの出力確率分布あたりの 自由パラメータ数 音声言語処理特論 第5回 認識性能の違い • 出力確率分布の違いによる認識性能の違い – 全共分散行列(full covariance)はパラメータ数が多くなる ため学習が難しく、認識時の計算コストも高い • きちんと学習できれば、性能は高い – 現在は、対角共分散行列(diagonal covariance)の混合正 規分布が一般的に使われている 音声言語処理特論 第5回 出力確率の違いによる いろいろなHMM P(x1 x2 ! xT | Θ ) = ∑ P(x1 x2 ! xT , s1s2 ! sT | Θ ) s = ∑∏ P(xi | x1 x2 ! xi − 2 xi −1 , s1s2 ! si −1si )P(si | s1s2 ! si −1 ) s i ≈ ∑∏ P(xi | xi −3 xi − 2 xi −1 , si −1si )P(si | si −1 ) :予測型HMM s i = ∑∏ s i P(xi −1 xi | si −1si ) P(si | si −1 ) :2フレーム条件付き確率HMM P(xi −1 | si −1si ) ≈ ∑∏ P(xi −1 xi | si −1si )P(si | si −1 ) :2フレームセグメント単位入力HMM s i ≈ ∑∏ P(xi −3 xi − 2 xi −1 xi | si −1si )P(si | si −1 ) :4フレームセグメント単位入力HMM s i ≈ ∑∏ P(xi | si −1si )P(si | si −1 ) :普通のHMM s i 音声言語処理特論 第5回 HMNet(1) 似たような状態が いくつかある…… 状態数はいくつに するのが良いのか? 音声言語処理特論 第5回 HMNet(2) 自動的に状態分割 コンテキスト方向と 時間方向 似たような状態は 共有されたまま ネットワークで HMMを表現 音声言語処理特論 第5回 HMNet(3) 音声言語処理特論 第5回
© Copyright 2025 ExpyDoc