Hot Links
ベイジアンネットワークの構築(続き)BNのコンパイルネットをコンパイルし、どのように動くのか見てみましょう: 図 7: 実行モードのツールボタン コンパイラは次のようなエラーをチェックします:
このチュートリアルのガイダンスに従っているのならば、コンパイルの過程でエラーはないはずです。このような小規模なBNだとコンパイルは非常に早く終了されるはずです。コンパイルの後、 "実行" モードに入ります(まだ"編集" モードでしか動かしていません)。 BNの実行."実行"モードで実行する際、ネットワーク・ウィンドウは垂直な分離線で2つに分けられています(図 8)。左側がノードリスト・パネル、右側がネットワーク・パネルです。 図 8: "実行"モード内のネットワーク・ウィンドウ。 左にノードリスト・パネル( (LosesとSickを開いている状態)、右にネットワーク・パネル ノードリスト・パネルでノードを開くことによって、あるステート内にあるノードの確率を見ることができます。ノードリスト・パネルでダブルクリックしてノードを開きます(ノードリスト・パネルで小さいノードアイコンをクリックする場合は、クリックは一回だけ必要となります。LosesとSickを開いてみてください:
ノード・プロパティツールのちょうど右にツールバーの中にあるノードリストを開くツールを押すと、一度にすべてのノードを開くことができます。 その木は病気なのか?今、あなたは木が葉をなくしているという情報を与えられたリンゴの木が病気である確率を見つけるためにBNを使いたいとしましょう。次のように行います:
図 9: sum 伝播ツール これによって、図 10のような出力が得られるはずです。 図 10: 木の葉が落ちてしまったというエビデンスを入力し、sum 伝播した後のBN 木が病気である確率は今は 0.49です。 もし、上記のように指定された値を読めない場合は、おそらくCPT入力の際になにかミスタイプしています。そのときは、すべてのノードのCPTをチェックしてください。 モニター・ウィンドウ.前の章では、エビデンスを入力したり、信念を読み出したりするのにノードリスト・パネルを使用しました。これをモニター・ウィンドウで行うこともできます。モニター・ウィンドウでは、ノードリスト・パネルと同じ情報を示しますが、ネットワーク・パネル内にあるBNのそれぞれノードの近くにモニター・ウィンドウを置くことができます。 ネットワーク・パネル内のノードそれぞれに対してモニター・ウィンドウを開くことができますが、それらを使用して一番役立つのは、おそらく特別に興味のあるBN内のノードに対してモニター・ウィンドウを開くときだけです。それ以外は、スペースを取り過ぎます。 SickとLosesに対してモニター・ウィンドウを開き、以前のような計算を繰り返しましょう。最初にBNを初期化します:
すると、 SickとLosesのモニター・ウィンドウを開く準備ができます。
図 11: ネットワーク・パネルにSick と losesのモニター・ウィンドウが表示されている これでインフルエンス・ダイアグラムを使用するHugin知識ベースの構築方法を示す第2チュートリアル-インフルエンスダイアグラムの構築へと進むのに知っておく必要があることはすべて知っていることになります。この最初のチュートリアルの残りでは、Hugin GUIの非常に有用なところをいくつか紹介します。しかし、とばしてもかまいません。 最大尤度組み合わせ前のセクションでの伝播から、干ばつに苦しむ木の確率は0.47であることがわかりました。SickとDryの両方のケースで、ステートが"not"である可能性が高い状態です。これで、ステートの最大尤度を持つ組み合わせは、SickとDryの両方がステート"not"を持つときあるということを信じさせることができました。しかしながら、これは間違った結論です。もし、すべてのノードでステートの最大尤度を持つ組み合わせを見つけたいのなら、(sum 伝播の代わりに)max 伝播を使用すべきです。max 伝播ツールはツールバーでsum 伝播ツールのちょうど右にあります。 max 伝播ツールを押してみましょう。それぞれのノードで、値100.00を持つステートは、最大尤度を持つステートの組み合わせに属しています。この場合では、この作業で、Sickが"sick"、Dryが"not"が最大尤度を持つ唯一の組み合わせであるとわかります。 たとえSick="sick"がSick="not"に比べて尤度が低くても、、Sick="sick"は、ノードのステートの最大尤度を持つ組み合わせの中に含まれます。 これは、伝播の結果からの結論に注意する必要があることを示します。 今、ある人が入力されたエビデンスが持つ仮説の元に、ステート(あるいはステートその他組み合わせ)の最大尤度組み合わせの確率を知りたがっているとします。. ステートの組み合わせの確率の計算:ここで、リンゴの木が葉をなくしているというエビデンスを与えられたステートの最大尤度組み合わせの確率を計算するテクニックを説明します。この確率は、以下にのように表現されます: P(Sick="yes", Dry="not" | Loses="yes") BNでsum 伝播を行うときはいつでも、入力されたエビデンスの確率はHUGIN Runtimeウィンドウの左下隅に示されています (P(All)値)。Losesノードの"yes"ステートを選択し、sum 伝播を行うと、Loses="yes"の確率 ( P(Loses="yes")と書かれる)を見ることができます。この値は0.1832のはずです。 このテクニックは、確率理論から次のようなルール (基本原則として知られているもの)を使用していま。: P(A, B) = P(A | B) P(B) :HUGINから得られる唯一の確率は、次の形式で書けるエビデンスの組の確率です。: P(A1, A2,..., An) 求める確率をそのようなコンポーネントからなる数式で書き直すために基本ルールを使用します: P(Sick="yes", Dry="not" | Loses="yes") = P(Sick="sick", Dry="not", Loses="yes") / P(Loses="yes") 基本ルールにおいて、両辺をP(B)で割ります。そして、我々はAをSick="yes", Dry="not"、BをLoses="yes"で置き換えます。 すでにP(Loses="yes")はわかっています。したがって、P(Sick="sick", Dry="not", Loses="yes")の計算だけが必要です。以下のように行います。:
この値は、0.081となっているはずです。これで求める確率を計算する準備が整いました: P(Sick="yes", Dry="not" | Loses="yes") = 0.081 / 0.1832 = 0.442 したがって、Loses="yes"が与えられたときの、SickとDryのステートで最大尤度を持つ組み合わせの確率は、0.442です。 これで最初のチュートリアルを終わります。もし、あなたが小規模のインフルエンスダイアグラムの構築方法を学習したい場合は、第2チュートリアルへ進むことをお薦めします。. |