PRML 8.4-8.4.3
@_kuni88
今回のテーマ
• 連鎖におけるメッセージ伝播
– グラフィカルモデルにおける推論
– 効率的な推論
• 因子グラフって何?
– どういうグラフなのか
8.4, 8.4.1のテーマ
• グラフィカルモデルにおける推論問題を解く
• 効率的な推論(計算)をするための
アルゴリズムを学ぼう
– グラフ構造の利用
– メッセージ伝播
グラフィカルモデルによる推論
• 2変数x, yの同時分布を因数分解する
(a) 𝑝(𝑥, 𝑦) = 𝑝(𝑦|𝑥)𝑝(𝑥)
(b) 𝑦が観測されたとき
(c) 𝑥上の事後分布の推論
'
( ) ( | ') ( ')
x
p y p y x p x 
( | ) ( )
( | )
( )
p y x p x
p x y
p y

8.4.1 連鎖における推論
N個のK状態離散変数ノードからなる連鎖の場合を考える
• 各ポテンシャル関数 は
K×Kの表によって与えられる
• 同時分布はのパラメータを持つ
Fig. 8.32 (b)
1,2 1 2 2,3 2 3 1, 1
1
( ) ( , ) ( , ) ( , )N N N Np x x x x x x
Z
    x
1, 1( , )n n n nx x  
8.4.1 連鎖における推論
連鎖の途中のノード𝑥 𝑛の周辺分布𝑝(𝑥 𝑛)を推論する問題
• すべてのノードが観測されていないとき、
求める周辺分布は
• 必要なメモリ容量と計算量はO(𝐾 𝑁
)程度になる
→連鎖の長さに関して指数オーダー
1 1 1
( ) ( )
n n N
n
x x x x
p x p
 
    x
条件付き独立性の利用
• グラフィカルモデルの条件付き独立性を利用する
– 効率的なアルゴリズムを構築できる
• 式(8.50)に式(8.49)を代入
• 和演算に注目する: 1, 1( , )
N
N N N N
x
x x  
1 1 1
1,2 1 2 2,3 2 3 1, 1
1
( ) ( , ) ( , ) ( , )
n n N
n N N N N
x x x x
p x x x x x x x
Z
  
 
    
1,2 1 2 2,3 2 3 1, 1
1
( ) ( , ) ( , ) ( , )N N N Np x x x x x x
Z
    x
1 1 1
( ) ( )
n n N
n
x x x x
p x p
 
    x
効率的な計算
• 1つの和演算が1つの変数を消去するため
効率が良い
1 1 1
1 2 1
1
1,2 1 2 2,3 2 3 1, 1
1, 1 2,3 2 3 1,2 1 2
, 1 1 1, 1
1
( ) ( , ) ( , ) ( , )
1
( , ) ( , ) ( , )
( , ) ( , )
n n N
n
n N
n N N N N
x x x x
n n n n
x x x
n n n n N N N N
x x
p x x x x x x x
Z
x x x x x x
Z
x x x x
  
  
 
 


 
 
   

   
    
     
  
  
   
  
  
 
順序入れ替えによる計算量削減
• 例: 和に対する積の分配則
𝑎𝑏 + 𝑎𝑐 = 𝑎(𝑏 + 𝑐)
• 周辺化の計算量:
– 𝜓1,2 𝑥1, 𝑥2 はK×Kの表によって決まる
– 𝑥2の取りうる値それぞれで𝑥1についての和を取る
→計算量は𝑂(𝐾2
)
• N-1回繰り返すから𝑂(𝑁𝐾2)
局所的なメッセージ伝播
: 前向きに伝わるメッセージ
: 後ろ向きに伝わるメッセージ
※それぞれ再帰的に計算する
1
( ) ( ) ( )n n np x x x
Z
  
( ) ( )
n
n n
x
Z x x   
1 2
1
1, 1
1, 1 1
( ) ( , )
( , ) ( )
n n
n
n n n n n
x x
n n n n n
x
x x x
x x x


 
 
 

 
  
 
  
 

 

1 2
1
, 1 1
, 1 1 1
( ) ( , )
( , ) ( )
n n
n
n n n n n
x x
n n n n n
x
x x x
x x x


 
 
 

 
  
 
  
 

 

1
2 1,2 1 2( ) ( , )
x
x x x  
前向き 後ろ向き
連鎖上の全てのノードに対する推論
• メッセージ伝播を個々に対して行うと
• 伝播中の全てのメッセージを保存すると
– メッセージ 𝜇 𝛽 をからまで後ろ向きに伝播
– メッセージ 𝜇 𝛼 をまで前向きに伝播
• 任意のノードの周辺分布を式(8.54)を用いて計算
※ Zは都合の良いノードについて一度だけ計算すればよい
1
( ) ( ) ( )n n np x x x
Z
  
