ベイジアンネットワーク

ベイジアンネットワークとは

ベイジアンネットワークは、イギリスの確率論研究家トーマス・ベイズが発案したベイズの定理に基づくもので、因果関係を確率により記述するグラフィカルモデルの1つであり、「原因」と「結果」の関係を複数組み合わせることにより、「原因」「結果」がお互いに影響を及ぼしながら発生する現象をネットワーク図と確率という形で可視化したものです。これは、ある「原因」から発生する「結果」を、確率をもって予測する推論手法ともいえます。

600px-SimpleBayesNet.svg
画像参照:Wikipedia

また、ベイジアンネットワークは、リンクの方向とは関係なく推論が行えます。どのノードに証拠を与えても、他のノードの状態を知ることができるため、原因から結果を予測することはもちろん、結果から原因を探ることも可能です。
これらの考え方は、人が様々な予測をする時の考え方に習ったものといえ、近年では、IT、特にインターネットの世界でベイジアンネットワークを活用した推測エンジンの活用が盛んになってきています。

ベイジアンネットワークには以下のような特徴があります。

  • 単純な二方向の計算ではないこと
  • 確率(乗算)で表現できること
  • 視覚的に操作できること
  • チューニングが容易であること
  • 人間の意志決定のプロセスと非常に似ていること

これらの特徴は、多数の複雑に絡み合う属性それぞれについて、同時に確率を計算することができ、ニューラルネットワークのようなブラックボックスのようなモデルとは異なり、人間がその意味を明確に読み取ることが出来るため、さまざまに入り組む複雑な関係性を、エキスパートの知識そのままの形でコンピュータが処理可能な形に落とし込むことができることを意味しています。

ベイジアンネットワークは、当初、主に医療や機械システムの専門家が自らの判断を落とし込んで、手元の情報から何らかの判断を行うエキスパートシステムのような使い方をされていました。
その後コンピューターの進歩に伴い、大量の観測データと高速な計算が出来るようになったため、大量のデータ間の関係を網羅的に探索し、あり得るベイジアンネットワークを見つける、ということが徐々に可能となってきました。これによって、非常に複雑なことがらを確率モデルに表わすことが可能となりました。
ただし、現在においては完全にコンピュータ任せにはしないことが多く、前提知識などに基づいておおよその構造を人間が決定し、細かい部分の最適化や確率計算をコンピュータにやらせるというスタイルが主流です。


ベイジアンネットワークの利用例

それでは、ベイジアンネットワークがどのように利用されているかご説明します。

例えば、Web侵入検知などがあげられます。

ベイジアンネットワークでは、「攻撃かどうか」、「特定の単語がHTTPリクエストに含まれているかどうか」等を、原因と結果のノードとして表現できます。ここでは「攻撃であること」という原因がまず発生し、その結果として「特定の単語がHTTPリクエストに含まれる」という事象が発生する、という順番で考えます。

このとき、以下の表のような状態を考えます。

HTTPリクエストが攻撃である確率:1%
HTTPリクエストが攻撃でない確率:99%

そしてその次のノードでは

HTTPリクエストが攻撃であり、かつ特定文字列を含む確率:8%
HTTPリクエストが攻撃であり、かつ特定文字列を含まない確率:92%
HTTPリクエストが攻撃ではなく、かつ特定文字列を含む確率:0.2%
HTTPリクエストが攻撃ではなく、かつ特定文字列を含まない確率:99.8%

といった確率がわかっている場合、

HTTPリクエストに特定文字列が含まれていた場合、それが攻撃である確率:28.8%

といったように、ベイジアンネットワークでは、観察可能なノードに既知の情報が入ると、観察できないノードの確率がベイズの定理によって再計算できるという利点があります。

実際はこのような単純な仕組みではありませんが、このように決まった単語を何万通りも計算して、不正なアクセスかどうかの判定を行うことが出来ます。さらに多段化することで、単語だけでなく、単語の組み合わせなども判断基準として使うことができます。