ベイジアンネットワークについて色々調べた現時点でのまとめ

データサイエンス分野に数多くある技術の中でウェブの侵入検知に使えそうなものがいくつかあるが、その中で現在、個人的に最も注目しているのがベイジアンネットワークである。
原因と結果、それぞれの起こりそうな確率を記述したネットワークに、観察された事象を書き込み、計算を行うことで、観察された事象(結果側)から、原因の確率を求めることができるのが魅力。

単純な例であれば、「鼻水がたれている」という事象が観察されたときに、原因として考えられる「風邪をひいている」「花粉症である」などの確率を計算する。
それだけではまったく意味がないのだが、これに新たに「熱がある」という事象が追加で観察されたとする。「風邪をひいている」場合に「熱がある」確率と「花粉症である」場合に「熱がある」確率は違う(前者の確率が高い)という仮定を行った場合、追加で観察された「熱がある」という事象によって、原因の確率が変化し、「おそらく花粉症ではなく、風邪だろう」と判定できることになる。

ちなみにスパムフィルタの技術として有名なナイーブベイズは単純な形をしたベイジアンネットワークである。

ベイジアンネットワークについて色々調べてみた結果、下記がわかった。

  • ベイジアンネットワークは、ネットワーク構造をうまく使うことにより、すべての事象についての確率を横断する計算を避けことができる(計算量を減らすことができる)テクニックとしての側面もある
  • しかしそれでも計算量が多いため、数十、数百、数千というノードを持つ場合にはさらに計算量を減らすための数学的なテクニックが必要とされている
  • ジャンクションツリー(ジョインツリー)は1990年頃から知られているその代表格のアルゴリズムである
  • しかし、ジャンクションツリーでも現実的にベイジアンネットワークを活用するためにはまだまだ計算量は多いとされており、いかに高速に処理を行えるようにするか、は2013年において現在進行形の非常にアツイ研究分野である

 

書籍関連
 
 

ベイジアンネットワーク
植野 真臣
コロナ社
売り上げランキング: 109,714

が洋書を含めた中でも非常に高い完成度を誇っている書籍となっている。初心者向けではないが、少し理解した段階からは読むことが可能。非常に密度が濃い説明がなされており、薄い本なのに充実した内容となっている。2013年7月に出版されたばかり。

はより現場向けの良書で、この本を購入するとAgenaRiskというソフトウェアのLite版が使えるようになる。GUIでベイジアンネットワークを作成し計算することができる。Java製のソフトウェアなのでWindows・Mac・Linuxで利用可能。有名なスプリンクラーの例についてのネットワークを作成してみたのが以下の画像。

 

とりあえずこんな感じ。当初ベイジアンネットワークは四則演算ができれば計算はできるので、自分でゼロから実装しようかと思っていたのだが、上記のとおり色々問題がありそうなことはわかった。そのためオープンソースのJava実装を探してみることにする。

Advertisements


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s