370 likes | 747 Views
PRML 読書会第 11 回 8.4 グラフィカルモデルによる推論. 2010-02-06 SUHARA YOSHIHIKO (id:sleepy_yoshi). 目次. 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 グラフ構造の学習. ここまで. 本発表のポイント. (1) 連鎖ノードにおけるメッセージパッシング
E N D
PRML読書会第11回8.4 グラフィカルモデルによる推論 2010-02-06 SUHARA YOSHIHIKO (id:sleepy_yoshi)
目次 • 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 グラフ構造の学習 ここまで
本発表のポイント (1) 連鎖ノードにおけるメッセージパッシング (2) 因子グラフとは? 因子グラフの作り方
グラフィカルモデルにおける推論 • 目的: グラフィカルモデルにおける推論 • いくつかのノードが観測された際に,残ったノード (のうちいくつか) の事後分布を知りたい • アプローチ • グラフ構造を利用して局所的なメッセージの伝播を用いて厳密推論を行う • cf. 近似推論は10章で紹介
??? ベイズの定理の例 • 2変数x, y上の同時分布を因数分解する (a) (b) yが観測された (b) yが観測された (c) ??? (8.47) (8.48) ではダメ?
無向連鎖のグラフの例 K状態離散変数 ※有向グラフと同じ条件付き独立性を持つ (8.49) K×Kの表 N-1個 ⇒ 同時分布は (N-1) K2個のパラメータを持つ 復習
周辺分布の推論 • 連鎖途中のノードの周辺分布を推論したい • どのノードも観測されていない場合 コレ xn (8.50) 周辺分布 xn以外で周辺化 ⇒ xが取りうる状態の数: KN個 ポイント: 連鎖の長さNに対して指数オーダーO(KN)のメモリ容量と計算量
STOP! ポテンシャル関数って何なのさ? • (規格化されるので) ψ(xC) > 0 であればなんでもよい • 例えばボルツマン分布: • エネルギー関数も本文中に記述なし • ポテンシャル関数の周辺化ってどういうこと? • 簡単のためxc={x1,x2},x1,x2は0,1の2値離散確率変数とする 私の認識 ポテンシャル関数を使って説明しているのは一般性を保つため 辛くなったら適宜確率に脳内変換すべし
周辺分布の効率よい推論: 道具立て グラフィカルモデルの条件付き独立性を利用 xNの周辺化の例 xNに依存する部分だけでよい 周辺化のイメージ xNについて 周辺化
周辺分布の効率よい推論: 本番 代入 さきほどの条件付き独立性を利用
順序入れ替えによる計算量削減 • 演算順序による計算量削減の例: 3回 ⇒ 2回 をx1について周辺化 K×Kの演算 同じことをN-1回繰り返すので,p(xn)を求めるために必要な 計算量はO(NK2) ポイント: 連鎖の長さNに対して線形オーダーO(NK2)の計算量
局所的なメッセージ伝播 規格化係数 • μα: 前向きに伝わるメッセージ • μβ: 後ろ向きに伝わるメッセージ 後ろ向き 前向き
連鎖上全てのノードに対しての推論 • 伝播中すべてのメッセージを保存 (1) メッセージμαをx1からxNまで前向きに伝播 (2) メッセージμβをxNからx1まで後ろ向きに伝播 ※1 計算量は1つのノードに対する計算量の2倍 ※2 Zは都合のよいノードで計算すればよい 任意のノードの周辺分布を式(8.54)を用いて計算可能 (8.54)
演習8.15: 隣接する2点の同時分布 • 隣接する2点の同時分布 p(xn-1, xn) xn, xn-1以外を周辺化する ⇒ (8.54)
補足: チャップマン-コルモゴロフの等式 • ホワイトボードで説明
メッセージパッシングの拡張 • ノードの連鎖から成るグラフでは,ノード数に線形な時間で厳密推論可能なことを示した • 木 (tree) と呼ばれるクラスでも同様に局所的なメッセージパッシングによる推論が可能 ⇒ 連鎖についてのメッセージパッシングを一般化した積和アルゴリズムを導出 積和アルゴリズムについては 8.4.4を乞うご期待!
木の種類 • 無向木 • 任意のノード間に唯一の経路が存在 • 有向木 • 根 (root) と呼ばれる親を持たないノードを1つだけ持ち,他の全てのノードは親を1つだけ持つ • 多重木 • 2つ以上親を持つノードが存在するが,任意の2ノード間の (方向を無視した) 経路が1つしかない有向グラフ 無向木 有向木 多重木 モラル化で変化なし モラル化でループが発生
復習: モラル化 • 有向グラフから無向グラフへの変換方法 • 親同士を結婚させる≒できちゃった婚 結婚! 父 母 父 母 子 子 モラル化 重婚! ザ・ばっくれ・バークレー・ボーイズ by 秋里和国 父1 父2 父1 父2 母 母 モラル化?! 子 子
モラル化:参考情報 などなど
演習8.18 • 有向木によって表現される分布が,対応する無向木上の等価な分布によって (自明に) 表現されることを示せ.無向木で表現される分布が,クリークポテンシャルを適切に規格化することにより,有向木で表現可能であることも示せ.ある与えられた無向木から構築できる有向木の数を計算せよ. ⇒ ホワイトボードで説明
因子グラフ • 有向グラフ,無向グラフを因子グラフで表現 • 局所的な変数の部分集合のみに依存する関数の集合の積として表現可能 因子グラフ (8.59) 有向グラフ ⇒ 親にのみ依存という条件付き独立性を利用 (8.5) 無向グラフ ⇒ 極大クリーク上のポテンシャル関数の積で表現 (8.39)
因子グラフの例 • この因数分解のグラフ表現 変数ノード 因子ノード 無向グラフ表現では,これらの積は ひとつのポテンシャル関数に統合された ⇒ 因子グラフではより詳細な情報が表現される
有向グラフからの変換 (1) ノードに対応する変数ノードを作る (2) 条件付き分布に対応する因子を付け加える (3) 適切なリンクを加える 条件付き分布 に着目 これはダメ? なぜ?
無向グラフからの変換 (1) 各ノードに対応する変数ノードを作る (2) 極大クリークxsに対応する因子ノードを加える 注意点
局所的な閉路を持つグラフ • 有向グラフにおいて,適切な因子関数を設定することにより局所的な閉路を除去可能
複数の因子グラフによる表現 • 複数の因子グラフが,ひとつの有向グラフ/無向グラフを表現することがある 何の条件付き独立性も表現しない
(再掲) 本発表のポイント (1) 連鎖ノードにおけるメッセージパッシング (2) 因子グラフとは? 因子グラフの作り方
発表まとめ • 連鎖による推論を通じて,メッセージによる推論の概要を解説した • 有向/無向グラフから因子グラフと因子関数を生成する方法を解説した • 疑問「因子グラフがなんで嬉しいの?」 続く発表に乞うご期待!
これからが ほんとうの ノーテーション 地獄だ…