PowerPoint プレゼンテーション

ベイズネットワークにおける信念伝播(Belief Propagation)について
東工大 渡辺澄夫
左の図は、あるベイズネットワークである。
X1
X2
X3
X4
この図を例にして、信念伝播について
解説する。まず、X1~X14 は確率変数を
表している。矢印は、条件つき確率が与
X5
X6
えられていることを意味している。例えば
X8
X7
P( X5 | X1, X2 ) は具体的に与えられて
いるとする。矢印がつながれていないも
X11
X10
X9
のは、直接には関係がないという意味で
ある。出てゆく矢印だけのものには事前
分布があたえられているとする。
X12
X13
X14
X1 X2 X3 X4 X7 がそれに相当する。
ここで考えるのは向きのある結合であり、
図1.ベイズネットの例
(有向グラフ)、また、ネットワーク全体は
「木」になっていて、ループはないとする。
上流と下流の概念を説明する。ある確率変数Xの下流とは、Xから出ている
矢印をすべて切ったときに、X と繋がらなくなる確率変数のこととする。Xの上流は、「X と
下流」以外の確率変数とする。例えば、X6 の下流の例として、X1 X7X12などがある。
またX11 の上流の例として、X9 X10X12などがある。
さて、ベイズネットワークにおいて必要になる操作のひとつに、「幾つかの確率変数の
実現値が与えられたときに、注目する確率変数が、どのような確率分布に従うか」を計算
するというものがある。信念伝播とは、そのような場合の方法を与えるものである。
以下では、 X1 X2 X6 X12 X14 の実現値が与えられたときの X8 がどのような確率分布に
従うかを計算する例を考える。
目標は P(X8 | X1 X2 X6 X12 X14 ) である。条件つき確率の条件部分 X1 X2 X6 X12 X14
をX8から見た上流 U と下流 L にわけ、U = X1 X2 L = X6 X12 X14 とする。目標は
P(X8 | U, L ) である。条件部の上流および下流の分類は、結論部 X8 から見た
ものであり、X8 依存に依存することに注意する。
一般に P(Y | U, L ) を計算する方法を考えよう。信念伝播法では、確率変数 Y とその
上流 U 下流 L について
① P( Y )
② P( Y | U )
③ P( Y | L )
の3つを隣接部へ帰納的に計算してゆく方法である。ベイズの定理から
P(Y | U, L ) =
c P( L | Y, U ) P( Y | U )
= c P( L | Y ) P( Y | U )
= c P( Y | L ) P( Y | U ) / P( Y )
X1
X2
X3
--- 式(1)
が成立つ。ここで 1/c = P( L | U ) は,
P( Y | U, L ) の Y についての和が1
X5
になることから
X4
X8
(1/c) = ∑Y P( L | Y ) P( Y | U ) に
よって計算できる。従って、特にYと
して X8 を選ぶことで、目標が計算
X6
できる。
X8
X7
式(1) は目標が図2のように分割して
X11
X10
X9
計算できることを述べている。そこで
Y について上流と下流へ、それぞれ
①②③を帰納的に計算することで、
X12
X13
図2.式(1)による分割
X14
目標が計算できる。
(0). 条件部の確率の計算
帰納的な計算に先立って、条件部のうちで「上流に条件を持たないもの」を選び
出して、条件が起こる確率を計算しておく。例の目標 P(X8 | X1 X2 X6 X12 X14 ) に
おいてはX1 X2 X6 X12 X14の中でX1 X2 X6 が、それに相当する。これは、それぞれ
の上流に和を取りながら遡ることにより計算できる。例えば P(X1), P(X2)は定義により
与えられている。 また P(X6) = ∑X4 P(X6|X4)P(X4) である。なお、X6 は X8 から
見ると下流になるが、 X11から見ると上流にになるので、計算しておく必要がある。
① P(Y) の計算
下の②から P(Y|U) が計算できるので、上の (0) と合わせて
P(Y) =∑U P(Y|U)P(U)
とする。
② P(Y|U) の計算法
Y への矢印が入ってくるものについての和を取ることでひとつ上流に進む。図の例
で Y= X8 のときには(図3)
P(X8|U) = ∑X3,X5 P( X8 | X3 X5 ) P( X3 | U ) P( X5 | U )
この式は、 P(X8|U) が P( X3 | U ) と P( X5 | U ) に関する和で計算できることを述べ
ている。なお、例では、 P( X3 | U ) =P( X3 ) である。
なお、一般的には U は X3 や X5 から見たときは、上流と下流に分かれるので、
次の段階で P( X5 | U ) を計算するときには U はX5について U’ L’ に分かれることに
注意する。(式(1)を使う)。
X3
X5
X8
図3.機能的計算のうちの、遡る方のもの
X8
X10
X11
図4.帰納的計算のうち、くだる方
③ P( Y | L ) の計算法
Y から矢印が出てゆくものについての和を取ることでひとつ下流に進む。図の例
では
P( L | X8) = ∑X10,X11 P(X10 X11 | X8 ) P( L | X10 ) P( L | X11 )
そこで、このことと、①の結果を利用してP( X8 ) はわかっているので、
P( X8 | L ) = c’ P( L | X8) P( X8 )
を計算すればよい。(1/c’) = Σ X8 P( L | X8) P( X8 ) は正規化定数である。
(注意) Lは X10 、X11のそれぞれから見ると、上流と下流に分かれる。実際、
P( L | X8) = ∑X10,X11 P(X10 X11 | X8 ) P(X12 | X10 ) P(X6 X14 | X11 )
において、X6 は X11 から見ると上流であるが、X14 は下流である。次の段階で、
P(X6 X14 | X11) を計算する場合には、式(1)を利用して分割する必要がある。
以上で述べた①②③を再帰的に利用することにより、目標が計算できる。この
アルゴリズムが有限で停止することは、グラフが木の構造をしているから明らかであろう。
ベイズネットワークが木でない場合にも、この繰り返しを当てはめるとどんな
ことが生じるのだろうか。