8.4 グラフィカルモデルによる推論
DESCRIPTION
PRML生駒読書会第11回の発表資料TRANSCRIPT
PRML読書会第11回8.4 グラフ ルモ ルによる推
2010-02-06SUHARA YOSHIHIKO
(id:sleepy_yoshi)
1
目次• 8.4 グラフ ルモ ルによる推
– 8.4.1 連鎖における推– 8.4.2 木– 8.4.3 因子グラフ– 8.4.4 積和アルゴリズム– 8.4.5 max-sumアルゴリズム– 8.4.6 一般のグラフにおける 推– 8.4.7 ループあり 伝播– 8.4.8 グラフ構造の学習
ここまで
2
本発表のポイント(1) 連鎖ノードにおけるメッセージパッシング(2) 因子グラフとは? 因子グラフの作り方
3
8.4 グラフィカルモデルにお
4
グラフ ルモ ルにおける推• 目的: グラフ ルモ ルにおける推
– いくつかのノードが観測された際に,残ったノード(のうちいくつか) の事後分布を知りたい
• アプローチ– グラフ構造を 用して局所的なメッセージの伝播を
用いて を う– cf. は10章で紹介
5
イズの の• 2変数x, y上の同時分布を因数分解する
)|()(),( xypxpyxp =
∑='
)'()'|()(x
xpxypyp
???
(a)
(b) yが観測された
)(
)()|()|(
yp
xpxypyxp =
(8.47)
(8.48)
(b) yが観測された
(c) ???
)()|()()|(),( xpxypypyxpyxp == ではダメ?
6
8.4.1 にお
7
無向連鎖のグラフの
※有向グラフと同じ条件付き 性を持つ
( ) ( ) ( )���� xxxxxxZ
p ,,,1
)( 1,1323,2212,1 −−= ψψψ Lx (8.49)
K状態 変数
N-1個 K×Kの表
習
⇒ 同時分布は (N-1) K2個のパラメータを持つ
8
周辺分布の推• 連鎖 中のノードの周辺分布を推 したい
– どのノードも観測されていない場合
∑ ∑∑ ∑− +
=1 1 1
)()(x x x x
n
n n �
pxp xLL
⇒ xが取りうる状態の数: KN個ポイント: 連鎖の さNに対して
指数オーダーO(KN)のメモリ と計算
周辺分布 (8.50)
xn
コレ
xn以外で周辺化
9
STOP! ポテンシャル関数って何なのさ?• (規格化されるので) ψ(xC) > 0 であればなんでもよい
– えばボル マン分布:– エネルギー関数も本文中に記述なし
• ポテンシャル関数の周辺化ってどういうこと?– 簡単のためxc={x1,x2},x1,x2は0,1の2 変数とする
)}(exp{)( CCC E xx −=ψ
∑ −=2
)},(exp{)( 211
x
C xxExψ
)}1,(exp{)}0,(exp{ 2121 =−+=−= xxExxE
のポテンシャル関数を使って説明しているのは一般性を保つため
くなったら適 に 変換すべし
10
周辺分布の よい推 : て
( ) ( ) ( )∑ −−=�x
���� xxxxxx ,,, 1,1323,2212,1 ψψψ L
( ) ( ) ( )∑ −−
�x
���� xxxxxx ,,, 1,1323,2212,1 ψψψ L
グラフ ルモ ルの条件付き 性を 用xNの周辺化の
( )∑ −−−− ≡�x
������� xxx ,)( 1,11,1 ψψ
====
====
−−−−
−−−−
),(),1(
)1,()1,1(
1,11,1
1,11,1
KxKxKxx
xKxxx
��������
��������
ψψ
ψψ
L
MOM
L
( ))()1( 1,11,1 Kxx ������ == −−−− ψψ L
xNについて周辺化
xNに依存する部分だけでよい
周辺化のイメージ
11
周辺分布の よい推 : 本番
Zxp n
1)( = ( ) ( ) ( )
∑ ∑ ∑
−
−−
1 2 1
212,1323,21,1 ,,,nx x x
nnnn xxxxxx LL ψψψ
( ) ( )
∑ ∑
+
−−++
1
,, 1,111,
n �x x
����nnnn xxxx LL ψψ
)( nxαµ
)( nxβµ
∑ ∑∑ ∑− +
=1 1 1
)()(x x x x
n
n n �
pxp xLL
( ) ( ) ( )���� xxxxxxZ
p ,,,1
)( 1,1323,2212,1 −−= ψψψ Lx
代入
さき どの条件付き 性を 用
12
入れ えによる計算• 演算 による計算 の :
====
====
),(),1(
)1,()1,1(
212,1212,1
212,1212,1
KxKxKxx
xKxxx
ψψ
ψψ
L
MOM
L
)( cbaacab +=+
),( 212,1 xxψ をx1について周辺化
=
=
)(
)1(
22,1
22,1
Kx
x
ψ
ψM
K×Kの演算同じことをN-1回繰り返すので,p(xn)を求めるために必要な計算 はO(NK2)
3回 ⇒ 2回
ポイント: 連鎖の さNに対して線形オーダーO(NK2)の計算
13
局所的なメッセージ伝播
– μα: 前向きに伝わるメッセージ– μβ: 後ろ向きに伝わるメッセージ
)()(1
)( nna� xxZ
xp βµµ=
∑ ∑− −
= −−
1 2
),()( 1,1
n nx x
nnnnna xxx Lψµ
∑−
−−−=1
)(),( 11,1
nx
nnnnn xxx αµψ
∑ ∑+ +
= ++
1 2
),()( 11,
n nx x
nnnnn xxx Lψµβ
∑+
+++=1
)(),( 111,
nx
nnnnn xxx βµψ
前向き 後ろ向き
∑=nx
nna xxZ )()( βµµ規格化係数
14
連鎖上全てのノードに対しての推
• 伝播中すべてのメッセージを保存(1) メッセージμαをx1からxNまで前向きに伝播(2) メッセージμβをxNからx1まで後ろ向きに伝播
)( 1−na xµ )( na xµ )( �a xµ)( 2xaµ )( 1+na xµ
)( 1−nxβµ )( nxβµ )( 1−�xβµ)( 1xβµ )( 2−nxβµ
(8.54)∑=nx
nnan xxZ
xp )()(1
)( βµµ
任意のノードの周辺分布を式(8.54)を用いて計算可能
※1 計算 は1つのノードに対する計算 の2倍※2 Zは都合のよいノードで計算すればよい
15
演習8.15: する2点の同時分布• する2点の同時分布 p(xn-1, xn)
Zxxp nn
1),( 1 =−
( ) ( ) ( )
∑ ∑∑
−
−−−−
2 12
212,1323,2121,2 ,,,x xx
nnnn xxxxxxn
LL ψψψ
( ) ( )
∑ ∑
+
−−++
1
,, 1,111,
n �x x
����nnnn xxxx LL ψψ
xn, xn-1以外を周辺化する
)( 1−nxαµ
)( nxβµ
( )nnnn xx ,1,1 −−ψ
⇒ (8.54)
16
補足: チャップマン-コルモゴロフの等式
• ホワイトボードで説明
17
8.4.2 木
18
メッセージパッシングの拡張• ノードの連鎖から成るグラフでは,ノード数に
線形な時間で 推 可能なことを示した• 木 (tree) と呼ばれるクラスでも同様に局所的
なメッセージパッシングによる推 が可能⇒ 連鎖についてのメッセージパッシングを一般化
した積和アルゴリズムを導出
積和アルゴリズムについては8.4.4を乞うご期待!
19
木の種類• 無向木
– 任意のノード間に 一の が存在• 有向木
– 根 (root) と呼ばれる親を持たないノードを1つだけ持ち,他の全てのノードは親を1つだけ持つ
• 多重木– 2つ以上親を持つノードが存在するが,任意の2ノード間の (方向を無
視した) が1つしかない有向グラフ
無向木 有向木 多重木モラル化で変化なし モラル化でループが発生
20
父1父2
子
習: モラル化• 有向グラフから無向グラフへの変換方法
– 親同士を結婚させる≒できちゃった婚
子
父結婚!
子
父
モラル化
父1父2
子モラル化?!
重婚! ザ・ばっくれ・バークレー・ボーイズby 和
21
モラル化:参考情報
などなど
22
演習8.18• 有向木によって表現される分布が,対応する無向木上の
等価な分布によって (自明に) 表現されることを示せ.無向木で表現される分布が,クリークポテンシャルを適
に規格化することにより,有向木で表現可能であることも示せ.ある与えられた無向木から構築できる有向木の数を計算せよ.
⇒ ホワイトボードで説明
23
8.4.3 因子グラフ
24
因子グラフ• 有向グラフ,無向グラフを因子グラフで表現
– 局所的な変数の部分集合のみに依存する関数の集合の積として表現可能
∏=s
ssfp )()( xx
∏=
=K
k
kkxpp1
)pa|()(x (8.5)
∏=C
CCZ
p )(1
)( xx ψ (8.39)
有向グラフ
無向グラフ
因子グラフ (8.59)
⇒ 親にのみ依存という条件付き 性を 用
⇒ 極大クリーク上のポテンシャル関数の積で表現
25
因子グラフの
• この因数分解のグラフ表現
)(),(),(),()( 3322121 xfxxfxxfxxfp dcba=x
無向グラフ表現では,これらの積はひとつのポテンシャル関数に統合された
⇒ 因子グラフではより詳細な情報が表現される
変数ノード
因子ノード
26
有向グラフからの変換(1) ノードに対応する変数ノードを作る(2) 条件付き分布に対応する因子を付け加える(3) 適 なリンクを加える
),|()()(
),,(
21321
321
xxxpxpxp
xxxf
=
)()( 11 xpxfa =
)()( 22 xpxfb =
),|(),,( 213321 xxxpxxxfc =
これはダメ? なぜ?
条件付き分布に着目
27
無向グラフからの変換(1) 各ノードに対応する変数ノードを作る(2) 極大クリークxsに対応する因子ノードを加える
),,(),,( 321321 xxxxxxf ψ=
),,(
),(),,(
321
32321
xxx
xxfxxxf ba
ψ=
),(),,(),(),,( 3232132321 xxxxxxxfxxxf ba ψψ≠注意点
28
局所的な を持つグラフ• 有向グラフにおいて,適 な因子関数を す
ることにより局所的な を 可能
),|()|()(),,( 213121321 xxxpxxpxpxxxf =
29
複数の因子グラフによる表現• 複数の因子グラフが,ひとつの有向グラフ/無向グラフ
を表現することがある
),,()( 321 xxxfp =x
),(),(),()( 323121 xxfxxfxxfp cba=x
何の条件付き 性も表現しない
30
(再掲) 本発表のポイント(1) 連鎖ノードにおけるメッセージパッシング(2) 因子グラフとは? 因子グラフの作り方
31
発表まとめ• 連鎖による推 を じて,メッセージによる推
の 要を解説した• 有向/無向グラフから因子グラフと因子関数を
生成する方法を解説した• 疑問「因子グラフがなんで嬉しいの?」
続く発表に乞うご期待!
32
次回予告
33
これからが
ほんとうの
ノーテーション
地獄だ…
34
35
おしまい