Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
パターン認識論中編伊藤彰則
ガウス混合モデル(GMM)もくじ◦GMMとは何か
◦GMMはどうして必要か
◦EMアルゴリズム
◦GMMの推定アルゴリズム
GMMとは何か混合ガウス分布(混合正規分布)◦𝑝 𝑥 = 𝑘=1
𝐾 𝜆𝑘𝑁(𝑥; 𝜇𝑘 , 𝛴𝑘)
𝑁 𝑥; 𝜇, 𝛴 =1
2𝜋 𝑑/2 𝛴 1/2exp −
𝑥 − 𝜇 𝑡𝛴−1(𝑥 − 𝜇)
2
さまざまな分布
GMMはどうして必要かパラメトリックな認識では1. 認識すべきクラスのサンプルが従う
確率分布を仮定
2. 学習データから各クラスの確率分布のパラメータを推定
3. 未知サンプルが与えられたら各クラスの確率密度を推定
4. 一番確率密度が高いクラスに分類
GMMはどうして必要か何が識別性能を決めるのか◦推定された確率分布が「真の分布」に近いほど高性能
◦それぞれのクラスを多次元正規分布で近似するだけでは限界がある◦もっと複雑でパラメータの多い分布が使えればよいのでは?
分布の例
分布の例
2次元ガウス分布で近似
分布の例
各クラスを2つのガウス分布で近似
GMMはどうして必要かパラメータを「減らす」ためにGMMを使うことがある◦d次元ガウス分布のパラメータ数は
𝑑 +𝑑 𝑑 + 1
2=1
2𝑑2 +
3
2𝑑
◦次元が高い場合には推定が難しい
GMMはどうして必要か◦ここで共分散が対角行列と仮定
◦𝛴 =𝜎12 ⋯ 0⋮ ⋱ ⋮0 ⋯ 𝜎𝑑
2
◦分布を表す楕円の軸が座標軸に平行
◦1つのガウス分布を表現するパラメータ数は𝑑 + 𝑑 = 2𝑑
◦𝑀個の分布を混合してもパラメータは 2𝑀𝑑
対角共分散GMM
GMMのパラメータ推定2混合の場合◦𝑝 𝑥 = 𝜆1𝑁 𝑥; 𝜇1, Σ1 + 𝜆2𝑁 𝑥; 𝜇2, Σ2◦パラメータは 𝜆1, 𝜆2, 𝜇1, 𝜇2, Σ1, Σ2◦どうやってこれらを推定するか?◦学習データ中で,2つの分布に属しているサンプルがあらかじめわかっていれば,それぞれから最尤推定
GMMのパラメータ推定2分布でそれぞれに属するサンプルが既知の場合
◦𝑋1 = 𝑥11, … , 𝑥𝑁1
(1), 𝑋2 = 𝑥1
2, … , 𝑥𝑁2
(2)
◦𝜇𝑘 =1
𝑁𝑘 𝑖=1𝑁𝑘 𝑥𝑖
(𝑘)
◦𝛴𝑘 =1
𝑁𝑘 𝑖=1𝑁𝑘 𝑥𝑖
(𝑘)− 𝜇𝑘 𝑥𝑖
𝑘− 𝜇𝑘
𝑡
◦𝜆𝑘 = 𝑁𝑘/(𝑁1 +𝑁2)
GMMのパラメータ推定それぞれの分布に属するサンプルが不明な場合は?◦繰り返し処理による推定
◦仮に分布を設定し,各サンプルの各分布に対する確率密度で出現回数を按分する
◦EMアルゴリズム
EM (Expectation-Maximization) アルゴリズム
観測データから決定することのできない内部状態(隠れ変数)を持つ確率モデルのパラメータ推定法◦GMMの場合「分布」
◦最初にもっと簡単な例で説明
EMアルゴリズム箱の中に赤玉と白玉◦箱から取り出して玉を観測できるが,どちらの箱から取り出したかわからない
EMアルゴリズムどの箱から玉が出たかわからない状態で,それぞれの箱の選択比率がわかるか?◦玉を取り出しては戻す操作をN 回
◦箱 𝐵1, 𝐵2 それぞれを選ぶ確率 𝑃(𝐵𝑘)
◦箱𝐵𝑘から𝑖番目の色の玉を取り出す確率𝑃(𝑐𝑖|𝐵𝑘)
◦𝑃(𝑐𝑖|𝐵𝑘)が既知だとして𝑃(𝐵𝑘)を推定
EMアルゴリズム◦どちらかの箱から取り出した玉が𝑐𝑖である確率は𝑃 𝑐𝑖 = 𝑃 𝑐𝑖 𝐵1 𝑃 𝐵1 + 𝑃 𝑐𝑖 𝐵2 𝑃(𝐵2)
◦取り出した玉が𝑐𝑖であるとき,それが𝐵𝑘から取り出されていた確率(事後確率)は
𝑃 𝐵𝑘 𝑐𝑖 =𝑃 𝑐𝑖 𝐵𝑘 𝑃 𝐵𝑘
𝑃(𝑐𝑖)
k番目の箱の「按分された出現回数」
EMアルゴリズム
◦按分された出現回数を使ってはこの選択確率
の期待値を計算する
𝑃′ 𝐵𝑘 =1
𝑁
𝑖
𝑃(𝐵𝑘|𝑐𝑖)
=1
𝑁
𝑖
𝑃 𝑐𝑖 𝐵𝑘 𝑃(𝐵𝑘)
𝑗 𝑃( 𝑐𝑖 𝐵𝑗 𝑃(𝐵𝑗)
EMアルゴリズム◦見やすくするため𝑃 𝐵𝑘 = 𝜆𝑘とおく
◦第t 回目の𝜆𝑘の推定値を𝜆𝑘𝑡 とする
𝜆𝑘𝑡+1 =
1
𝑁
𝑖
𝜆𝑘𝑡 𝑃(𝑐𝑖|𝐵𝑘)
𝑗 𝜆𝑗𝑡𝑃(𝑐𝑖|𝐵𝑘)
推定例◦ 𝑃 𝐵1 = 0.6, 𝑃 𝐵2 = 0.4
𝑃 𝑟𝑒𝑑 𝐵1 = 0.3, 𝑃 𝑤ℎ𝑖𝑡𝑒 𝐵1 = 0.7𝑃 𝑟𝑒𝑑 𝐵1 = 0.7, 𝑃 𝑤ℎ𝑖𝑡𝑒 𝐵2 = 0.3
◦ サンプル数1000
EMアルゴリズムの原理◦推定すべきパラメータ𝜃(先程の例では𝜃 = {𝜆1, 𝜆2})
◦観測データ𝑥𝑖◦「隠れ変数」のデータ(観測できない)
𝑦𝑖 (∈ 𝐵1, 𝐵2 )
◦箱𝑦𝑖から玉𝑥𝑖が取り出される確率 𝑃(𝑥𝑖 , 𝑦𝑖|𝜃)
◦玉𝑥𝑖が取り出されたとき,元の箱が𝑦𝑖であった確率 𝑃(𝑦𝑖|𝑥𝑖 , 𝜃)
EMアルゴリズムの原理◦Q関数
𝑄 𝜃 𝜃0 =
𝑖
𝑦
𝑃 𝑦 𝑥𝑖 , 𝜃0 log 𝑃(𝑥𝑖 , 𝑦|𝜃)
◦これを最大にする𝜃を求める 𝜃 = argmax
𝜃𝑄(𝜃|𝜃0)
◦求めた 𝜃を𝜃0とおいて推定を繰り返す
「箱と玉」の場合の例◦𝜃 = 𝜆1, 𝜆2 , 𝜃0 = 𝜆1
0, 𝜆20
◦𝑄 𝜃 𝜃0 = 𝑖 𝑘 𝑃 𝑘 𝑥𝑖 , 𝜃0 log 𝑃(𝑘, 𝑥𝑖|𝜃)
◦= 𝑖 𝑘𝜆𝑘0𝑃(𝑥𝑖|𝐵𝑘)
𝑗 𝜆𝑗0𝑃(𝑥𝑖|𝐵𝑗)
log 𝜆𝑘𝑃(𝑥𝑖|𝐵𝑘)
◦制約条件 𝜆1 + 𝜆2 = 1
◦𝐿 = 𝑄 𝜃 𝜃0 − 𝛾(1 − 𝑘 𝜆𝑘)
◦𝜕𝐿
𝜕𝜆𝑘= 0を解く
「箱と玉」の場合の例
◦ 𝑖𝜆𝑘0𝑃(𝑥𝑖|𝐵𝑘)
𝑗 𝜆𝑗0𝑃(𝑥𝑖|𝐵𝑗)
1
𝜆𝑘− 𝛾 = 0
◦𝜆𝑘 =1
𝛾 𝑖
𝜆𝑘0𝑃(𝑥𝑖|𝐵𝑘)
𝑗 𝜆𝑗0𝑃(𝑥𝑖|𝐵𝑗)
◦確率の和が1の条件から 𝛾 = 𝑁
◦𝜆𝑘 =1
𝑁 𝑖
𝜆𝑘0𝑃(𝑥𝑖|𝐵𝑘)
𝑗 𝜆𝑗0𝑃(𝑥𝑖|𝐵𝑗)
GMMのパラメータ推定◦𝜃 = 𝜇1, … , 𝜇𝐾 , 𝜎1
2, … , 𝜎𝐾2, 𝜆1, … , 𝜆𝐾
◦𝑝 𝑥 𝜃 = 𝑘 𝜆𝑘𝑁(𝑥 ; 𝜇𝑘 , 𝜎𝑘2)
◦𝑝 𝑥, 𝑘 𝜃 = 𝜆𝑘𝑁(𝑥; 𝜇𝑘 , 𝜎𝑘2)
◦𝑝 𝑘 𝑥, 𝜃 =𝜆𝑘𝑁(𝑥;𝜇𝑘,𝜎𝑘
2)
𝑘 𝜆𝑘𝑁(𝑥;𝜇𝑘,𝜎𝑘2)
◦𝑄 𝜃 𝜃0 = 𝑖 𝑝 𝑘 𝑥𝑖 , 𝜃0 log 𝑝(𝑥𝑖 , 𝑘|𝜃)
◦制約 𝑗 𝜆𝑗 = 1
GMMのパラメータ推定◦ 𝐿 = 𝑄 𝜃 𝜃0 + 𝜉 1 − 𝑗 𝜆𝑗 →max◦ 注意:log 𝜆𝑘𝑁 𝑥; 𝜇𝑘 , 𝜎𝑘
2 = log 𝜆𝑘 −𝑥−𝜇𝑘
2
2𝜎𝑘2 −
1
2log(2𝜋𝜎𝑘
2)
◦ 𝛾𝑖𝑘 = 𝑝 𝑘 𝑥𝑖 , 𝜃0 =𝜆𝑘0𝑁 𝑥𝑖;𝜇𝑘
0, 𝜎𝑘0 2
𝑗 𝜆𝑗0𝑁 𝑥𝑖;𝜇𝑗
0, 𝜎𝑗0
2 とおく
𝛾𝑖𝑘は𝑥𝑖のk 番目の分布への「帰属度」
GMMのパラメータ推定
◦𝜕𝐿
𝜕𝜇𝑘= 0 より
𝑖
𝛾𝑖𝑘𝑥𝑖 − 𝜇𝑘𝜎𝑘
= 0
𝜇𝑘 = 𝑖 𝛾𝑖𝑘𝑥𝑖 𝑖 𝛾𝑖𝑘
GMMのパラメータ推定
◦𝜕𝐿
𝜕𝜎𝑘2 = 0より
𝑖
𝛾𝑖𝑘𝑥𝑖 − 𝜇𝑘
2 − 𝜎𝑘2
2𝜎𝑘2 = 0
𝜎𝑘2 =
𝑖 𝛾𝑖𝑘 𝑥𝑖 − 𝜇𝑘2
𝑖 𝛾𝑖𝑘
GMMのパラメータ推定
◦𝜕𝐿
𝜕𝜆𝑘= 0 より
𝑖
𝛾𝑖𝑘𝜆𝑘
− 𝜉 = 0
𝜆𝑘 =1
𝜉
𝑖
𝛾𝑖𝑘 =1
𝑁
𝑖
𝛾𝑖𝑘
実施例
実施例
実施例
動的計画法◦スタートからゴールまで金貨を集めて進む
できるだけ金貨を集めるにはどこを通るのがベストか?
動的計画法◦経路は全部で126通り◦全部試せばよい
◦縦横の道の数が増えると経路の数は爆発的に増加
◦もっといい方法はないのか?
動的計画法(Dynamic Programming)
準備
左からi番目、下からj番目の交差点を(𝑖, 𝑗)とするここは(5,4)
• 交差点(𝑖, 𝑗)にいるときに持っている金貨の枚数=𝐺(𝑖, 𝑗)
• 交差点(𝑖, 𝑗)から上に行く道に落ちている金貨の枚数=𝑤𝑢 𝑖, 𝑗
• 交差点(𝑖, 𝑗)から右に行く道に落ちている金貨の枚数=𝑤𝑟 𝑖, 𝑗
ある交差点で持っている金貨
• ある交差点で持っている金貨の数は、その直前の交差点で持っていた金貨の数に依存
• それよりさらに前の経路には依存しない
𝐺 𝑖, 𝑗 = max 𝐺 𝑖 − 1, 𝑗 + 𝑤𝑟(𝑖 − 1, 𝑗)
𝐺 𝑖, 𝑗 − 1 + 𝑤𝑢(𝑖, 𝑗 − 1)
初期条件
𝐺 1,1 = 0𝐺 𝑖, 1 = 𝐺 𝑖 − 1,1 + 𝑤𝑟 𝑖 − 1,1 𝑖 > 1𝐺 1, 𝑗 = 𝐺 1, 𝑗 − 1 + 𝑤𝑢 1, 𝑗 − 1 (𝑗 > 1)
金貨の枚数計算◦右下の交差点から左上に向かって順次漸化式を計算する
計算結果
途中のmaxの計算でどっちを選んだかを記録
しておき、逆にたどると最適な経路がわかる(バックトレース)
動的計画法が使える問題1. 問題がいくつかの段階の積み重ねで記述
できること(上記の例では,各交差点での最適値)
2. ある段階での最適値の計算は,その直前の段階の最適値のみに依存すること
動的計画法が使えれば、計算量は「経路の数に比例」から「格子点の数に比例」まで落とすことができる
レーベンシュタイン距離(編集距離)◦スペルの違う2つの単語はどれだけ「近い」のか?◦ “white” と “while”
◦ “white” と “whit”
◦ “white” と “whiten”
◦ある単語を「編集」して別な単語にするときの最小の編集回数=編集距離
レーベンシュタイン距離(編集距離)◦3種類の「編集」◦置換: white → while
◦削除: white → whit
◦挿入: white → whiten
◦いろいろな編集距離◦white→while (1)
◦white→whiste→whistle (2)
◦white→fhite→fite→fitne→fitnes→fitness (5)
編集距離の計算動的計画法が使える◦2つの文字列を 𝑥1…𝑥𝑁1 , 𝑦1…𝑦𝑁2とする
◦𝑥1…𝑥𝑖 , 𝑦1…𝑦𝑗の編集距離を𝐿(𝑖, 𝑗)とする
◦1文字比較 𝑑 𝑖, 𝑗 = 0 𝑖𝑓 𝑥𝑖 = 𝑦𝑗1 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
編集距離の計算◦𝐿 0,0 = 0
◦𝐿 𝑖, 0 = 𝐿 𝑖 − 1,0 + 1 𝑖 > 0
◦𝐿 0, 𝑗 = 𝐿 0, 𝑗 − 1 + 1 𝑗 > 0
◦𝐿 𝑖, 𝑗 = min
𝐿 𝑖 − 1, 𝑗 + 1
𝐿 𝑖 − 1, 𝑗 − 1 + 𝑑(𝑖, 𝑗)
𝐿 𝑖, 𝑗 − 1 + 1
削除
置換
挿入
例
確率モデルふたたび確率に基づく識別◦データ𝑥、クラス𝜔⇒𝑝(𝜔|𝑥) ∝ 𝑝 𝑥 𝜔 𝑝(𝜔)
◦識別 𝜔 = arg max𝜔
𝑝(𝜔|𝑥)
◦確率(密度)𝑝 𝑥 𝜔 , 𝑝(𝜔)が正確であるほど識別性能が上がる⇒複雑な構造を持ったモデルを利用
確率モデルふたたび
生成モデル𝜔1
生成モデル𝜔2
生成モデル𝜔3
𝑝(𝑥|𝜔1) 𝑝(𝑥|𝜔2) 𝑝(𝑥|𝜔3)
一番確率の大きいクラスとして識別する
モデルの中身を複雑にすると、うまく推定できれば性能が上がる
複雑な確率モデル◦「データがどうやって生成されるのか」のメカニズムを仮定(生成モデル)◦生成メカニズム=「確率過程」◦「まず箱を選び、そこから玉を取り出す」の類
◦単一正規分布⇒「各データは独立に正規分布𝑁(𝜇, Σ)に従って生成される」
◦GMM⇒「まず𝑘番目の分布が確率𝜆𝑘で選ばれ、次に正規分布𝑁(𝜇𝑘 , Σ𝑘)に従ってデータが生成される」
複雑な確率モデル
𝑁(𝜇, Σ) 𝑁(𝜇1, Σ1) 𝑁(𝜇2, Σ2) 𝑁(𝜇3, Σ3)
𝑥 𝑥
𝜆1
系列の確率モデル複数データが生成され(データ系列)それぞれのデータの生成が独立でない場合◦𝑝(𝑥1, … , 𝑥𝑛) ≠ 𝑖=1
𝑛 𝑝(𝑥𝑖)◦データ間の依存関係をモデル化する
◦最初に𝑥𝑖は有限種類の記号だとする
マルコフモデル生成メカニズムに「状態」があり、状態に依存して出力が決まる(単純マルコフ過程)
1 2
4 3
A 0.1 B 0.5A 0.7
B 0.3
C 0.1
C 0.4
A 0.5
C 0.2
B 0.6 A 0.3
C 0.1 B 0.2
𝑝 𝐴𝐵𝐴𝐴𝐶𝐴𝐶𝐴|1= 0.1 × 0.5 × 0.7 × 0.7 × 0.1 × 0.1 × 0.4 × 0.5= 4.9 × 10−5
A B A A C A C A1→2→2→2→1→1→4→1
記号系列と状態系列が一意に対応
N-gramモデル記号系列の確率モデル◦ある記号の生成が、直前n-1個の記号だけに依存する
𝑃 𝑤1𝑤2…𝑤𝑁 =
𝑖=1
𝑁
𝑃(𝑤𝑖|𝑤1…𝑤𝑖−1) ≈
𝑖=1
𝑁
𝑃(𝑤𝑖|𝑤𝑖−𝑛+1…𝑤𝑖−1)
𝑛 = 2
𝑖=1
𝑁
𝑃(𝑤𝑖|𝑤𝑖−1)
𝑛 = 3
𝑖=1
𝑁
𝑃(𝑤𝑖|𝑤𝑖−2𝑤𝑖−1)
𝑛 = 1
𝑖=1
𝑁
𝑃(𝑤𝑖) unigram
bigram
trigram
N-gramとマルコフモデル◦N-gramは条件部を状態としたマルコフモデルと等価
A B
C
P(A|A)
P(B|A)
P(B|B)
P(B|C)P(C|A)
P(C|C)
P(A|B)
P(A|C)
P(C|B)
Bigramの場合
N-gramの確率計算◦基本的に最尤推定
◦𝑃 𝑤 𝑤′ =𝑁(𝑤′𝑤)
𝑁(𝑤′)
◦学習データに出現しない系列の確率は0◦それはまずいのでは??
◦出現しない系列にも0でない確率を与えたい
◦ 𝑤 𝑃 𝑤 𝑤′ = 1
𝑁(𝑠): 学習データ中の系列sの出現頻度
N-gramの確率計算◦ 確率の平滑化
◦ 出現した系列の確率の総和を1より小さくし(ディスカウント)、残りの確率を出現しなかった系列に割り当てる
◦ 簡単な方法 (𝐾 > 0, 𝑉は記号の種類)
◦ 𝑃 𝑤 𝑤′ =𝑁 𝑤′𝑤 +𝐾
𝑁 𝑤′ +𝑉𝐾=
1
1+𝑉𝐾/𝑁 𝑤′
𝑁 𝑤′𝑤 +𝐾
𝑁(𝑤′)
𝛽(𝑤′) = 1 +𝑉𝐾
𝑁 𝑤′
−1, 𝛾 𝑤′ = 𝐾𝛼(𝑤′)とすると
𝑃 𝑤 𝑤′ =𝑁 𝑤′𝑤 𝛽(𝑤′) + 𝛾(𝑤′)
𝑁(𝑤′)
確率のディスカウント◦先ほどの確率
◦𝑃 𝑤 𝑤′ =𝑁 𝑤′𝑤 𝛽(𝑤′)+𝛾(𝑤′)
𝑁(𝑤′)
◦系列𝑤′𝑤が出現しない場合は一定値
◦改良版(バックオフ平滑化)
◦𝑃 𝑤 𝑤′ = 𝑁 𝑤′𝑤 𝛽(𝑤′,𝑤)
𝑁(𝑤′)𝑁 𝑤′𝑤 > 0
𝛼 𝑤′ 𝑃(𝑤) 𝑁 𝑤′𝑤 = 0
𝛼 𝑤′ =
𝑤:𝑁 𝑤′𝑤 =0
𝑃(𝑤)
−1
1 −
𝑤
𝑁 𝑤′𝑤 𝛽(𝑤′, 𝑤)
𝑁(𝑤′)
さまざまなディスカウント
◦Good-Turing discounting
(Katz’ backoff)
𝛽 𝑤′, 𝑤 = (𝑟 + 1)𝑁𝑟+1𝑁𝑟
𝑟 = 𝑁(𝑤′𝑤)
𝑁𝑟: r 回出現した単語の種類数
さまざまなディスカウント◦Witten-Bell discounting
𝛽 𝑤′, 𝑤 =𝑁(𝑤′𝑤)
𝑁 𝑤′𝑤 + 𝑅(𝑤′)
𝑅 𝑤′ : 𝑤′の後に現れる単語の種類数
さまざまなディスカウント◦Absolute discounting
𝛽 𝑤′, 𝑤 =𝑁 𝑤′𝑤 − 𝛽0𝑁(𝑤′𝑤)
0 < 𝛽0 ≪ 1
N-gramの使用例◦音声認識や機械翻訳で「単語列の生成確率」をモデル化するために使う
◦𝑊 = 𝑤1𝑤2…𝑤𝑁
𝑃(𝑊|𝑥) =𝑝(𝑥|𝑊)𝑃(𝑊)
𝑝(𝑥|𝑊)𝑃 𝑊 𝑑𝑥
𝑊 = argmax𝑊
𝑃 𝑥 𝑊 𝑃(𝑊)
隠れマルコフモデル(HMM)◦隠れ変数を持つ時系列のモデル
1 2
A 0.1 B 0.5
A 0.1
B 0.9
1 2
A 0.2
B 0.8
A 0.5
B 0.5
A 0.1
B 0.9
A 0.3
B 0.7
0.40.6 0.8
0.2
マルコフモデル 隠れマルコフモデル
隠れマルコフモデル(HMM)
◦HMMの特徴◦「状態遷移確率」と「シンボル出力確率」が独立に存在
◦状態系列と出力系列の対応が取れない◦ “ABAB”という出力を出すためにはどういう状態遷移をすればよいか?
1 2
A 0.2
B 0.8
A 0.5
B 0.5
A 0.1
B 0.9
A 0.3
B 0.7
0.40.6 0.8
0.2
何のためにHMMを使うか◦時系列の詳細なモデル化◦状態の数を任意に設定できる
◦シンボルでない(実数値を持つ)ベクトル系列への拡張◦「確率的な対応」を許すためにこれが可能になる
数学的準備◦HMM 𝑀 = (𝑆, 𝐹, Σ, Π, 𝐴, 𝐵)◦ 𝑆 = (𝑠1, … 𝑠𝑁) 状態
◦𝐹 ⊂ 𝑆 最終状態
◦Σ = (𝜎1, … , 𝜎𝑉) 出力シンボル
◦Π = 𝜋𝑖 𝑖 ∈ 𝑆 初期状態確率
◦𝐴 = {𝑎𝑖𝑗|𝑖, 𝑗 ∈ 𝑆} 状態遷移確率
◦𝐵 = {𝑏𝑖𝑗(𝜎)|𝑖, 𝑗 ∈ 𝑆, 𝜎 ∈ Σ} 出力確率◦ 出力確率は遷移元の状態だけに依存するモデル化もよく行
われる
◦ 𝐵 = {𝑏𝑖(𝜎)|𝑖 ∈ 𝑆, 𝜎 ∈ Σ}
系列の出力確率◦系列𝑥1…𝑥𝑛の出現確率計算◦すべての状態系列𝑞1…𝑞𝑛の集合を𝑄とする
◦ある状態系列に対する系列の出現確率をすべての状態系列について足し合わせたものがHMMによる出現確率になる
𝑃 𝑥1…𝑥𝑛 =
𝑞1…𝑞𝑛∈𝑄
𝜋𝑞1 𝑏𝑞1(𝑥1)
𝑖
𝑎𝑞𝑖𝑞𝑖+1𝑏𝑞𝑖(𝑥𝑖)
系列生成確率の計算◦HMMでは「すべての状態系列」についての確率の加算が必要◦まじめに計算すると膨大な計算量
◦動的計画法によって高速化する
21
1 2 3 4 5 6 7 8
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 𝑥7 𝑥8
トレリス
時間
Forwardアルゴリズム◦時刻tで状態sにいる確率(前向き確率)𝛼(𝑠, 𝑡)◦𝛼 𝑠, 0 = 𝜋𝑠◦𝛼 𝑠, 𝑡 = 𝑞∈𝑆 𝛼 𝑞, 𝑡 − 1 𝑎𝑞𝑠𝑏𝑞(𝑥𝑡)
0 1 2
𝑥1 𝑥2
𝛼(1,2)
𝛼(1,1)
𝛼(2,1) 𝑎21𝑏2(𝑥2)
𝑎11𝑏1(𝑥2)
21
Forwardアルゴリズム最終的な系列の確率◦𝑃 𝑥1, … , 𝑥𝑁 = 𝑠∈𝐹 𝛼(𝑠, 𝑁)
21
1 2 3 4 5 6 7 8
𝑥1 𝑥2 𝑥3 𝑥4 𝑥5 𝑥6 𝑥7 𝑥8
𝛼(1,𝑁)
𝛼(2,𝑁)
9
HMMの学習◦データの系列からは状態系列はわからない
◦もし状態系列がわかったら?◦データ系列𝑋1, …𝑋𝐾; 𝑋𝑘 = 𝑥1
𝑘 , … , 𝑥𝑁𝑘
◦状態系列𝑄𝑘 = 𝑞0𝑘 , 𝑞1
𝑘 , … , 𝑞𝑁𝑘
◦状態遷移数 𝑁(𝑞, 𝑞′)
◦状態遷移時の出力シンボル数 𝑁(𝑥, 𝑞, 𝑞′)
HMMの学習◦確率の最尤推定値
◦𝜋𝑞 =𝑁(𝑞1
𝑘=𝑞)
𝐾
◦𝑎𝑞𝑞′ =𝑁(𝑞,𝑞′)
𝑞′𝑁(𝑞,𝑞′)
◦𝑏𝑞′(𝑥) = 𝑞 𝑁(𝑥,𝑞,𝑞
′)
𝑞 𝑁(𝑞,𝑞′)
HMMの学習◦実際には状態系列はわからない
◦状態系列が未知の場合の学習⇒Forward-Backwardアルゴリズム(Baum-Welchアルゴリズム)◦EMアルゴリズムの一種
◦「確率的な状態遷移数」を求める
◦ 𝛾𝑡(𝑞, 𝑞′): 時刻tで状態qにいるとき、次の状
態がq’である確率
前向き確率と後向き確率◦時刻1~tで𝑥1…𝑥𝑡を出力した後で状態sにいる確率(前向き確率) 𝛼(𝑠, 𝑡)◦𝛼 𝑠, 0 = 𝜋𝑠◦𝛼 𝑠, 𝑡 = 𝑞∈𝑆 𝛼 𝑞, 𝑡 − 1 𝑎𝑞𝑠𝑏𝑞(𝑥𝑡)
◦時刻tに状態sにいて、その後𝑥𝑡+1…𝑥𝑁を出力する確率(後向き確率)𝛽(𝑠, 𝑡)◦𝛽 𝑠, 𝑁 = 1
◦𝛽 𝑠, 𝑡 = 𝑞∈𝑆 𝑎𝑠𝑞𝑏𝑠 𝑥𝑡+1 𝛽(𝑞, 𝑡 + 1)
状態遷移の期待値◦ある時刻tからt+1にかけて状態sからqへの状態遷移が起こった期待値
◦ 𝜉𝑠𝑞 𝑡 =𝛼 𝑠,𝑡 𝑎𝑠𝑞𝑏𝑠 𝑥𝑡+1 𝛽(𝑞,𝑡+1)
𝛼 𝑠,𝑡 𝛽(𝑠,𝑡)
s
q
𝑥𝑡+1𝑥𝑡𝑡 𝑡 + 1𝑡 − 1
状態滞留の期待値◦ある時刻tで状態sにいる期待値
◦ 𝛾𝑠 𝑡 =𝛼 𝑠,𝑡 𝛽(𝑠,𝑡)
𝑞 𝛼 𝑞,𝑡 𝛽(𝑞,𝑡)
s
𝑥𝑡+1𝑥𝑡𝑡 𝑡 + 1𝑡 − 1
パラメータ更新収束するまで繰り返す◦𝜋𝑖 ← 𝛾𝑖 1
◦𝑎𝑠𝑞 ← 𝑡 𝜉𝑠𝑞(𝑡)
𝑡 𝛾𝑠(𝑡)
◦𝑏𝑞 𝑥 ← 𝑡:𝑥𝑡=𝑥 𝛾𝑞(𝑡)
𝑡 𝛾𝑞(𝑡)
連続分布型HMM◦出力xがシンボルではなく連続値のベクトル◦例えば𝑏𝑠 𝑥 = 𝑁(𝑥; 𝜇𝑠, Σ𝑠)
◦ 𝛾𝑠(𝑡)が出現頻度だと思って計算すればよい
◦ 𝜇𝑠 ← 𝑡 𝛾𝑠 𝑡 𝑥
𝑡 𝛾𝑠(𝑡)
◦ Σ𝑠 ← 𝑡 𝛾𝑠 𝑡 𝑥−𝜇𝑠 𝑥−𝜇𝑠
𝑡
𝑡 𝛾𝑠(𝑡)
GMM-HMM◦HMMの出力確率がGMMで表される◦𝑏𝑠 𝑥 = 𝑘 𝜆𝑘 𝑁(𝑥; 𝜇𝑠𝑘 , Σ𝑠𝑘)
◦時刻tでの出力が状態sのk番目の分布から生成された期待値
◦ 𝛾𝑠𝑘 𝑡 =𝜆𝑘𝑁(𝑥𝑡;𝜇𝑠𝑘,Σ𝑠𝑘)
𝑏𝑠(𝑥𝑡)
◦ 𝜇𝑠𝑘 ← 𝑡 𝛾𝑠 𝑡 𝛾𝑠𝑘 𝑡 𝑥
𝑡 𝛾𝑠 𝑡 𝛾𝑠𝑘 𝑡
◦ Σ𝑠 ← 𝑡 𝛾𝑠 𝑡 𝛾𝑠𝑘(𝑡) 𝑥−𝜇𝑠 𝑥−𝜇𝑠
𝑡
𝑡 𝛾𝑠 𝑡 𝛾𝑠𝑘(𝑡)
◦ 𝜆𝑘 ← 𝑡 𝛾𝑠 𝑡 𝛾𝑠𝑘(𝑡)
𝑘 𝑡 𝛾𝑠 𝑡 𝛾𝑠𝑘(𝑡)
Viterbiアルゴリズム◦データ系列とどの状態が対応しているのかを決定する
◦Forwardアルゴリズムと似ている◦𝛼 𝑠, 1 = 𝜋𝑠𝑏𝑠(𝑥1)
◦𝛼 𝑠, 𝑡 = max𝑞∈𝑆
𝛼 𝑞, 𝑡 − 1 𝑎𝑞𝑠𝑏𝑞(𝑥𝑡)
◦バックトレースにより最適な状態系列がわかる