いくつかのノードが観測された場合
• 観測された変数に関しては和を取らない
→観測値で固定する
• 実際の計算において
– 変数𝑥 𝑛を観測値𝑥 𝑛に固定することは
同時分布に 𝐼 𝑥 𝑛, 𝑥 𝑛 を掛けることで表現
ˆ1
ˆ( , )
0
n n
n n
if x x
I x x
otherwise

 

2つの隣接ノードの同時分布
• 1つのノードの周辺分布を計算する問題と同様になる
• 隣接2点の同時分布𝑝 𝑥 𝑛−1, 𝑥 𝑛
𝑥 𝑛−1, 𝑥 𝑛以外を周辺化すると
1 1 1, 1
1
( , ) ( ) ( , ) ( )n n n n n n n np x x x x x x
Z
      
8.4.1 補足
• 実用上クリークポテンシャルとして
パラメトリックなものを使いたいときもある
→今回の結果を有効に使える
• EMアルゴリズムを使えば、変数の一部しか
観測されていない状況でポテンシャル関数の
パラメータを求めることができるが、Eステップで
任意の観測データで条件付けられたクリーク上の
同時分布が必要となる.
8.4.2 木
• 木と呼ばれるグラフでも
局所的なメッセージパッシングによる
効率的な推論が可能である
木の種類
無向木
任意のノードの組の間に
唯一の経路が存在するグラフ
有向木
根ノードと呼ばれる親ノードを
1つだけ持ち、他の全てのノードは
それぞれ1つずつ親をもつグラフ
多重木
2つ以上の親をもつノードが存在するが、
任意の2ノード間の経路が1つしかない有向グラフ
今回のテーマ
• 連鎖におけるメッセージ伝播
– グラフィカルモデルにおける推論
– 効率的な推論
• 因子グラフって何?
– どういうグラフなのか
8.4.3 因子グラフ
• 変数を表現するノードに因子そのものに対応する
ノードを付け加えることによって、
因数分解を表現するグラフ
• 2種類のノード
– 分布の変数
– 同時分布の因子
→2部グラフ(bipartite graph)
因子グラフ
• ある変数集合上の同時分布は因子の積で書ける
𝐱 𝑠:変数の部分集合
𝑓𝑠 :因子を表す関数であり、変数集合を引数とする
( ) ( )s s
s
p f x x
1
( ) ( | ) (8.5)
K
k k
k
p p x pa

 x
1
( ) ( ) (8.39)C C
C
p
Z
 x x
有向グラフ
親のみに依存という
条件付き独立性を利用
無向グラフ
極大クリーク上の
ポテンシャル関数の積で表現
因子グラフの見方
• 因子グラフの例
分布の各変数
同時分布の各因子
1 2 1 2 2 3 3( ) ( , ) ( , ) ( , ) ( )a b c dp f x x f x x f x x f xx
無向グラフからの変換
1. 無向グラフの各ノードに対応する変数ノードを作る
2. 極大クリーク𝐱 𝑠に対応する因子ノードを付け加える
複数の異なる因子グラフが
1つの無向グラフに対応することがある
1 2 3 1 2 3( , , ) ( , , )f x x x x x x 1 2 3 2 3
1 2 3
( , , ) ( , )
( , , )
a bf x x x f x x
x x x
1 2 3( , , )x x x
有向グラフからの変換
1. 有向グラフのノードに対応する
因子グラフの変数ノードを作成する
2. 条件付き分布に対応する因子を付け加える
3. 適切なリンクを付加する
1 2 3
1 2 3 1 2
( , , )
( ) ( ) ( | , )
f x x x
p x p x p x x x
1 1( ) ( )af x p x
2 2( ) ( )bf x p x
1 2 3 3 1 2( , , ) ( | , )cf x x x p x x x
有向多重木の因子グラフ
• 有向多重木を無向グラフに変換すると
モラル化過程によってループができる
• 因子グラフに変換すると木構造にできる
局所的な閉路を持つとき
• 有向グラフにおいて、
局所的な閉路は適切な因子関数によって
取り除くことが可能
1 2 3 1 2 1 3 1 2( , , ) ( ) ( | ) ( | , )f x x x p x p x x p x x x
因子グラフの特徴
• 因子グラフは因数分解をより正確に表現する
• (c)の形の分解は何の条件付き独立性も表現しない
1 2 3( ) ( , , )p f x x xx 1 2 1 3 2 3( ) ( , ) ( , ) ( , )a b cp f x x f x x f x xx
(a) (b) (c)

PRML 8.4-8.4.3