1 / 78
続わかりやすいパターン認識
〜 8 章 隠れマルコフモデル〜
@gen_goose_gen
2 / 78
自己紹介
●
某高専 電気系学科 卒業
●
関西の某国立大学の情報系学科に編入 ( 作成時 B3)
●
情報・機械学習ともに初学者
– 間違えている可能性があるので疑問がある場合
は下記のツイッターアカウントまでご一報くだ
さい
3 / 78
今回の題材
●
続わかりやすいパターン認識
– 教師なし学習を主題とした有名な本
– 俗称 : 続パタ
– 入門書とはいえ , しっかりとした内容 !
●
今回はコレの 8 章 ( 隠れマルコフモデル )
4 / 78
コンテンツ
●
隠れマルコフモデルとは ?
●
前向き・後向きアルゴリズム
●
ビタービアルゴリズム
●
バウム・ウェルチアルゴリズム
●
隠れマルコフモデルによる識別系
5 / 78
隠れマルコフモデルとは
【例題 7.1( 再掲 ) 】
・サイコロが箱の中に c 種 ( 目の種類はそれぞれ m) ある
・サイコロを一つ取り出し種類を確認する
ただし取り出す種類は一つ前に取り出した種類に影響され
確率で決まる (= 単純マルコフモデル )
・そのサイコロを投げ , 出た目を観測したあと , 箱に戻す
ただしサイコロの出る目の確率はサイコロの種類で決まる
遷移確率 , 出力確率 , 初期状態の確率
6 / 78
隠れマルコフモデルとは
【例題 7.1( 再掲 ) 】
・サイコロの種類 :
・サイコロの目の種類 :
・状態遷移確率の行列 :
・出力確率の行列 :
(i,j) 要素が状態 から
状態 への遷移確率 を表す
(j,k) 要素が現在が状態 のときの
出力 が出る出力確率 を表す
: 状態系列 ( 取り出したサイコロの種類 )
: 観測記号系列 ( 出た目の種類 )
完全データ ( 潜在変数がない )
7 / 78
隠れマルコフモデルとは
【例題 7.1( 再掲 ) 】
・サイコロの種類 :
・サイコロの目の種類 :
・状態遷移確率の行列 :
・出力確率の行列 :
: 状態系列 ( 取り出したサイコロの種類 )
: 観測記号系列 ( 出た目の種類 )
例題 8.1 ではこれが観測できない
( しなかった ) としてモデルパラメータ
を推定していく
= マルコフ性を持ったデータに関する
教師なし学習 ( 潜在変数が存在 )
こういったモデルを隠れマルコフモデル
という
8 / 78
隠れマルコフモデルとは
【マルコフモデル】
・マルコフ性を持った状態系列と状態によって決まる出力確
が存在
【隠れマルコフモデル】
・出力記号系列の背後にマルコフ性を持った状態系列の
存在を想定するが状態系列は直接観測できない
t t+1 t+2 t+3 t+4
0.2 0.1 0.4 0.7
0.6 0.2 0.8 0.4 0.7
? ? ? ? ?
t t+1 t+2 t+3 t+4
※ 遷移確率や出力確率などのパラメータはわかっている場合もある
9 / 78
隠れマルコフモデルとは
【例題 8.1 】
・サイコロが箱の中に c 種 ( 目の種類はそれぞれ m) ある
・サイコロを一つ取り出す ( 確認はしない ( できない ) とす
ただし取り出す種類は一つ前に取り出した種類に影響され
確率で決まる (= 単純マルコフモデル )
・そのサイコロを投げ , 出た目を観測したあと , 箱に戻す
ただしサイコロの出る目の確率はサイコロの種類で決まる
10 / 78
隠れマルコフモデルとは
【例題 8.1 】
・サイコロの種類 :
・サイコロの目の種類 :
・状態遷移確率の行列 :
・出力確率の行列 :
(i,j) 要素が状態 から
状態 への遷移確率 を表す
(j,k) 要素が現在が状態 のときの
出力 が出る出力確率 を表す
: 観測記号系列 ( 出た目の種類 )
不完全データ ( 潜在変数 ( 状態系列 ) がある )
11 / 78
【例題 8.1 】
以上の条件設定で
(1) パラメータが既知のとき , 観測結果 ( 得られた出力記号
系列 ) が得られる確率 を求めよ .
(2) パラメータが既知のとき , 観測結果からサイコロの種類
の系列 ( 状態系列 ) を推定せよ .
隠れマルコフモデルとは
遷移確率 , 出力確率 , 初期状態の確率
13 / 78
コンテンツ
●
隠れマルコフモデルとは ?
マルコフ性を持つが状態系列がわからないモデル
●
前向き・後向きアルゴリズム
●
ビタービアルゴリズム
●
バウム・ウェルチアルゴリズム
●
隠れマルコフモデルによる識別系
14 / 78
前向き・後向きアルゴリズム
〜 (1) パラメータが既知のときの の解法〜
・状態系列がわからない
→ 観測結果の生起確率は出力記号系列として取りうる
場合すべてを想定しなくてはならない
← 式 (7.25)
不完全データの生起確率
完全データの生起確率
状態系列に関する周辺化
15 / 78
前向き・後向きアルゴリズム
〜 (1) パラメータが既知のときの の解法〜
不完全データの生起確率 :
完全データの生起確率 :
周辺化
計算が膨大
乗算回数
加算回数
→ 総演算回数
可能な系列を網羅する計算は非現実的
| |
効率的な計算方法を考える
16 / 78
前向き・後向きアルゴリズム
〜 (1) パラメータが既知のときの の解法〜
・ t 回目にサイコロ を取り出した確率について考える
ただし
? ? ? ?
t-1 t t+1 t+2 t+3
t 回目の観測結果までと
それ以降の結果に分けている
17 / 78
前向き・後向きアルゴリズム
〜 (1) パラメータが既知のときの の解法〜
・ t 回目の観測結果までの確率 の計算
ただし
x1 ・・・ x_t-1 までのそれぞれの状態を取る確率がわかってい
る
→t-1 回めから st=ωj に遷移するすべての確率の総和をとっ
て , そこから xt が出力される確率を求めている
t=n のとき :
sn について周辺化
求めたかったものが
導出できた !
α が t=1 から順に決まっていく→前向きアルゴリズム
18 / 78
前向き・後向きアルゴリズム
〜 (1) パラメータが既知のときの の解法〜
・ t 回目の観測結果までの確率 の計算 ( まとめ )
乗算回数
加算回数
→ 総演算回数
総当りの計算量
乗算回数
加算回数
→ 総演算回数
前向きアルゴリズムの計算量
計算効率が向上
→ 目的を達成
19 / 78
前向き・後向きアルゴリズム
〜 (1) パラメータが既知のときの の解法〜
・ t 回目の観測結果までの確率 の計算
ただし
β_t から β_t+1 へと分岐するすべての場合の確率の総和
→ もとの確率 β_t になる
β が t=n から順に決まっていく→後向きアルゴリズム
20 / 78
前向き・後向きアルゴリズム
〜 (1) パラメータが既知のときの の解法〜
・ t 回目の観測結果までの確率 の計算
t=1 のとき :
s1 について周辺化
求めたかったものが
導出できた !
21 / 78
コンテンツ
●
隠れマルコフモデルとは ?
マルコフ性を持つが状態系列がわからないモデル
●
前向き・後向きアルゴリズム
観測結果がどの程度起こりやすいかを調べるアルゴリズム
●
ビタービアルゴリズム
●
バウム・ウェルチアルゴリズム
●
22 / 78
ビダービアルゴリズム
〜 (2) パラメータが既知のときの の解法〜
・出力記号系列から観測できなかった状態系列を推定
→ 観測結果 をもたらす状態系列としてどんな系列が
最適か ?求めるべき状態系列 :
観測結果が得られたもとで ,t 回目にサイコロ ωi を取り出す確率 :
23 / 78
ビダービアルゴリズム
〜 (2) パラメータが既知のときの の解法〜
・方針 1: 各時点ごとに最も可能性が高い をそれぞれ独立
に求める
【問題点】
・マルコフ性のある問題 : 状態間に遷移確率を定義
→ 遷移確率が 0 の状態間は移動ができない
上記の推定結果に遷移できない隣り合う状態があった場合
24 / 78
ビダービアルゴリズム
〜 (2) パラメータが既知のときの の解法〜
・方針 2: 観測結果が得られたもとで , 状態系列全体につい
て最大化
出力系列が与えられたもとなので
定数扱い
【解法の検討】
・取りうる状態系列すべてを網羅的に確率を計算
→ 計算量が膨大で現実的ではない
モデルパラメータがわかって
いるので計算可能
通り
26 / 78
ビダービアルゴリズム
〜 (2) パラメータが既知のときの の解法〜
【ビタービアルゴリズム】
ある時点で状態 に到達し , が観測される確率の最大化
再帰的に定義
ψ はそれぞれの時点までの経路で
最大となる確率
→ そこから遷移・出力確率で分岐していく
ωj に遷移する一時点前の状態の中で上を最大にする状態を
ωk とするとインデックスは t だが , 中に
入っているのは t-1 の状態 !
27 / 78
ビダービアルゴリズム
〜 (2) パラメータが既知のときの の解法〜
【ビタービアルゴリズム】
常にある時点での確率を最大化する 1 つ前の時点での
状態が定まって ψ に格納されていく
28 / 78
ビダービアルゴリズム
〜 (2) パラメータが既知のときの の解法〜
【ビタービアルゴリズム】
29 / 78
ビダービアルゴリズム
〜 (2) パラメータが既知のときの の解法〜
【ビタービアルゴリズムと前向きアルゴリズムの比較】
◯ 前向きアルゴリズム ◯ ビタービアルゴリズム
P(x,s) を可能な状態系列全て加算したもの
を再帰的計算
P(x,s) が最大となる可能な状態系列の
中から効率的に再帰的演算
演算回数も同程度→網羅式に比べて効率的
30 / 78
ビダービアルゴリズム
〜 (2) パラメータが既知のときの の解法〜
【ビタービアルゴリズム】
31 / 78
コンテンツ
●
隠れマルコフモデルとは ?
マルコフ性を持つが状態系列がわからないモデル
●
前向き・後向きアルゴリズム
観測結果がどの程度起こりやすいかを調べるアルゴリズム
●
ビタービアルゴリズム
観測結果が最も起こりやすい状態系列を求めるアルゴリズム
●
バウム・ウェルチアルゴリズム
32 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【求めるべきパラメータは ? 】
・遷移確率 :
・出力確率 :
・初期状態確率 :
これらをまとめて :
(i,j) 要素が状態 ωi→ωj への遷移確率
(j,k) 要素が状態 ωj のときに出力記号 vk がでる出力確率
i 番目の要素が初期状態が ωi である確率
t t+1 t+2 t+3 t+4
33 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【準備】
・ が観測された下で ,t 回目に ωi,
t+1 回めに ωj のサイコロが出力さている確率を定義
※
34 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【
※
① ②
③ ④
②
③
ωi
xt
ωj
xt+1
t t+1
① ②
35 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【問題の確認】
・求めるパラメータ :
・尤度関数 :
→Q 関数の最大化問題へ
状態系列がわからない
→ 周辺化する際に log-sum の形が出現
→EM アルゴリズムで解く
E ステップ :Q 関数を求める ( 状態系列に対する期待値計算
M ステップ :Q 関数を最大化
EM アルゴリズム
36 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【 Q 関数の導出】
・ Q 関数 :
37 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【 Q 関数の導出】
それぞれのパラメータだけを含む
形の式になっている
→Q を θ について最大化
||
A,B,ρ についてそれぞれ最大化
※ は更新前のパラメータ
( 最大化のときには動かさない )
→ 定数としてみなして良い
※ 教師ありの場合
・状態系列がわかっている
→ 特定の状態系列 :
それ以外 :0
38 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【遷移確率の推定 : の最大化】(st,st+1) の中には t が違っても
同じ (ωi,ωj) を持つこともある
→ それをくくりだす
t を動かす
I,j を動かす 網羅的に系列を求めている
40 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【遷移確率の推定 : の最大化】
について計算
→A の最大化
では定数
41 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【遷移確率の推定 : の最大化】
Cf: 定理 5.1
各 i ごとにここを
最大化すれば良い
最大化の条件 :
最大化したい関数 :
拘束条件 :
解 :
定理 5.1
遷移確率が推定できた
42 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【遷移確率の推定 : の最大化】
推定値 :
→ 状態が ωi,ωj と遷移した
回数の期待値
→ 状態 ωi となった数の期待値
→ 上記の式は推定値として妥当なことが確認できた
43 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【出力確率の推定 : の最大化】
(st,xt) の中には t が違っても
同じ (ωj,vk) を持つこともある
→ それをくくりだす
st=ωj でかつ xt=vk であるもののみを
取り出すためのデルタ関数
44 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【出力確率の推定 : の最大化】
について計算
→B の最大化
では定数
45 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【出力確率の推定 : の最大化】
Cf: 定理 5.1
各 i ごとにここを
最大化すれば良い
最大化の条件 :
最大化したい関数 :
拘束条件 :
解 :
定理 5.1
遷移確率が推定できた
46 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【出力確率の推定 : の最大化】
→ 状態 ωj となった数の期待値
状態 ωj で vk を出力した確率
→ 上記の式は推定値として妥当なことが確認できた
47 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【初期状態確率の推定 : の最大化】
をくくりだす
について計算
→ρ の最大化
では定数
48 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【初期状態確率の推定 : の最大化】
Cf: 定理 5.1
各 i ごとにここを
最大化すれば良い
最大化の条件 :
最大化したい関数 :
拘束条件 :
解 :
定理 5.1
遷移確率が推定できた
49 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【推定結果のまとめ】
右辺に推定するパラメータが
含まれているため解析的に
求められない
→EM アルゴリズムで
逐次的に解く
( この右辺にあるのは
のパラメータ )
50 / 78
バウム・ウェルチアルゴリズム
〜 (3) 観測結果からパラメータを最尤推定〜
【バウム・ウェルチアルゴリズム】
※ 実装の際には試行回数の増加に伴って確率の値が極端に小さくなるので
51 / 78
コンテンツ
●
隠れマルコフモデルとは ?
マルコフ性を持つが状態系列がわからないモデル
●
前向き・後向きアルゴリズム
観測結果がどの程度起こりやすいかを調べるアルゴリズム
●
ビタービアルゴリズム
観測結果が最も起こりやすい状態系列を求めるアルゴリズム
●
バウム・ウェルチアルゴリズム
EM アルゴリズムを用いたモデルパラメータを推定するアルゴリズム
52 / 78
隠れマルコフモデルによる識別系
【問題設定】
・ N 種の隠れマルコフモデルがある
( それぞれが固有の遷移確率と出力確率を持つと仮定 )
・未知の出力記号系列 が N 種の中のどの
モデルから発生したのかを識別したい
・モデルをクラスとみなせばこれは未知記号系列からその
対応するクラス識別を行うパターン認識問題に帰着する
(Ex: 音声認識による単語の識別 )
53 / 78
隠れマルコフモデルによる識別系
【ベイズ決定則によるクラス推定】
識別関数 :
ベイズの定理
各クラスは選ばれる
確率が同じと仮定 :
,P(x) はクラスに依存しない
パラメータが既知のときの出力
記号系列の起こりやすさへ
((1) のような問題へ )
ラベル付き学習データで
正しく分類できるよう設定
54 / 78
隠れマルコフモデルによる識別系
【ベイズ決定則によるクラス推定】
識別関数 :
代替え法
前向きアルゴリズムで計算
→ 和の計算が存在
ビタービアルゴリズムで計算
→ 和の計算がなくなる
+
状態系列の推定も同時にしている
※ 本来は P(x|Ωi) で推定すべきだが音声認識では代替計算法でも結果の差がないことが
知られている
55 / 78
コンテンツ
●
隠れマルコフモデルとは ?
マルコフ性を持つが状態系列がわからないモデル
●
前向き・後向きアルゴリズム
観測結果がどの程度起こりやすいかを調べるアルゴリズム
●
ビタービアルゴリズム
観測結果が最も起こりやすい状態系列を求めるアルゴリズム
●
バウム・ウェルチアルゴリズム
EM アルゴリズムを用いたモデルパラメータを推定するアルゴリズム
56 / 78
隠れマルコフモデルの実験
【条件設定】
・状態 :
・出力記号 :
・遷移確率 :
(i,j) 要素が ωi→ωj へと
遷移する確率
(j,k) 要素が ωj において
vk を出力する確率
出た目が奇数 v1, 偶数 v2
サイコロが 3 種類
57 / 78
隠れマルコフモデルの実験
〜 (1) 前向きアルゴリズムの実験〜
・求めるもの : パラメータが既知のもとでの
・初期状態 :
・観測結果 :
58 / 78
隠れマルコフモデルの実験
〜 (1) 前向きアルゴリズムの実験〜
【網羅的な計算】
Ex:
(×10^(-3))
59 / 78
隠れマルコフモデルの実験
〜 (1) 前向きアルゴリズムの実験〜
【前向きアルゴリズム】
・ step1: 初期化
60 / 78
隠れマルコフモデルの実験
〜 (1) 前向きアルゴリズムの実験〜
【前向きアルゴリズム】
・ step2: 再帰的計算
61 / 78
隠れマルコフモデルの実験
〜 (1) 前向きアルゴリズムの実験〜
【前向きアルゴリズム】
・ step2: 再帰的計算
62 / 78
隠れマルコフモデルの実験
〜 (1) 前向きアルゴリズムの実験〜
【前向きアルゴリズム】
・ step3: 確率の計算
網羅的計算法で得られた
解答と一致
→ 少ない計算量で同じ
ものが得られる !
63 / 78
隠れマルコフモデルの実験
〜 (2) ビタービアルゴリズムの実験〜
・求めるもの : パラメータが既知のもとでの
・初期状態 :
・観測結果 :
P(x,s) が最大になる
状態系列
64 / 78
隠れマルコフモデルの実験
〜 (2) ビタービアルゴリズムの実験〜
【網羅的な計算】
Ex:
(×10^(-3))
65 / 78
隠れマルコフモデルの実験
〜 (2) ビタービアルゴリズムの実験〜
・ step1: 初期化
(i=1,2,3)
66 / 78
隠れマルコフモデルの実験
〜 (2) ビタービアルゴリズムの実験〜
・ step2: 再起的計算
67 / 78
隠れマルコフモデルの実験
〜 (2) ビタービアルゴリズムの実験〜
・ step3: 終了
・ step4: 系列の復元
網羅的計算法で得られた
解答と一致
網羅的計算法で得られた
解答と一致
68 / 78
隠れマルコフモデルの実験
〜 (3) バウム・ウェルチアルゴリズムの実験〜
・求めるもの : パラメータの推定
・真のパラメータ :
・観測回数 :n=10000
( 真のパラメータを用いて生成された長さ 10000 の出力記号系列を学習データとする )
・推定の初期値 :
69 / 78
隠れマルコフモデルの実験
〜 (3) バウム・ウェルチアルゴリズムの実験〜
【実験結果】
比較的良い推定結果が
得られている
70 / 78
隠れマルコフモデルの実験
〜 (4) 識別実験〜
・求めるもの : 与えられた出力記号系列が生成されたと
思われるモデルを推定
・クラス :
・それぞれのモデルパラメータからの観測回数 :n=10000
( 真のパラメータを用いて生成された長さ 10000 の出力記号系列を学習データとする )
・テストパターン :n=100 の出力記号系列を各クラスから
100 パターン
71 / 78
隠れマルコフモデルの実験
〜 (4) 識別実験〜
【クラス 1 】
・真のパラメータ :
・推定結果 :
長さ 10000 の出力記号系列を生成し ,
バウム・ウェルチアルゴリズムで推定
72 / 78
隠れマルコフモデルの実験
〜 (4) 識別実験〜
【クラス 2 】
・真のパラメータ :
・推定結果 :
長さ 10000 の出力記号系列を生成し ,
バウム・ウェルチアルゴリズムで推定
73 / 78
隠れマルコフモデルの実験
〜 (4) 識別実験〜
【テストパターンの生成・識別法】
n=100 の出力記号系列 ×100 n=100 の出力記号系列 ×100
テストパターン
識別
前向きアルゴリズムによる識別 ビタービアルゴリズムによる識別
74 / 78
隠れマルコフモデルの実験
〜 (4) 識別実験〜
【前向きアルゴリズムによる識別結果】
◯ 識別率 :
前向きアルゴリズムによる識別
75 / 78
隠れマルコフモデルの実験
〜 (4) 識別実験〜
【ビタービアルゴリズムによる識別結果】
◯ 識別率 :
ビタービアルゴリズムによる識別
76 / 78
隠れマルコフモデルの実験
〜 (4) 識別実験〜
【識別結果の比較】
◯ 識別率 :
ビタービアルゴリズムによる識別
◯ 識別率 :
前向きアルゴリズムによる識別
識別精度は若干落ちるがビタービアルゴリズム
でもある程度の識別精度を達成
※ 常に成り立つわけではないことに注意
( 今回は特定の状態感の遷移確率が高かった
ためにこのような結果になった )
77 / 78
コンテンツ
●
隠れマルコフモデルとは ?
マルコフ性を持つが状態系列がわからないモデル
●
前向き・後向きアルゴリズム
観測結果がどの程度起こりやすいかを調べるアルゴリズム
●
ビタービアルゴリズム
観測結果が最も起こりやすい状態系列を求めるアルゴリズム
●
バウム・ウェルチアルゴリズム
EM アルゴリズムを用いたモデルパラメータを推定するアルゴリズム
78 / 78
コンテンツ
●
隠れマルコフモデルとは ?
●
前向き・後向きアルゴリズム
●
ビタービアルゴリズム
●
バウム・ウェルチアルゴリズム
●
隠れマルコフモデルによる識別系

続わかりやすいパターン認識8章

  • 1.
    1 / 78 続わかりやすいパターン認識 〜8 章 隠れマルコフモデル〜 @gen_goose_gen
  • 2.
    2 / 78 自己紹介 ● 某高専電気系学科 卒業 ● 関西の某国立大学の情報系学科に編入 ( 作成時 B3) ● 情報・機械学習ともに初学者 – 間違えている可能性があるので疑問がある場合 は下記のツイッターアカウントまでご一報くだ さい
  • 3.
    3 / 78 今回の題材 ● 続わかりやすいパターン認識 –教師なし学習を主題とした有名な本 – 俗称 : 続パタ – 入門書とはいえ , しっかりとした内容 ! ● 今回はコレの 8 章 ( 隠れマルコフモデル )
  • 4.
    4 / 78 コンテンツ ● 隠れマルコフモデルとは? ● 前向き・後向きアルゴリズム ● ビタービアルゴリズム ● バウム・ウェルチアルゴリズム ● 隠れマルコフモデルによる識別系
  • 5.
    5 / 78 隠れマルコフモデルとは 【例題7.1( 再掲 ) 】 ・サイコロが箱の中に c 種 ( 目の種類はそれぞれ m) ある ・サイコロを一つ取り出し種類を確認する ただし取り出す種類は一つ前に取り出した種類に影響され 確率で決まる (= 単純マルコフモデル ) ・そのサイコロを投げ , 出た目を観測したあと , 箱に戻す ただしサイコロの出る目の確率はサイコロの種類で決まる 遷移確率 , 出力確率 , 初期状態の確率
  • 6.
    6 / 78 隠れマルコフモデルとは 【例題7.1( 再掲 ) 】 ・サイコロの種類 : ・サイコロの目の種類 : ・状態遷移確率の行列 : ・出力確率の行列 : (i,j) 要素が状態 から 状態 への遷移確率 を表す (j,k) 要素が現在が状態 のときの 出力 が出る出力確率 を表す : 状態系列 ( 取り出したサイコロの種類 ) : 観測記号系列 ( 出た目の種類 ) 完全データ ( 潜在変数がない )
  • 7.
    7 / 78 隠れマルコフモデルとは 【例題7.1( 再掲 ) 】 ・サイコロの種類 : ・サイコロの目の種類 : ・状態遷移確率の行列 : ・出力確率の行列 : : 状態系列 ( 取り出したサイコロの種類 ) : 観測記号系列 ( 出た目の種類 ) 例題 8.1 ではこれが観測できない ( しなかった ) としてモデルパラメータ を推定していく = マルコフ性を持ったデータに関する 教師なし学習 ( 潜在変数が存在 ) こういったモデルを隠れマルコフモデル という
  • 8.
  • 9.
    9 / 78 隠れマルコフモデルとは 【例題8.1 】 ・サイコロが箱の中に c 種 ( 目の種類はそれぞれ m) ある ・サイコロを一つ取り出す ( 確認はしない ( できない ) とす ただし取り出す種類は一つ前に取り出した種類に影響され 確率で決まる (= 単純マルコフモデル ) ・そのサイコロを投げ , 出た目を観測したあと , 箱に戻す ただしサイコロの出る目の確率はサイコロの種類で決まる
  • 10.
    10 / 78 隠れマルコフモデルとは 【例題8.1 】 ・サイコロの種類 : ・サイコロの目の種類 : ・状態遷移確率の行列 : ・出力確率の行列 : (i,j) 要素が状態 から 状態 への遷移確率 を表す (j,k) 要素が現在が状態 のときの 出力 が出る出力確率 を表す : 観測記号系列 ( 出た目の種類 ) 不完全データ ( 潜在変数 ( 状態系列 ) がある )
  • 11.
    11 / 78 【例題8.1 】 以上の条件設定で (1) パラメータが既知のとき , 観測結果 ( 得られた出力記号 系列 ) が得られる確率 を求めよ . (2) パラメータが既知のとき , 観測結果からサイコロの種類 の系列 ( 状態系列 ) を推定せよ . 隠れマルコフモデルとは 遷移確率 , 出力確率 , 初期状態の確率
  • 12.
    13 / 78 コンテンツ ● 隠れマルコフモデルとは? マルコフ性を持つが状態系列がわからないモデル ● 前向き・後向きアルゴリズム ● ビタービアルゴリズム ● バウム・ウェルチアルゴリズム ● 隠れマルコフモデルによる識別系
  • 13.
    14 / 78 前向き・後向きアルゴリズム 〜(1) パラメータが既知のときの の解法〜 ・状態系列がわからない → 観測結果の生起確率は出力記号系列として取りうる 場合すべてを想定しなくてはならない ← 式 (7.25) 不完全データの生起確率 完全データの生起確率 状態系列に関する周辺化
  • 14.
    15 / 78 前向き・後向きアルゴリズム 〜(1) パラメータが既知のときの の解法〜 不完全データの生起確率 : 完全データの生起確率 : 周辺化 計算が膨大 乗算回数 加算回数 → 総演算回数 可能な系列を網羅する計算は非現実的 | | 効率的な計算方法を考える
  • 15.
    16 / 78 前向き・後向きアルゴリズム 〜(1) パラメータが既知のときの の解法〜 ・ t 回目にサイコロ を取り出した確率について考える ただし ? ? ? ? t-1 t t+1 t+2 t+3 t 回目の観測結果までと それ以降の結果に分けている
  • 16.
    17 / 78 前向き・後向きアルゴリズム 〜(1) パラメータが既知のときの の解法〜 ・ t 回目の観測結果までの確率 の計算 ただし x1 ・・・ x_t-1 までのそれぞれの状態を取る確率がわかってい る →t-1 回めから st=ωj に遷移するすべての確率の総和をとっ て , そこから xt が出力される確率を求めている t=n のとき : sn について周辺化 求めたかったものが 導出できた ! α が t=1 から順に決まっていく→前向きアルゴリズム
  • 17.
    18 / 78 前向き・後向きアルゴリズム 〜(1) パラメータが既知のときの の解法〜 ・ t 回目の観測結果までの確率 の計算 ( まとめ ) 乗算回数 加算回数 → 総演算回数 総当りの計算量 乗算回数 加算回数 → 総演算回数 前向きアルゴリズムの計算量 計算効率が向上 → 目的を達成
  • 18.
    19 / 78 前向き・後向きアルゴリズム 〜(1) パラメータが既知のときの の解法〜 ・ t 回目の観測結果までの確率 の計算 ただし β_t から β_t+1 へと分岐するすべての場合の確率の総和 → もとの確率 β_t になる β が t=n から順に決まっていく→後向きアルゴリズム
  • 19.
    20 / 78 前向き・後向きアルゴリズム 〜(1) パラメータが既知のときの の解法〜 ・ t 回目の観測結果までの確率 の計算 t=1 のとき : s1 について周辺化 求めたかったものが 導出できた !
  • 20.
    21 / 78 コンテンツ ● 隠れマルコフモデルとは? マルコフ性を持つが状態系列がわからないモデル ● 前向き・後向きアルゴリズム 観測結果がどの程度起こりやすいかを調べるアルゴリズム ● ビタービアルゴリズム ● バウム・ウェルチアルゴリズム ●
  • 21.
    22 / 78 ビダービアルゴリズム 〜(2) パラメータが既知のときの の解法〜 ・出力記号系列から観測できなかった状態系列を推定 → 観測結果 をもたらす状態系列としてどんな系列が 最適か ?求めるべき状態系列 : 観測結果が得られたもとで ,t 回目にサイコロ ωi を取り出す確率 :
  • 22.
    23 / 78 ビダービアルゴリズム 〜(2) パラメータが既知のときの の解法〜 ・方針 1: 各時点ごとに最も可能性が高い をそれぞれ独立 に求める 【問題点】 ・マルコフ性のある問題 : 状態間に遷移確率を定義 → 遷移確率が 0 の状態間は移動ができない 上記の推定結果に遷移できない隣り合う状態があった場合
  • 23.
    24 / 78 ビダービアルゴリズム 〜(2) パラメータが既知のときの の解法〜 ・方針 2: 観測結果が得られたもとで , 状態系列全体につい て最大化 出力系列が与えられたもとなので 定数扱い 【解法の検討】 ・取りうる状態系列すべてを網羅的に確率を計算 → 計算量が膨大で現実的ではない モデルパラメータがわかって いるので計算可能 通り
  • 24.
    26 / 78 ビダービアルゴリズム 〜(2) パラメータが既知のときの の解法〜 【ビタービアルゴリズム】 ある時点で状態 に到達し , が観測される確率の最大化 再帰的に定義 ψ はそれぞれの時点までの経路で 最大となる確率 → そこから遷移・出力確率で分岐していく ωj に遷移する一時点前の状態の中で上を最大にする状態を ωk とするとインデックスは t だが , 中に 入っているのは t-1 の状態 !
  • 25.
    27 / 78 ビダービアルゴリズム 〜(2) パラメータが既知のときの の解法〜 【ビタービアルゴリズム】 常にある時点での確率を最大化する 1 つ前の時点での 状態が定まって ψ に格納されていく
  • 26.
    28 / 78 ビダービアルゴリズム 〜(2) パラメータが既知のときの の解法〜 【ビタービアルゴリズム】
  • 27.
    29 / 78 ビダービアルゴリズム 〜(2) パラメータが既知のときの の解法〜 【ビタービアルゴリズムと前向きアルゴリズムの比較】 ◯ 前向きアルゴリズム ◯ ビタービアルゴリズム P(x,s) を可能な状態系列全て加算したもの を再帰的計算 P(x,s) が最大となる可能な状態系列の 中から効率的に再帰的演算 演算回数も同程度→網羅式に比べて効率的
  • 28.
    30 / 78 ビダービアルゴリズム 〜(2) パラメータが既知のときの の解法〜 【ビタービアルゴリズム】
  • 29.
    31 / 78 コンテンツ ● 隠れマルコフモデルとは? マルコフ性を持つが状態系列がわからないモデル ● 前向き・後向きアルゴリズム 観測結果がどの程度起こりやすいかを調べるアルゴリズム ● ビタービアルゴリズム 観測結果が最も起こりやすい状態系列を求めるアルゴリズム ● バウム・ウェルチアルゴリズム
  • 30.
    32 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【求めるべきパラメータは ? 】 ・遷移確率 : ・出力確率 : ・初期状態確率 : これらをまとめて : (i,j) 要素が状態 ωi→ωj への遷移確率 (j,k) 要素が状態 ωj のときに出力記号 vk がでる出力確率 i 番目の要素が初期状態が ωi である確率 t t+1 t+2 t+3 t+4
  • 31.
    33 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【準備】 ・ が観測された下で ,t 回目に ωi, t+1 回めに ωj のサイコロが出力さている確率を定義 ※
  • 32.
    34 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【 ※ ① ② ③ ④ ② ③ ωi xt ωj xt+1 t t+1 ① ②
  • 33.
    35 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【問題の確認】 ・求めるパラメータ : ・尤度関数 : →Q 関数の最大化問題へ 状態系列がわからない → 周辺化する際に log-sum の形が出現 →EM アルゴリズムで解く E ステップ :Q 関数を求める ( 状態系列に対する期待値計算 M ステップ :Q 関数を最大化 EM アルゴリズム
  • 34.
    36 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【 Q 関数の導出】 ・ Q 関数 :
  • 35.
    37 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【 Q 関数の導出】 それぞれのパラメータだけを含む 形の式になっている →Q を θ について最大化 || A,B,ρ についてそれぞれ最大化 ※ は更新前のパラメータ ( 最大化のときには動かさない ) → 定数としてみなして良い ※ 教師ありの場合 ・状態系列がわかっている → 特定の状態系列 : それ以外 :0
  • 36.
    38 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【遷移確率の推定 : の最大化】(st,st+1) の中には t が違っても 同じ (ωi,ωj) を持つこともある → それをくくりだす t を動かす I,j を動かす 網羅的に系列を求めている
  • 37.
    40 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【遷移確率の推定 : の最大化】 について計算 →A の最大化 では定数
  • 38.
    41 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【遷移確率の推定 : の最大化】 Cf: 定理 5.1 各 i ごとにここを 最大化すれば良い 最大化の条件 : 最大化したい関数 : 拘束条件 : 解 : 定理 5.1 遷移確率が推定できた
  • 39.
    42 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【遷移確率の推定 : の最大化】 推定値 : → 状態が ωi,ωj と遷移した 回数の期待値 → 状態 ωi となった数の期待値 → 上記の式は推定値として妥当なことが確認できた
  • 40.
    43 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【出力確率の推定 : の最大化】 (st,xt) の中には t が違っても 同じ (ωj,vk) を持つこともある → それをくくりだす st=ωj でかつ xt=vk であるもののみを 取り出すためのデルタ関数
  • 41.
    44 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【出力確率の推定 : の最大化】 について計算 →B の最大化 では定数
  • 42.
    45 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【出力確率の推定 : の最大化】 Cf: 定理 5.1 各 i ごとにここを 最大化すれば良い 最大化の条件 : 最大化したい関数 : 拘束条件 : 解 : 定理 5.1 遷移確率が推定できた
  • 43.
    46 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【出力確率の推定 : の最大化】 → 状態 ωj となった数の期待値 状態 ωj で vk を出力した確率 → 上記の式は推定値として妥当なことが確認できた
  • 44.
    47 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【初期状態確率の推定 : の最大化】 をくくりだす について計算 →ρ の最大化 では定数
  • 45.
    48 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【初期状態確率の推定 : の最大化】 Cf: 定理 5.1 各 i ごとにここを 最大化すれば良い 最大化の条件 : 最大化したい関数 : 拘束条件 : 解 : 定理 5.1 遷移確率が推定できた
  • 46.
    49 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【推定結果のまとめ】 右辺に推定するパラメータが 含まれているため解析的に 求められない →EM アルゴリズムで 逐次的に解く ( この右辺にあるのは のパラメータ )
  • 47.
    50 / 78 バウム・ウェルチアルゴリズム 〜(3) 観測結果からパラメータを最尤推定〜 【バウム・ウェルチアルゴリズム】 ※ 実装の際には試行回数の増加に伴って確率の値が極端に小さくなるので
  • 48.
    51 / 78 コンテンツ ● 隠れマルコフモデルとは? マルコフ性を持つが状態系列がわからないモデル ● 前向き・後向きアルゴリズム 観測結果がどの程度起こりやすいかを調べるアルゴリズム ● ビタービアルゴリズム 観測結果が最も起こりやすい状態系列を求めるアルゴリズム ● バウム・ウェルチアルゴリズム EM アルゴリズムを用いたモデルパラメータを推定するアルゴリズム
  • 49.
    52 / 78 隠れマルコフモデルによる識別系 【問題設定】 ・N 種の隠れマルコフモデルがある ( それぞれが固有の遷移確率と出力確率を持つと仮定 ) ・未知の出力記号系列 が N 種の中のどの モデルから発生したのかを識別したい ・モデルをクラスとみなせばこれは未知記号系列からその 対応するクラス識別を行うパターン認識問題に帰着する (Ex: 音声認識による単語の識別 )
  • 50.
    53 / 78 隠れマルコフモデルによる識別系 【ベイズ決定則によるクラス推定】 識別関数: ベイズの定理 各クラスは選ばれる 確率が同じと仮定 : ,P(x) はクラスに依存しない パラメータが既知のときの出力 記号系列の起こりやすさへ ((1) のような問題へ ) ラベル付き学習データで 正しく分類できるよう設定
  • 51.
    54 / 78 隠れマルコフモデルによる識別系 【ベイズ決定則によるクラス推定】 識別関数: 代替え法 前向きアルゴリズムで計算 → 和の計算が存在 ビタービアルゴリズムで計算 → 和の計算がなくなる + 状態系列の推定も同時にしている ※ 本来は P(x|Ωi) で推定すべきだが音声認識では代替計算法でも結果の差がないことが 知られている
  • 52.
    55 / 78 コンテンツ ● 隠れマルコフモデルとは? マルコフ性を持つが状態系列がわからないモデル ● 前向き・後向きアルゴリズム 観測結果がどの程度起こりやすいかを調べるアルゴリズム ● ビタービアルゴリズム 観測結果が最も起こりやすい状態系列を求めるアルゴリズム ● バウム・ウェルチアルゴリズム EM アルゴリズムを用いたモデルパラメータを推定するアルゴリズム
  • 53.
    56 / 78 隠れマルコフモデルの実験 【条件設定】 ・状態: ・出力記号 : ・遷移確率 : (i,j) 要素が ωi→ωj へと 遷移する確率 (j,k) 要素が ωj において vk を出力する確率 出た目が奇数 v1, 偶数 v2 サイコロが 3 種類
  • 54.
    57 / 78 隠れマルコフモデルの実験 〜(1) 前向きアルゴリズムの実験〜 ・求めるもの : パラメータが既知のもとでの ・初期状態 : ・観測結果 :
  • 55.
    58 / 78 隠れマルコフモデルの実験 〜(1) 前向きアルゴリズムの実験〜 【網羅的な計算】 Ex: (×10^(-3))
  • 56.
    59 / 78 隠れマルコフモデルの実験 〜(1) 前向きアルゴリズムの実験〜 【前向きアルゴリズム】 ・ step1: 初期化
  • 57.
    60 / 78 隠れマルコフモデルの実験 〜(1) 前向きアルゴリズムの実験〜 【前向きアルゴリズム】 ・ step2: 再帰的計算
  • 58.
    61 / 78 隠れマルコフモデルの実験 〜(1) 前向きアルゴリズムの実験〜 【前向きアルゴリズム】 ・ step2: 再帰的計算
  • 59.
    62 / 78 隠れマルコフモデルの実験 〜(1) 前向きアルゴリズムの実験〜 【前向きアルゴリズム】 ・ step3: 確率の計算 網羅的計算法で得られた 解答と一致 → 少ない計算量で同じ ものが得られる !
  • 60.
    63 / 78 隠れマルコフモデルの実験 〜(2) ビタービアルゴリズムの実験〜 ・求めるもの : パラメータが既知のもとでの ・初期状態 : ・観測結果 : P(x,s) が最大になる 状態系列
  • 61.
    64 / 78 隠れマルコフモデルの実験 〜(2) ビタービアルゴリズムの実験〜 【網羅的な計算】 Ex: (×10^(-3))
  • 62.
    65 / 78 隠れマルコフモデルの実験 〜(2) ビタービアルゴリズムの実験〜 ・ step1: 初期化 (i=1,2,3)
  • 63.
    66 / 78 隠れマルコフモデルの実験 〜(2) ビタービアルゴリズムの実験〜 ・ step2: 再起的計算
  • 64.
    67 / 78 隠れマルコフモデルの実験 〜(2) ビタービアルゴリズムの実験〜 ・ step3: 終了 ・ step4: 系列の復元 網羅的計算法で得られた 解答と一致 網羅的計算法で得られた 解答と一致
  • 65.
    68 / 78 隠れマルコフモデルの実験 〜(3) バウム・ウェルチアルゴリズムの実験〜 ・求めるもの : パラメータの推定 ・真のパラメータ : ・観測回数 :n=10000 ( 真のパラメータを用いて生成された長さ 10000 の出力記号系列を学習データとする ) ・推定の初期値 :
  • 66.
    69 / 78 隠れマルコフモデルの実験 〜(3) バウム・ウェルチアルゴリズムの実験〜 【実験結果】 比較的良い推定結果が 得られている
  • 67.
    70 / 78 隠れマルコフモデルの実験 〜(4) 識別実験〜 ・求めるもの : 与えられた出力記号系列が生成されたと 思われるモデルを推定 ・クラス : ・それぞれのモデルパラメータからの観測回数 :n=10000 ( 真のパラメータを用いて生成された長さ 10000 の出力記号系列を学習データとする ) ・テストパターン :n=100 の出力記号系列を各クラスから 100 パターン
  • 68.
    71 / 78 隠れマルコフモデルの実験 〜(4) 識別実験〜 【クラス 1 】 ・真のパラメータ : ・推定結果 : 長さ 10000 の出力記号系列を生成し , バウム・ウェルチアルゴリズムで推定
  • 69.
    72 / 78 隠れマルコフモデルの実験 〜(4) 識別実験〜 【クラス 2 】 ・真のパラメータ : ・推定結果 : 長さ 10000 の出力記号系列を生成し , バウム・ウェルチアルゴリズムで推定
  • 70.
    73 / 78 隠れマルコフモデルの実験 〜(4) 識別実験〜 【テストパターンの生成・識別法】 n=100 の出力記号系列 ×100 n=100 の出力記号系列 ×100 テストパターン 識別 前向きアルゴリズムによる識別 ビタービアルゴリズムによる識別
  • 71.
    74 / 78 隠れマルコフモデルの実験 〜(4) 識別実験〜 【前向きアルゴリズムによる識別結果】 ◯ 識別率 : 前向きアルゴリズムによる識別
  • 72.
    75 / 78 隠れマルコフモデルの実験 〜(4) 識別実験〜 【ビタービアルゴリズムによる識別結果】 ◯ 識別率 : ビタービアルゴリズムによる識別
  • 73.
    76 / 78 隠れマルコフモデルの実験 〜(4) 識別実験〜 【識別結果の比較】 ◯ 識別率 : ビタービアルゴリズムによる識別 ◯ 識別率 : 前向きアルゴリズムによる識別 識別精度は若干落ちるがビタービアルゴリズム でもある程度の識別精度を達成 ※ 常に成り立つわけではないことに注意 ( 今回は特定の状態感の遷移確率が高かった ためにこのような結果になった )
  • 74.
    77 / 78 コンテンツ ● 隠れマルコフモデルとは? マルコフ性を持つが状態系列がわからないモデル ● 前向き・後向きアルゴリズム 観測結果がどの程度起こりやすいかを調べるアルゴリズム ● ビタービアルゴリズム 観測結果が最も起こりやすい状態系列を求めるアルゴリズム ● バウム・ウェルチアルゴリズム EM アルゴリズムを用いたモデルパラメータを推定するアルゴリズム
  • 75.
    78 / 78 コンテンツ ● 隠れマルコフモデルとは? ● 前向き・後向きアルゴリズム ● ビタービアルゴリズム ● バウム・ウェルチアルゴリズム ● 隠れマルコフモデルによる識別系