PR

 ベイジアンネットは、さまざまな事象の因果関係をネットワーク構造で表現し、それぞれの関係の強さを表す数値(条件付き確率)を保持する、データの表現方法である。複雑な知識を効率的に表現でき、それを基にさまざまな確率的な推論を実行できる。この推論は「直感」と似た働きをする。

 図A-1は簡単なベイジアンネットの例。事象を表す丸(ノード)と因果関係を示す矢印(エッジ)、因果関係の強さを示す表(条件付き確率表)から成り、S(スプリンクラーが動いた)、R(雨が降った)、W(芝生が濡れている)、C(雲が出ている)の4つの事象の関係を示す。表の確率、例えばPS=yes)=0.2はある時点でスプリンクラーが動いている確率が0.2、PW =yes|S,R)=0.98(S=yes、R=yesの場合)はスプリンクラーが動き雨も降った時に芝生が濡れる確率は0.98という知識を表す。ベイジアンネットがあれば、実際にどれかの事象が生じた時に、他の事象が起きた確率を計算できる。芝生が濡れていた場合に、「スプリンクラーが動いていた」や「雨が降っていた」の確率(事後確率)が分かるわけだ。この結果、最も事後確率の高い事象を、芝生が濡れた原因とみなせる。

図A-1 ベイジアンネットの例
4つの事象の関係を表している。各事象は「yes」か「no」の2値を取る確率変数とみなせる。親ノードとの因果関係は、ノードに付属する条件付き確率表で表す。
[画像のクリックで拡大表示]

 現状のBESOMでは、事後確率計算とは別の計算で原因を推測している。BESOMではMPE(most probable explanation)と呼ばれる値の組を求める。例えば芝生が濡れていた時に、他の事象のすべての状態の組み合わせに対して、それらが同時に生じる確率(同時確率)を計算する。この結果、最も確率が高い組み合わせがMPEである。図A-2の表から、芝生が濡れていたときのMPEは、スプリンクラーが動き、雨は降らず、雲はない場合であり、これを推論の結果とするわけである。

図A-2 観測結果からMPEを求める
ベイジアンネットを構成するノードの1つの値が確定したときに、その他のすべての ノードが特定の値になる確率(事後確率)や、同時に起こる確率が最大になる、全ノードの値の組み合わせ(MPE)を求めることができる。「芝生が濡れている」がyesだったときのMPEは、同時確率(PS,R,C,W))が最も大きい、「スプリンクラーが動いた=yes」「雨が降った=no」「雲が出ている=no」の組み合わせになる。
[画像のクリックで拡大表示]

 事後確率よりもMPEを用いるのは、その方が人の認識に近いと考えたからである。人は壺にも横顔にも解釈できる曖昧な図形を、瞬間ごとにどちらか一方だと認識し、壺51%横顔49%とは認識しない。つまり脳の認識の結果は、ノードごとの確率よりもMPEに似ているのではないか。

 ベイジアンネットを認識や推論に使う場合の問題点は、計算量が膨大になること。上記の同時確率の計算に必要な時間は、2値をとるノード数がnになれば2nのオーダーで増える。これを、せいぜいnのオーダーに抑えるために、近似計算でMPEを推定できるアルゴリズムが必要である。この点は、我々の研究テーマの1つである。

 ベイジアンネットの構成や条件付き確率をどうやって学習させるのかも課題である。対象とする事象に関する膨大なデータがあればそれぞれの確率などを一気に計算できるが、人間の脳での処理を考えると、新しい観測データが与えられたときに、条件付き確率表を逐次更新していく方式が望ましい。こうした学習法はオンライン学習アルゴリズムと呼ばれ、BESOMでもその一種を採用している。

 なお、ベイジアンネットの見た目はニューラルネットに似ているが、ノードやエッジの意味が違うので注意が必要である。ベイジアンネットのノードは、必ずしもニューロンに対応しているわけではない。実際BESOMでは、1つのノードは約1万個のニューロンで構成されるマクロコラムという組織に対応すると考えている。もちろん、ノードが実行する処理は、単純な演算しかできないニューロンを組み合わせた神経回路で実現できることが前提になる。