6.7K Views
November 08, 23
スライド概要
Pythonで学ぶ音声認識の輪読会第5回の発表スライドです。
2023年11月2日(木) 18:30~
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
2023年度後期輪読会#5 Pythonで学ぶ音声認識5章 京都大学理学部理学科2回生 山下 素数 0
テンプレートマッチングによる音声認識の問題点 テンプレートマッチングによる音声認識の方法 評価したい音声に対して、各テンプレートとの距離をDPマッチング によって測り、最も近いテンプレートの発話内容を出力する テンプレートマッチングによる音声認識の方法の問題点 ⚫ テンプレートが存在する発話内容しか認識できない ➜音素のような単語より短い単位(サブワード)でテンプレートを作 り、それらをつなぎ合わせればよい ⚫ 音のばらつき(バリエーション)への対応が難しい ➜分布や尤度の考え方を用いる(「与えられた音声データのある時 刻に対して、ある言葉が話されている確率」のようなものを考え る) 1
尤度 観測値xに対する条件yの尤度L(y|x)を、 𝐿 𝑦𝑥 =𝑃 𝑥𝑦 と定義する。これは、事象xを観測した時、その原因がyにあると 仮定することの尤もらしさを表す。 例 2クラスのあるテストの成績の分布 x=テストの点数 y=クラス x(テストの点数)が与えられてる ときにy(クラス)を知りたい。 点数が高いとクラスBと仮定する方 が尤もらしい(尤度が高い) 2
音声認識に尤度の考え方を適用 xは観測された音声系列、wは音声認識結果の候補となるテキスト列 (認識仮説)、 𝑤は最終的な音声認識結果として、 ෝ 𝑃 𝑥𝑤 𝑃 𝑤 𝑤 ෝ = arg max 𝑃(𝑤|𝑥) = arg max = arg max 𝑃 𝑥 𝑤 𝑃(𝑤) 𝑤 𝑤 𝑤 𝑃(𝑥) であり、尤度を用いると、 𝑤 ෝ = arg max 𝐿 𝑤 𝑥 𝑃(𝑤) と表せる 𝑤 3
確率分布を仮定 データが、ある確率分布(パラメータを含む)に従っていると仮定し、 データに合うように確率分布のパラメータを調整するという手法が良 くとられる その際良く用いられるのが正規分布(下図:正規分布では無相関⇔独立) 4
正規分布の数式 分布のパラメータをまとめてθと書くことにする。 1次元正規分布の確率密度関数 1 𝑥−μ 2 𝑓 𝑥θ = exp(− ) 2 2σ 2πσ2 (μ, σは実数) D次元正規分布の確率密度関数 1 1 𝑇 −1 𝑓 𝑥θ = exp(− 𝑥 − μ Σ (𝑥 − μ)) 𝐷 1 2 2π 2 Σ 2 (μはD次元ベクトルで平均、ΣはDxDの半正定値対称行列で共分散行 列と呼ぶ)(半正定値とは、固有値が全て非負であることを指す) 変数が独立な場合は確率密度関数がD個の正規分布の確率密度関数の 積になっている。Σが対称行列なので、変数をうまく取り直してやる と互いに独立な変数に変換することができる。(対角化) 5
最尤推定法 最尤推定法によって正規分布のパラメータを決定してみよう! 最尤推定法によるパラメータθの推定式は、 θ = arg max 𝐿 θ 𝑥 0 , … , 𝑥 𝑁 − 1 θ = arg max 𝑃 𝑥 0 , … , 𝑥 𝑁 − 1 θ θ 𝑛=𝑁−1 = arg max ෑ 𝑃 𝑥 𝑛 𝜃 θ 𝑛=0 (x(0), …, x(N-1)は独立で、同じ分布に従うベクトル値の確率変数(N 個のデータ)) 尤度の最大化の代わりに対数尤度(尤度の対数を取ったもの)の最大化 を目指す。 6
対数尤度 P(x(n)|θ)が多変量正規分布の確率密度関数となっているとすると、 (P(x(n)|θ)の和が1となるとは限らないが、最尤推定法において問題はない) 𝑁−1 θ = arg max log 𝑃(𝑥(𝑛)|θ) θ 𝑛=0 𝑁−1 𝑁 1 = arg max − 𝐷 log 2π + log Σ − 𝑥 𝑛 − μ 𝑇 Σ −1 𝑥 𝑛 − 𝜇 θ 2 2 𝑛=0 arg maxの中の項を最大化するためには、arg maxの中の項を各パラメータで偏微 分して0となるようなパラメータを取ればよい。(μで偏微分して0, Σで偏微分して 0) ちなみに、arg maxの中の項が上に凸な関数(凹関数)であることから これは正当化できる。(第一項はθに関して定数。第二項、第三項が凹関数だからそ の和も凹関数。第二項、第三項が凹関数であることは(-1)・(ヘッセ行列)が半正定 値(固有値がすべて非負)であることを示せばよい。) 7
μによる偏微分の計算 計算に興味があれば…(右の性質は用いている) 簡単な成分計算 で求められる 8
Σによる偏微分の計算 興味があれば… 余因子行列の転置𝐴ሚ𝑇 行列式の行列による偏微 分に関しては余因子展開、 逆行列の行列による偏微 分は𝐴𝐴−1 = 𝐼を用いれば 求められる。 9
最尤推定法の結果 長い計算の結果、以下のパラメータが対数尤度を最大化することが 分かった。 1 μො = 𝑥(𝑛) 𝑁 𝑛=0,…,𝑁−1 1 Σ = 𝑥 𝑛 − μො 𝑥 𝑛 − μො 𝑇 𝑁 𝑛=0,…,𝑁−1 現れる結果はかなり直感に合っている。 普通にデータ点から平均を求め、データ点から共分散行列を求めれ ばよい。 10
音声認識においてx(n)=MFCC特徴量として適用する場合 音声認識においてx(n)=MFCC特徴量として適用する場合は、MFCC 特徴量の各次元が独立であることを仮定することがある。 その場合、多変量正規分布は、 𝐷−1 1 𝑓 𝑥θ = 𝐷 2 (ς𝐷−1 σ2 ) 𝑑=0 𝑑 2π と表せ、先程と同様に計算して、 1 μො 𝑑 = 𝑁 σ2𝑑 ෝ 1 = 𝑁 1 𝑥𝑑 − μ𝑑 exp − 2 σ2𝑑 2 𝑑=0 𝑥𝑑 (𝑛) 𝑛=0,…,𝑁−1 𝑥𝑑 𝑛 − μො 𝑑 2 𝑛=0,…,𝑁−1 11
正規分布を仮定して最尤推定法を行う方法のメリットと改善点 メリット ⚫ 単純に同じ値が現れた回数をカウントするよりも信頼できる確率 密度関数が求められる ⚫ テンプレートマッチングではバリエーションに対応するために大 量のテンプレートが必要でモデルサイズや処理時間が大きくなり がちだが、正規分布を用いた手法だとバリエーションが表現され ているため、比較的モデルサイズや処理量が小さく済む 改善点 ⚫ 正規分布による近似は近似誤差が大きいのではないのか?正規分 布は単峰性(山が一つ)の分布だけどそれで良いのか? ➜複数のガウス分布を混ぜてみよう!それによって多峰性の分布も 表現できる!近似誤差が下げられる!(混合正規分布による手法) 12
混合ガウス分布(GMM)によるモデル化 音声データ(MFCC特徴量など)xが与えられているときに音素yを予 測するため、正規分布による方法では尤度P(x|y)を最大化していた。 混合ガウス分布による方法では、新たな変数𝑧𝑚 を追加して、尤度は 以下の式のように表す。 𝑀−1 𝑃 𝑥 𝑦 = 𝑃 𝑥, 𝑧𝑚 𝑦 𝑀−1 𝑚=0 = 𝑃 𝑧𝑚 𝑦 𝑃 𝑥 𝑦, 𝑧𝑚 𝑚=0 次に混合ガウス分布の説明をするが、𝑃(𝑥|𝑦, 𝑧𝑚 )が𝑧𝑚 ごとに異なる 正規分布で定義され、重み𝑤𝑚 が𝑃(𝑧𝑚 |𝑦)に対応している。 13
混合ガウス分布 混合ガウス分布はガウス分布を混ぜたような分布。 m個目の多変量正規分布(混合要素)の式を𝑁 𝑥; μ𝑚 , Σ𝑚 (μ𝑚 は平均, Σm は共分散行列)とする。 そして、混合ガウス分布(GMM)は、 𝑀−1 𝑓 𝑥 θ = 𝑤𝑚 𝑁(𝑥; μ𝑚 , Σ𝑚 ) 𝑀−1 𝑚=0 𝑤𝑚 = 1 𝑚=0 と定める。Mを混合数、𝑤𝑚 を重みという。 次元の呪いの影響は受ける。次元が大きくなるとMがでかい必要アリ (余談:無限次元ガウス分布でカーネル法と同じようなアイデアで線形回 帰するのがガウス過程回帰。こちらは次元の呪いの影響を受けにくい) 14
混合ガウス分布(GMM)のパラメータ最適化 全ての正規分布が独立であると考え、最尤推定法を行おうとしてみ る。 θ = arg max θ = arg max θ = arg max θ log 𝑃(𝑥 𝑛 , 𝑧𝑚 |θ) 𝑛=0,…,𝑁−1 log 𝑃 𝑧𝑚 θ 𝑃(𝑥(𝑛)|θ, 𝑧𝑚 ) 𝑛=0,…,𝑁−1 log 𝑤𝑛 𝑁(𝑥 𝑛 ; μ𝑚 , Σ𝑚 ) 𝑛=0,…,𝑁−1 しかし、重み𝑤𝑛 もx(n)に応じて変化して欲しい。(各正規分布はそ れぞれの音に対する分布のようにしたいため。例えば「あ」の音の バリエーションを表す正規分布、「い」の音のバリエーションを表 す正規分布、のように) 15
Q関数の導入 そこで、データの各正規分布へのあらゆる振り分けパターン(𝑧𝑚 は0,…,N-1の値を取る確率変数。𝑧𝑚 はパラメータθ‘に依存してい る)とその確率(𝑃 𝑧𝑚 𝑥 𝑛 , θ′ )を考慮し、混合ガウス分布(GMM)の 分布全体の尤度を最大化することを目指す。 θ = arg max 𝐸[log 𝑃 𝑥, 𝑧 θ |θ′ ] θ = arg max θ = arg max θ 𝑃 𝑧𝑚 𝑥 𝑛 , θ′ log 𝑃(𝑥 𝑛 , 𝑧𝑚 |θ) 𝑚=0,…,𝑀−1 𝑛=0,…,𝑁−1 𝑃 𝑧𝑚 𝑥 𝑛 , θ′ log 𝑃(𝑤𝑚 𝑁(𝑥 𝑛 ; μ𝑚 , Σ𝑚 )) 𝑚=0,…,𝑀−1 𝑛=0,…,𝑁−1 対数尤度の期待値をQ関数と呼ぶこともある。 ラグランジュの未定乗数法や偏微分によって最適なパラメータを計 算する。 16
混合ガウス分布(GMM)のパラメータ最適化の導出1 興味があれば… 17
混合ガウス分布(GMM)のパラメータ最適化の導出2 興味があれば… 18
混合ガウス分布(GMM)のパラメータ最適化の導出3 興味があれば… 19
混合ガウス分布(GMM)のパラメータ最適化の結果 長い計算をした結果、以下のようなパラメータがQ関数を最大化す ることが分かった。 𝑁−1 1 𝑤 ෝ𝑚 = 𝑃(𝑧𝑚 |𝑥 𝑛 , θ′) 𝑁 𝑛=0 𝑁−1 σ𝑛=0 𝑃 𝑧𝑚 𝑥 𝑛 , θ′ 𝑥(𝑛) μො 𝑚 = σ𝑁−1 𝑃(𝑧𝑚 |𝑥 𝑛 , θ′) 𝑛=0 ′ 𝑥 𝑛 −μ 𝑇 σ𝑁−1 𝑃 𝑧 𝑥 𝑛 , θ ො 𝑥 𝑛 − μ ො 𝑚 𝑚 𝑚 𝑛=0 Σ𝑚 = σ𝑁−1 𝑛=0 𝑃(𝑧𝑚 |𝑥 𝑛 , θ′) この結果も実は結構直観的。 𝑃(𝑧𝑚 |𝑥 𝑛 , θ′ )(負担率という)はm番目の正規分布がどれほど重要か を表している。平均や分散は𝑃(𝑧𝑚 |𝑥 𝑛 , θ′)による重み付き平均と なっている。𝑃 𝑧𝑚 𝑥 𝑛 , θ′ を求めよう。(この計算でなぜ 𝑃 𝑧𝑚 𝑥 𝑛 , θ′ が負担率を表すのかがより分かるだろう) 20
𝑃 𝑧𝑚 𝑥 𝑛 , θ′ の計算 ′ 𝑃(𝑥(𝑛)|𝑧 , θ′) 𝑃 𝑧 θ 𝑚 𝑚 ′ 𝑃 𝑧𝑚 𝑥 𝑛 , θ = 𝑃(𝑥 𝑛 , θ′) ′ 𝑃 𝑧𝑚 θ 𝑃(𝑥(𝑛)|𝑧𝑚 , θ′) = σ𝑀−1 𝑛 , 𝑧𝑘 |θ′) 𝑘=0 𝑃(𝑥 𝑃 𝑧𝑚 θ′ 𝑃(𝑥(𝑛)|𝑧𝑚 , θ′) = 𝑀−1 σ𝑘=0 𝑃(𝑧𝑘 |θ′)𝑃(𝑥 𝑛 |𝑧𝑘 , θ′) ′ ) 𝑤 ′ 𝑚 𝑁(𝑥 𝑛 ; 𝜇′ 𝑚 , Σ𝑚 = 𝑀−1 ′ σ𝑘=0 𝑤 𝑘 𝑁(𝑥 𝑛 ; 𝜇′ 𝑘 , Σ𝑘′ ) である。 𝑃 𝑧𝑚 𝑥 𝑛 , θ′ が負担率と呼ばれる所以が分かるであろう。 しかし問題点が! 𝑃 𝑧𝑚 𝑥 𝑛 , θ′ (負担率)は正規分布と混合重みを用いて計算できるが、 パラメータの最適値は分かっていないではないか! ➜徐々にパラメータを最適値に近づける反復法を行えばよいのでは? (EMアルゴリズム) 21
EMアルゴリズム EMアルゴリズムは以下のステップを繰り返す。 1. パラメータθ’に初期値を設定する 2. 𝑃(𝑧𝑚 |𝑥 𝑛 , θ′)を計算する(E(Expectation)ステップ) 3. 各パラメータθを計算する(M(Maximization)ステップ) 4. θをθ’に設定する EMアルゴリズムで対数尤度が単調増加になることは数学的に証明 されている。 EMアルゴリズムによって混合ガウス分布(GMM)をフィッティング することができた! 22
EMアルゴリズムの実行結果 23
EMアルゴリズムのカラクリ 今まで発見法的にEMアルゴリズムを解説してきたがなぜうまくい くのか釈然としないところもあるだろう。 対数尤度を最大化する視点からEMアルゴリズムについて解説して みる。 まず、対数尤度を最大化するパラメータは、 𝑁−1 θ = arg max log 𝑝(𝑥 𝑛 |θ) θ と表せる。 𝑛=0 24
EMアルゴリズムのカラクリ2 ここで、𝑃 𝑥 𝑛 , 𝑧𝑚 θ = 𝑃 𝑥 𝑛 θ 𝑃(𝑧𝑚 |𝑥 𝑛 , θ)より、 𝑀−1 log 𝑃 𝑥 𝑛 θ = 𝑃 𝑧𝑚 𝑥 𝑛 , θ′ log 𝑃(𝑥(𝑛)|θ) 𝑀−1 𝑚=0 𝑃(𝑥(𝑛), 𝑧𝑚 |θ) 𝑃(𝑧𝑚 |𝑥 𝑛 , θ′) = 𝑃 𝑧𝑚 𝑥 𝑛 , θ (log + log ) 𝑃(𝑧𝑚 |𝑥 𝑛 , θ′) 𝑃(𝑧𝑚 |𝑥 𝑛 , θ) 𝑚=0′ = 𝐿(θ , θ, 𝑛) + 𝐾𝐿(𝑃 𝑧𝑚 𝑥 𝑛 , θ′ ||𝑃(𝑧𝑚 |𝑥 𝑛 , θ)) と表せる。ただし、 𝑀−1 𝑃 𝑥 𝑛 , 𝑧𝑚 𝜃 ′ ′ 𝐿 θ , θ, 𝑛 = 𝑃 𝑧𝑚 𝑥 𝑛 , θ log 𝑃 𝑧𝑚 𝑥 𝑛 , 𝜃 ′ ′ 𝑚=0 𝑀−1 𝐾𝐿(𝑃 𝑧𝑚 𝑥 𝑛 , θ′ ||𝑃 𝑧𝑚 𝑥 𝑛 , θ ) = 𝑃 𝑧𝑚 𝑚=0 ′ 𝑃 𝑧 𝑥 𝑛 , 𝜃 𝑚 ′ 𝑥 𝑛 , θ log 𝑃 𝑧𝑚 𝑥 𝑛 , 𝜃 であり、それぞれ変分下限(ELBO)、KL divergenceと呼ぶ。 25
EMアルゴリズムのカラクリ3 KL divergence 𝐾𝐿(𝑃 𝑧𝑚 𝑥 𝑛 , θ′ | 𝑃 𝑧𝑚 𝑥 𝑛 , θ 𝑀−1 = 𝑃 𝑧𝑚 𝑚=0 ′ 𝑃 𝑧 𝑥 𝑛 , 𝜃 𝑚 𝑥 𝑛 , θ′ log 𝑃 𝑧𝑚 𝑥 𝑛 , 𝜃 に対してxlog xに関するイェンセンの不等式を適用するとKL divergenceが 非負であることが分かる。(この不等式はlog 𝐸[𝑋] ≥ 𝐸[log 𝑋]としても有名。) よって、 log 𝑝(𝑥 𝑛 |θ) ≥ 𝐿 𝜃 ′ , 𝜃, 𝑛 が成り立つ。これが𝐿(θ′ , θ, 𝑛)が変分下限と呼ばれる理由である。 ちなみに、この不等式自体はxlog xに関するイェンセンの不等式を用いて証 明することもできる。 (余談:変分ベイズ法では変分法によって変分下限を最大化したり、VAEでは 変分下限を最大化させるようにDNNを学習したりする。) 26
EMアルゴリズムのカラクリ4 再掲: 𝐿 𝑀−1 θ′ , θ, 𝑛 = 𝑃 𝑧𝑚 𝑥 𝑛 , θ′ 𝑚=0 𝑃 𝑥 𝑛 , 𝑧𝑚 𝜃 log 𝑃 𝑧𝑚 𝑥 𝑛 , 𝜃 ′ 𝑀−1 𝐾𝐿(𝑃 𝑧𝑚 𝑥 𝑛 , θ′ ||𝑃 𝑧𝑚 𝑥 𝑛 , θ ) = 𝑃 𝑧𝑚 𝑚=0 𝑄関数: ′ 𝑃 𝑧 𝑥 𝑛 , 𝜃 𝑚 𝑥 𝑛 , θ′ log 𝑃 𝑧𝑚 𝑥 𝑛 , 𝜃 𝑃 𝑧𝑚 𝑥 𝑛 , θ′ log 𝑃(𝑥 𝑛 , 𝑧𝑚 |θ) 𝑚=0,…,𝑀−1 𝑛=0,…,𝑁−1 EMアルゴリズムにおける対数尤度の変化を見よう。EMステップ前に 𝜃 = 𝜃𝑜𝑙𝑑 、 𝜃′ = 𝜃′𝑜𝑙𝑑 であるとする。 1. Eステップでは、θを𝜃𝑜𝑙𝑑 に固定して𝐿 θ′ , θ𝑜𝑙𝑑 , 𝑛 を θ’に関して最大化し、 𝜃′ = 𝜃′𝑛𝑒𝑤 とする。対数尤度log 𝑃(𝑥(𝑛)|θ𝑜𝑙𝑑 ) はθ’によって変化しないので、 𝐿 θ′ , θ𝑜𝑙𝑑 , 𝑛 が最大になるのはKL divergenceが0、つまり 𝑃 𝑧𝑚 𝑥 𝑛 , 𝜃′𝑛𝑒𝑤 = 𝑃 𝑧𝑚 𝑥 𝑛 , 𝜃𝑜𝑙𝑑 のときでθ′𝑛𝑒𝑤 = θ𝑜𝑙𝑑 のとき 27
EMアルゴリズムのカラクリ5 2. Mステップでは、θ’を𝜃′𝑛𝑒𝑤 に固定して 𝐿 θ′𝑛𝑒𝑤 , θ, 𝑛 をθに関して最大化し、 𝜃 = θ𝑛𝑒𝑤 とする。(𝐿 θ′𝑛𝑒𝑤 , θ, 𝑛 をθに関して最大化することはQ関数をθに関 して最大化することと等しい。)すると、 θ′𝑛𝑒𝑤 = θ𝑜𝑙𝑑 であるから、 log 𝑃 𝑥 𝑛 θ𝑛𝑒𝑤 − log 𝑃(𝑥(𝑛)|θ𝑜𝑙𝑑 ) = 𝑃 𝑧𝑚 𝑥 𝑛 , θ′𝑛𝑒𝑤 (log 𝑃 𝑥 𝑛 , 𝑧𝑚 θ𝑛𝑒𝑤 − log 𝑃 𝑥 𝑛 , 𝑧𝑚 θ𝑜𝑙𝑑 ) 𝑚=0,…,𝑀−1 + 𝑃 𝑧𝑚 𝑥 𝑛 , θ′𝑛𝑒𝑤 𝑚=0,…,𝑀−1 = 𝑃 𝑧𝑚 𝑥 𝑛 , θ′𝑛𝑒𝑤 (log 𝑃 𝑥 𝑛 , 𝑧𝑚 θ𝑛𝑒𝑤 − log 𝑃 𝑥 𝑛 , 𝑧𝑚 θ𝑜𝑙𝑑 ) 𝑚=0,…,𝑀−1 + 𝑚=0,…,𝑀−1 𝑃 𝑧𝑚 𝑥 𝑛 , θ𝑜𝑙𝑑 log 𝑃 𝑧𝑚 𝑥 𝑛 , 𝜃𝑛𝑒𝑤 𝑃 𝑧𝑚 𝑥 𝑛 , θ𝑜𝑙𝑑 𝑃 𝑧𝑚 𝑥 𝑛 , θ𝑜𝑙𝑑 log 𝑃 𝑧𝑚 𝑥 𝑛 , 𝜃𝑛𝑒𝑤 であり、第一項はQ関数の変化量なので0以上、第二項はKL divergenceになっ ているので0以上となっている。以上から、EMアルゴリズムによって対数尤度 が単調増加することが分かった。 28
EMアルゴリズムのカラクリまとめ 対数尤度は変分下界とKL divergenceの和で表せる。 EMアルゴリズムは、変分下界の二つのパラメータθ、θ’によって交 互に変分下界を最大化していくことによって対数尤度を徐々に大き くしていくアルゴリズムと考えられる。 なお、先程の対数尤度の変化量の計算式を見れば分かるが、EMア ルゴリズムの更新が止まる時にはθ=θ’となっている。 なお、EMアルゴリズムによって局所最適解か鞍点に収束すること が知られているようだ。 変分下界が徐々に上がってくる様子を表す図 29
今日の話を音声認識に適用する例 音素など、短い時間のテンプレートを準備し、繰り返し予測を行う。 xはMFCC特徴量、yは音声認識結果の候補となるテンプレート、 𝑦ො は最終的なテンプレートの予測結果とすると、 𝑃 𝑥𝑦 𝑃 𝑦 𝑦ො = arg max 𝑃(𝑦|𝑥) = arg max = arg max 𝑃 𝑥 𝑦 𝑃(𝑦) 𝑦 𝑦 𝑦 𝑃(𝑥) である。 𝑃(𝑥)に多変量ガウス分布を仮定する場合は最尤推定によってパラ メータを決定でき、 𝑃(𝑥)に混合ガウス分布を仮定する場合はEMア ルゴリズムによってパラメータを決定することができる。 30
31