3. おさらい:積和アルゴリズム
? グラフィカルモデルにおける各ノード x n の周
辺分布 p ( xn ) を求めるアルゴリズム
? 有向/無向グラフを因子グラフに変換し,各
ノードからメッセージを計算しながら伝搬する
p(z1 ) p(z 2 ) p ( z n ?1 ) p(z n ) p ( z n ?1 )
求まる
9. おさらい:積和アルゴリズム
2. 各ノードでメッセージを計算
– 変数ノードの場合
?x m ? fs
( xm ) ? ??
l?ne( xm ) f s
f l ? xm ( xm ) (8.69)
f1
? f ?x m
1
?
?
?x m? fs
fl ?
?
?
xm fs
fL ?
10. おさらい:積和アルゴリズム
2. 各ノードでメッセージを計算
– 因子ノードの場合
? f ? x ( x) ? ??? f s ( x, x1 ,?, xM )
s ?? xm ? f s ( xm )
x1 xM m?ne( f s ) x
x1 (8.66)
?x ? f s
1
? ? f ?x
? s
xm ?
?
? fs x
xM ?
15. HMMの積和アルゴリズム
? HMMを因子グラフへ変換
HMM
?N ? N
p(x1 ,?, x N , z1 ,?, z N ) ? p(z1 ) ?? p(z n | z n?1 )?? p(x n | z n )
? n?2 ? n?1
(13.6)
16. HMMの積和アルゴリズム
? HMMを因子グラフへ変換
? N ? N
p(x1 ,?, x N , z1 ,?, z N ) ? p(z1 ) ?? p(z n | z n ?1 )?? p(x n | z n )
? n?2 ? n ?1
N
? h(z1 )? f n (z n ?1 , z n )
n?2
h(z1 ) ? p(z1 ) p(x1 | z1 ) (13.45)
f n (z n ?1 , z n ) ? p(z n | z n ?1 ) p (x n | z n ) (13.46)
19. HMMの積和アルゴリズム
2. 各ノードでメッセージを計算
– 変数ノードの場合
?z n ? f n?1
(z n ) ? ?? f l ?z n
l?ne( z n ) f n?1
(z n ) (8.69)
? ? f n ?z n ( z n ) (13.47)
?f n ?z n
?z n? f n ?1
fn zn f n ?1
20. HMMの積和アルゴリズム
2. 各ノードでメッセージを計算
– 因子ノードの場合
?f n ?z n
(z n ) ? ? f s (z n , z m ) ?? zm ? fn (z m ) (8.66)
zm m?ne( f n ) z n
? ? f n (z n ?1 , z n ) ? z n?1 ? f n (z n ?1 ) (13.48)
z n?1
?z n?1 ? f n
?f n ?z n
z n ?1 fn zn
21. HMMの積和アルゴリズム
2. 各ノードでメッセージを計算
変数ノード:
?z n ? fn
(z n?1 ) ? ? f n?1 ?z n?1 (z n?1 ) (13.47)
因子ノード:
?f n ?z n
(z n ) ? ? f n (z n?1 , z n ) ? z n?1 ? f n (z n?1 ) (13.48)
z n?1
?f n ?z n
(z n ) ? ? f n (z n?1 , z n ) ? f n?1 ?z n?1 (z n?1 ) (13.49)
z n?1
22. HMMの積和アルゴリズム
2. 各ノードでメッセージを計算
– フォワード-バックワードアルゴリズムとの比較
積和アルゴリズム
?f n ?z n
(z n ) ? ? f n (z n ?1 , z n ) ? f n?1 ?z n?1 (z n ?1 ) (13.49)
z n?1 (13.46)
? ? p(z n | z n ?1 ) p(x n | z n ) ? f n?1 ?z n?1 (z n ?1 )
z n?1
? (z n ) ? ? f n ?z n
(z n )
フォワード-バックワードアルゴリズム
? (z n ) ? p(x n | z n )? ? (z n?1 ) p(z n | z n ?1 ) (13.36)
z n?1
25. HMMの積和アルゴリズム
3. メッセージが根ノードに達したら,葉ノードに
向けて逆向きにメッセージを伝搬していく
– フォワード-バックワードアルゴリズムとの比較
積和アルゴリズム
?z N ? fN
(z N ) ? 1 (8.70)
? (z N ) ? ? z N ? fN
(z N )
フォワード-バックワードアルゴリズム
? (z N ) ? 1 (13.37)
26. HMMの積和アルゴリズム
3. メッセージが根ノードに達したら,葉ノードに
向けて逆向きにメッセージを伝搬していく
?z n ? fn
(z n ) ? ? f n?1 ?z n (z n )
? ? f n?1 (z n , z n?1 ) ? z n?1 ? f n?1 (z n?1 ) (13.51)’
z n?1
?z n ? fn
?f n?1 ? z n
?z n?1 ? f n?1
fn zn f n ?1 z n ?1
27. HMMの積和アルゴリズム
3. メッセージが根ノードに達したら,葉ノードに
向けて逆向きにメッセージを伝搬していく
– フォワード-バックワードアルゴリズムとの比較
積和アルゴリズム
?z n ? fn
(z n ) ? ? f n ?1 (z n , z n ?1 ) ? z n?1 ? f n?1 (z n ?1 ) (13.51)’
z n?1
(13.46)
? ? p(z n ?1 | z n ) p(x n ?1 | z n ?1 ) ? z n?1 ? f n?1 (z n ?1 )
z n?1
? (z n ) ? ? z n ? fn
(z n )
フォワード-バックワードアルゴリズム
? (z n ) ? ? ? (z n?1 ) p(x n?1 | z n?1 ) p(z n?1 | z n ) (13.38)
z n?1
29. HMMの積和アルゴリズム
4. 逆伝播メッセージが葉ノードまで達したら,
各変数ノードの周辺分布 p ( z n ) を以下の式で
求める
p ( z n ) ? ? ? f s ?z n ( z n ) (8.63)’
s?ne( z n )
? ? f n ?z n (z n ) ? f n?1 ?z n (z n )
?f n ?z n
?f n?1 ? z n
fn zn f n ?1
30. HMMの積和アルゴリズム
周辺分布 p ( z n ) は既に観測変数 X ? ?x1 , ? , x N ?
により条件付けられているので,
p(z n , X) ? ? f n ?z n (z n )?z n ? f n (z n ) ? ? (z n )? (z n )
(13.53)
p(z n , X) ? (z n )? (z n )
? (z n ) ? ? (13.54)
p(X) p( X)
(13.33)と同じγ (zn)が導けた!
31. HMMの積和アルゴリズム
5. 各因子ノードに接続された周辺の変数群 x s
の同時分布は以下の式で求める
p(x s ) ? f s (x s ) ??
i?ne( f s )
xi ? f s ( xi ) (8.72)
p(z n?1 , z n ) ? f n (z n?1 , z n )?z n ? f n (z n )?z n?1 ? f n (z n?1 )
?z n?1 ? f n
?z n ? fn
z n ?1 fn zn
32. HMMの積和アルゴリズム
演習13.11
ξ (zn-1, zn)を導く
p(z n?1 , z n , X) ? f n (z n?1 , z n ) ?z n ? f n (z n ) ?z n?1 ? f n (z n?1 )
? p(z n | z n?1 ) p(x n | z n ) ? (z n )? (z n?1 )
p(z n ?1 , z n , X)
? (z n ?1 , z n ) ? p(z n ?1 , z n | X) ?
p ( X)
? (z n ?1 ) p(x n | z n ) p(z n | z n ?1 ) ? (z n )
?
p ( X)
(13.43)と同じξ (zn-1, zn)が導けた!