PRML輪読会 2017
第8章 グラフィカルモデル
東京⼤学⼤学院⼯学系研究科
技術経営戦略学専攻
松尾研究室
M1 中川 ⼤海
構成
8.1 ベイジアンネットワーク
8.2 条件付き独⽴性
8.3 マルコフ確率場
8.4 グラフィカルモデルにおける推論
2
はじめに
• グラフィカルモデル
– 確率変数間の依存関係をグラフで表現したもの
• なぜグラフィカルモデルを使うのか?
1. 確率モデルの構造を視覚化する簡単な⽅法を提供し,新しいモデルの設計⽅
針を決めるのに役⽴つ
2. グラフの構造を調べることにより,条件付き独⽴性などのモデルの性質に関
する知⾒が得られる
3. 精巧なモデルにおいて推論や学習を実⾏するためには複雑な計算が必要と成
るが,これを数学的な表現を暗に伴うグラフ上の操作として表現することが
できる
• 表現するもの:全確率変数上の同時分布が,⼀部の変数のみに依存
する因⼦の積としてどのように分解可能か
– リンク(link, arc, edge)とノード(node, vertex)の集合によって表現
3
はじめに
• グラフィカルモデル
– 確率変数間の依存関係をグラフで表現したもの
4
応⽤例:画像復元
→画素間のような因果関係が⾃明でない場合に⽤いることが多い
応⽤例:物体追跡
→時間のような系列データに対して⽤いることが多い
引⽤:https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453
8.1 ベイジアンネットワーク
5
8.1 ベイジアンネットワーク
• ベイジアンネットワーク(有向グラフィカルモデル)
– 同時分布を例えば以下のように表す
– aはbの親ノード
– bはaの⼦ノード
– 同時分布の因数分解は⼀意に定まらない
– モデル設計者がデータが⽣成されるプロセス(因果関係)に基づいて決める
• 前時刻 → 現時刻
• 内部状態 → 観測値
6
8.1 ベイジアンネットワーク
• ベイジアンネットワーク(有向グラフィカルモデル)
– ⼀般化:
– K個のノードを持つグラフに対応する同時分布は
• pakはxkの親ノー集合ド
7
8.1.1 例:多項式曲線フィッティング
• 有向グラフの使い⽅を,ベイズ多項式回帰モデルをベースに考える
• まず,確率変数のみを書いてみる
– 確率変数
• 多項式係数ベクトル: w
• 観測データ: t = (t1, ..., tN)
– パラメータ
• ⼊⼒データ: x
• ノイズの分散:σ2
• w上のガウス事前分布の精度パラメータ:α
8
8.1.1 例:多項式曲線フィッティング
• 有向グラフの使い⽅を,ベイズ多項式回帰モデルをベースに考える
• 多数のノードを陽に書き下すのは不便
– プレートで表現
• モデルのパラメータも陽に書いてみる
– パラメータは塗りつぶされた⼩さい円で表現
• 確率変数のいくつかは観測値に対応
– 観測値はノードに影付けする
9
8.1.1 例:多項式曲線フィッティング
• 有向グラフの使い⽅を,ベイズ多項式回帰モデルをベースに考える
• 最終⽬的は新しい⼊⼒値xに対する予測
– 観測データtで条件付けられた の確率分布
– wを積分消去すれば の予測分布が求められる
10
8.1.2 ⽣成モデル
• 同時分布に従うサンプルを発⽣させるには?
• 伝承サンプリング
– 番号の⼩さいノードから順にサンプルを発⽣させていく
– 例:画像の⽣成
• Image:各観測データ点
• Object, Position, Orientation: 隠れ変数
• PositionとOrientationを積分消去すれば,Objectに関する事後分布が求まる
• ⽣成モデル:観測データが⽣成される因果過程を表現したモデル
– 隠れ変数の伝承サンプリングによって観測データの⽣成過程を模倣
– 観測データと「同じ」確率分布に従う架空のデータを発⽣
11
8.1.3 離散変数
• 有向グラフの親⼦対が共役関係になっていると良い
– 特に以下の場合は階層的に拡張して任意の複雑な有向⾮循環グラフが作れる
– 親:離散変数 → ⼦:離散変数
– 親:ガウス変数 → ⼦:ガウス変数
• K状態離散変数x(1-of-K表現)上の確率分布
– 規格化制約 より,K-1個のμkが求まれば分布が決定
• K状態変数がM個ある場合,パラメータ数は KM-1
– 指数的に増⼤
• しかし,M個の独⽴なK状態変数上の分布の場合,パラメータ数は M(K-1)
– 線形に増加
– リンクの除去によってパラメータが減少
12
8.1.3 離散変数
• パラメータを減らす⽅法
• リンクの除去
• パラメータの共有
13
引⽤:https://www.slideshare.net/antiplastics/prml8
8.1.3 離散変数
• パラメータを減らす⽅法
• 条件付き分布にパラメトリックな分布を採⽤
14
引⽤:https://www.slideshare.net/antiplastics/prml8
8.1.4 線形ガウスモデル
• ⽬的:線形ガウスモデルに対応する有向グラフで多変量ガウス分布を表現
• 線形ガウスモデルでは分布の平均は
• wij, biは平均を⽀配するパラメータ,viはxiの条件付き分布の分散
• 全てのノードの同時分布の対数は
• 8.13はxの成分に関する2次関数→p(x)は多変量ガウス分布
15
引⽤:https://www.slideshare.net/antiplastics/prml8
8.1.4 線形ガウスモデル
• ⽬的:線形ガウスモデルに対応する有向グラフで多変量ガウス分布を表現
• 8.13はxの成分に関する2次関数→p(x)は多変量ガウス分布
• この時,期待値と分散は再帰的に求まる
16
8.1.4 線形ガウスモデル
• ⽬的:線形ガウスモデルに対応する有向グラフで多変量ガウス分布を表現
• ガウス分布の共役事前分布はガウス分布
• ガウス変量の平均をガウス分布とする
• ガウス分布の平均値=超パラメータをガウス分布とすると...
– 階層ベイズモデル
17
引⽤:https://www.slideshare.net/antiplastics/prml8
8.2 条件付き独⽴性
18
8.2 条件付き独⽴性
• 確率変数間に独⽴あるいは条件付き独⽴が成⽴すると,因数分解できて組み
合わせの数が減り計算量が減少
• どうやって独⽴性を調べる?
• 全ての組み合わせを加法定理・乗法定理で調べるのは計算量が膨⼤
• グラフの形だけで独⽴かどうか判断できる!(有向分離,d-separation)
• 以降,3つのグラフの例を⽤いてその⽅法を説明していく
19
引⽤:https://www.slideshare.net/antiplastics/prml8
8.2.1 3つのグラフの例
• 以下の3つの構造について有向分離を考える
• tail-to-tail
• head-to-tail
• head-to-head ←こいつが特殊
• やることとしては,同時分布 に対して
– cに関して周辺化 → aとbの独⽴性を調べる
• となれば
– cで条件付け → aとbの条件付き独⽴性を調べる
• となれば
20
8.2.1 3つのグラフの例
• 1. tail-to-tail
– cで周辺化すると
• これは⼀般に積 に変換できないので,独⽴ではない
– cで条件付けると
• に変換できたので,条件付き独⽴
21
引⽤: https://www.slideshare.net/sleepy_yoshi/prml-82
8.2.1 3つのグラフの例
1. tail-to-tail
– cで周辺化すると
• に変換できないので,独⽴ではない
– cで条件付けると
• に変換できたので,条件付き独⽴
22
何も変数が観測されていない
→aとbを経由する経路が存在
→aとbは独⽴にならない
cに関して条件付け
→aとbを経由する経路がblock
→aとbは独⽴になる
引⽤: https://www.slideshare.net/sleepy_yoshi/prml-82
8.2.1 3つのグラフの例
2. head-to-tail
– cで周辺化すると
• に変換できないので,独⽴ではない
– cで条件付けると
• に変換できたので,条件付き独⽴
23
何も変数が観測されていない
→aとbを経由する経路が存在
→aとbは独⽴にならない
cに関して条件付け
→aとbを経由する経路がblock
→aとbは独⽴になる
引⽤: https://www.slideshare.net/sleepy_yoshi/prml-82
8.2.1 3つのグラフの例
3. head-to-head
– cで周辺化すると
• に変換できるので,独⽴
– cで条件付けると
• に変換できないので,条件付き独⽴ではない
24
何も変数が観測されていない
→aとbを経由する経路がblock
→aとbは独⽴
cに関して条件付け
→aとbを経由する経路がunblock
→aとbは独⽴になる
※⼦孫のいずれかが観測される
だけでunblock
引⽤: https://www.slideshare.net/sleepy_yoshi/prml-82
8.2.1 3つのグラフの例
• まとめると
25
引⽤: https://www.slideshare.net/antiplastics/prml8
8.2.1 3つのグラフの例
• head-to-headの(更に)特殊な性質:弁明
26
引⽤: https://www.slideshare.net/antiplastics/prml8
8.2.2 有向分離
• 3つのグラフの例を,ノード集合までに拡張
– 以下のいずれかを満たせば遮断(blocked)
1. 集合Cに含まれるノードであって,経路に含まれる⽮印がそこでhead-to-
tailあるいはtail-to-tail
2. 経路に含まれる⽮印がそのノードでhead-to-headであり,⾃⾝あるいはその全
ての⼦孫のいずれもが集合Cに含まれない
– すべての経路が遮断されていれば,AはCによってBから有向分離
27
引⽤: https://www.slideshare.net/antiplastics/prml8
8.2.2 有向分離
• 3つのグラフの例を,ノード集合までに拡張
28引⽤: https://www.slideshare.net/antiplastics/prml8
8.2.2 有向分離
• 3つのグラフの例を,ノード集合までに拡張
29
引⽤: https://www.slideshare.net/antiplastics/prml8
8.2.2 有向分離
• 3つのグラフの例を,ノード集合までに拡張
30
引⽤: https://www.slideshare.net/antiplastics/prml8
8.2.2 有向分離
• 有向分離定理:以下の2つは同じ分布を得る
– 有向分解
• グラフによって同時確率を条件付き確率の因数分解で表現
– 有向分離
• グラフに有向分離基準を適⽤し全ての条件付き独⽴性を調べ上げる
31
8.2.2 有向分離
• マルコフブランケット
– あるノードが条件付き独⽴になるにはどのノードを与えればよいか?
32
8.3 マルコフ確率場
33
8.3 マルコフ確率場
• マルコフ確率場(無向グラフィカルモデル)
– 変数間に双⽅的な因果関係がある場合
– ベイジアンネットワークより単純
34引⽤: https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453
8.3 マルコフ確率場
• マルコフ確率場(無向グラフィカルモデル)
– 変数間に双⽅的な因果関係がある場合
– ベイジアンネットワークより単純
35
マルコフブランケット
引⽤: https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453
8.3.2 分解特性
• 無向グラフの因数分解の特性を考える
– 同時分布p(x)が局所的な変数集合上の関数の積としてどのように表現されるか?
– 「局所性」とはなにか?
• 1つのリンクによって直接接続しないxi, xj
– グラフ上の他の全てのノードが与えられた下で,条件付き独⽴でなければならない
– なぜなら,直接経路がない→すべての経路は観測済みノードを経由→すべての経路が遮断
• この条件付き独⽴性がグラフ上のあらゆる分布について成⽴するには,xi, xjが
同じ因⼦に含まれないように因数分解する必要がある
– これを考えるためにクリークという概念を導⼊
36
引⽤: https://www.slideshare.net/antiplastics/prml8
8.3.2 分解特性
• クリーク
– 全てのノードの組にリンクが存在するようなグラフの部分集合
– クリークのノード集合は全結合
– 極⼤クリーク:もう1つノードを加えるとクリークでなくなるもの
• 同時分布を因数分解した時の各因⼦を,クリークが含む変数集合の関数にすれば
良い
37
8.3.2 分解特性
• 同時分布を極⼤クリークを引数としたポテンシャル関数の積に因数分解
– クリーク:C,ポテンシャル関数:Ψc,クリーク内の変数集合:Xc
• 基本的に総和は1にならないので,規格化定数 を導⼊
– 計算が⼤変
– 有向グラフでは因数分解の各因⼦の条件付き確率が規格化されていたのでOK
– 無向グラフの主要な弱点の⼀つ
38
引⽤:https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453
8.3.3 例:画像のノイズ除去
39
8.3.4 有向グラフとの関係
• モラル化:有向グラフを無向グラフに変換
– ジャンクションツリーアルゴリズムなどで厳密推論を⾏う際に重要
– リンクの追加を最⼩限に⾏うことで,条件付き独⽴性を可能な限り残す
40引⽤:https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453
8.4 グラフィカルモデルにおける推論
41
8.4. グラフィカルモデルにおける推論
• グラフのいくつかのノードが観測値に固定された時,残ったノードに関する
事後分布を計算したい
– 効率的なアルゴリズムの発⾒などにグラフの構造が利⽤できる
– 多くのアルゴリズムは局所的なメッセージのグラフ全体にわたる伝播として表現可
– 本節では厳密推論を扱う
• 近似推論アルゴリズムは10章
• 単純な推論問題の例:ベイズの定理
– (a)
– (b) yが観測される
– (c) 事後分布 が求まる
• ⽮印の向きが反転
42
8.4.1 連鎖における推論
• 無向連鎖のグラフにおいて,ノードxnの周辺分布p(xn)を考える
– 有向連鎖と無向連鎖は全く同じ条件つき独⽴性を表現
43
引⽤:https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453
8.4.1 連鎖における推論
• 無向連鎖のグラフにおいて,ノードxnの周辺分布p(xn)を考える
– xn以外のすべての変数について同時分布の和を取れば得られる
– そのままやろうとすると計算量が膨⼤(指数関数的に増加)
– グラフの条件付き独⽴性を活⽤
• 因数分解表現 を利⽤
• ⾜し算と掛け算の順序を⼊れ替える(計算量は線形に増加)
44
8.4.1 連鎖における推論
• この計算をうまく表現するために,メッセージパッシングの概念を導⼊
– 局所的なメッセージがグラフを伝播(再帰的に計算)
– マルコフ連鎖の例
45
引⽤:https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453
8.4.2 ⽊
• 連鎖より広いクラスの⽊(tree)のグラフ
– 同様のメッセージパッシングによる推論が可能
– 無向:任意のノードの組の間に唯⼀の経路が存在するグラフ(ループなし)
– 有向:親を持たない根(root)ノードをただ1つ持ち,他のノードは親を1つずつ持つ
• 親を2つ以上持つことがないため,モラル化してもリンク追加なしで無向⽊になる
– 多重⽊:2つ以上の親を持つノードが存在するが,任意の2ノード間の経路は1つ
• モラル化するとループを持つ無向⽊になる
46
8.4.3 因⼦グラフ
• 積和アルゴリズムの導出の前に:因⼦グラフ
47
引⽤:https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453
8.4.3 因⼦グラフ
• ⽊構造は効率的な推論を⾏う上で重要
– 有向多重⽊は無向グラフに変換するとループ構造を持ってしまう...
– 因⼦グラフに変換すればループがなくなる
48
8.4.3 因⼦グラフ
• 因⼦グラフは⼀意ではない
=因数分解をより正確に表現
49
引⽤:https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453
8.4.4 積和アルゴリズム
• 積和アルゴリズム
– 因⼦グラフの枠組みを利⽤して,⽊構造グラフにおいて効率的かつ厳密な推論を可能に
50
引⽤:https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453
8.4.4 積和アルゴリズム
• グラフは有向⽊or無向⽊と仮定し,因⼦グラフに変換しておく
– 同じ枠組みで扱えるようにするため
• ⽬的
– 周辺分布を求めるための効率良い厳密推論アルゴリズムを得る
– 複数の周辺分布を計算したい場合に,計算の重複をなくして効率化する
• 導出の概要
– ある特定の変数ノード x 上の周辺分布 を求める問題を考える
– 因⼦グラフ表現 をp(x)に代⼊
– 和演算と積演算を交換して効率的なアルゴリズムを得る
51
8.4.4 積和アルゴリズム
• 導出の⼤まかな流れ
– 同時分布の因⼦を隣接因⼦ノードでグループ分け
– 和積交換により因⼦ノードfsから変数ノードxへのメッセージの積としてp(x)を表現
– 因⼦ノード→変数ノードのメッセージを計算
• 因⼦ノードに接続する他のすべてのリンクを伝わって流⼊するメッセージの積を計算
• 当該ノードに対応する因⼦を掛ける
• 流⼊するメッセージに関連する全ての変数について周辺化(図8.47)
• ※変数ノード→隣接因⼦ノードのメッセージの計算は流⼊メッセージの積を求めれば良い
52
8.4.4 積和アルゴリズム
• アルゴリズムの⼤まかな流れ(⽬的:周辺分布p(x)を求める)
– 変数ノードxを因⼦グラフの根ノードとみなし,葉ノードのメッセージを初期化
– メッセージパッシングを再帰的に適⽤
– 根ノードが全ての隣接ノードからメッセージを受け取れば,周辺分布が求まる
53
8.4.4 積和アルゴリズム
• すべてのノードについて周辺分布を求めたい場合は,毎回計算するのではな
く重ね合わせによって効率的に処理できる
• 無向グラフベースの因⼦グラフの場合は規格化されていない
– まず規格化されていない周辺分布 を求める
– それらの周辺分布の⼀つを規格化することで規格化係数1/Zが求まる
• 積和アルゴリズムの具体的なイメージはp.123-125を参照
54
8.4.5 max-sumアルゴリズム
• 積和アルゴリズム:因⼦グラフが表す同時分布上の変数の周辺分布を計算
• これ以外に以下の2つのタスクを考える際にmax-sumアルゴリズムを使う
– 確率が最⼤となる変数の組を⾒つける
– そのときの確率値を求める
• 積和アルゴリズムで求めた周辺分布p(xi)を最⼤にする変数を分布iごとに探す?
– 各分布で個別に最も確からしい変数集合が得られるだけ
– 実⽤上は,最⼤確率値を同時に達成する変数集合を⾒つけたい
55
8.4.5 max-sumアルゴリズム
• max-sumアルゴリズムの概要①
– 確率の最⼤値は
– 和演算を最⼤値演算で置き換えた場合の積和アルゴリズムによって葉→根にメッセージ
パッシング(max-product)
• アンダーフロー対策に対数をとる→積演算が対数の和演算になる→max-sum
• 根ノードにおける最⼤確率pmaxが求まる
56
8.4.5 max-sumアルゴリズム
• max-sumアルゴリズムの概要②
– 同時分布の最⼤値は得た
– もう1つの⽬的:同時分布の最⼤値を与える変数集合を求める
– 単純なメッセージパッシングでは変数ごとに最⼤点が異なりうるため機能しない
• 葉→根ノードの伝播計算の際に,各変数がどの値で最⼤状態を与えたかを記録しておく
57
8.4.6 ⼀般のグラフにおける厳密推論
• 実⽤上はループを持つグラフを扱うことがあり,積和アルゴリズムやmax-
sumアルゴリズムを適⽤できない場合がある
– ジャンクションツリーによって,メッセージパッシングを任意の形のグラフに拡張
58
引⽤:https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453
8.4.7 ループあり確率伝播
• 実⽤上は厳密推定が困難な場合が多い→近似アルゴリズムの利⽤
– 10章:変分法
– 11章:サンプリング⼿法
– 本節:ループのあるグラフにおける簡単な近似推論
• 単に積和アルゴリズムをループありグラフにも適⽤してしまう
– 良い結果を与える保証はなく,収束しない場合もある
– メッセージパッシングのスケジュールを決める必要
59
8.4.8 グラフ構造の学習
• これまでの推論の前提:グラフ構造が既知
– しかし,推論を超えてグラフ構造そのものをデータから学習したい場合もある
• ベイズ的観点から,グラフ構造上の事後分布を計算してその分布に関する平
均を計算することで予測分布を求めるのが理想的
– mと番号付けられたグラフに対する事前確率p(m)
– モデルのエビデンスp(D|m)を各モデルのスコアとして使うことができるが,周辺化計算
が困難
• グラフ構造の数はノード数に対して指数的に増⼤するため,良い候補を⾒つ
けるには発⾒的⼿法に頼る必要がある場合が多い
60
参考⽂献
• パターン認識と機械学習 下
– C.M. ビショップ (著), 元⽥ 浩 (監訳), 栗⽥ 多喜夫 (監訳), 樋⼝ 知之 (監訳), 松本 裕治 (監訳), 村⽥ 昇 (監訳)
• グラフィカルモデル⼊⾨ (川本和彦,SlidShare)
– https://www.slideshare.net/Kawamoto_Kazuhiko/ss-35483453
• PRML8章 (霧崎弘毅,SlideShare)
– https://www.slideshare.net/antiplastics/prml8
• PRML 8.2 条件付き独⽴性 (SUHARA YOSHIHIKO,SlideShare)
– https://www.slideshare.net/sleepy_yoshi/prml-82
61

PRML輪読#8