Hot Links
ベイジアンネットワークの構築BN to an influence diagram.このチュートリアルでは、HuginGUIで小規模なベイジアンネットワークを実装する方法を示します。実装されるBNは、入門-ベイジアンネットワークのリンゴの木の例でモデルされたものです。次のチュートリアルで、このBNをインフルエンス・ダイアグラムに拡張していくことにします。 我々のBNの質的表現を図1に示します。 図 1: リンゴの木の問題ドメインのBN 表現 このBNの設計を理解するには、基本コンセプトをお読みください。 新しい BNを構築Hugin GUIを起動すると、編集ウィンドウが開きます。このウィンドウには、メニューバー、ツールバー、ドキュメント面が含まれます。 ドキュメント面では、(図 2に示す) 図 2: ツールバー、 ノード編集パネル、ネットワーク・パネルを含むネットワーク・ウィンドウ ノードの追加まずやることはSickノードを追加することです。これは以下のように行います。
ネットワーク・パネルをクリックすると, C1とラベル付けされたノードが現れます。このラベルを "Sick"に変更するには::
"名前"とはノードの内部名であり、一方、 "ラベル"とはノードのラベルです。 ラベルが指定されていない場合(ラベルを変更する前の場合のこと)は、そのラベルには内部名が使われます。内部名には半角英数字 'a'-'z' 、'A'-'Z'、 '0'-'9',とアンダーバー '_'のみ使用できます。ラベルには、ほとんどの文字が使用できます。 図 3: 左から: 離散確率ツール、ノード・プロパティ、リンク(因果矢印)ツール。 Dryと Loses のノードも同じように追加します。ネットワーク・パネル内でSHIFTキーを押しながらクリックしていくと、離散確率ツールを押さなくてもノードの追加ができます。ネットワーク・パネルでノードを選択し、右クリックをすると, ノード・プロパティ・ツールにアクセスできます 。 図 4: BNに追加された3つのノードSick、 Dry、 Losesを含むネットワーク・パネル。 ノード編集パネルは、現在有効になっているノードのCPTを含む。 因果矢印の追加すると、図4のネットワーク・パネルに示されるのと同じBNがあるはずです。SickからLoses、DryからLosesに因果矢印を加えてみましょう。以下のように行います:
ここまでで、図1と同様の完成した質的表現になっているはずです。次のステップで、それぞれのノードのステートと条件付き確率表(CPT)を指定します。 ステートBNの入門で、ノードのステートを以下のように指定しました: Sickは"sick"と "not"の2ステート: Dryは"dry" and "not"の2ステート: Losesは"yes" と "no"の2ステートを持っている。 まず、Sickのステートを指定する方法を説明します。
そして、Dryでも同じことをします。 図 5: ステート追加/削除ツール Losesでも同じことを正確にしてみてください。でも、現在のノードとしてLosesを選択したとき少し驚くかもしれません。LosesのCPTは、SickやDryのCPTに比べて少し大きいからです。これは、単にLosesが親ノードを持つからです(SickやDryは持っていません)。
CPT 値の入力次のステップでは、CPT値を正しく入力します (デフォルトでHugin GUIには すべてのノードに一様分布が与えられています)。その値はBNの入門で指定したもので、表1、表2、表3に示します。
まず最初に、Sickノードに値を入力します:
Dry 、Losesの値も同じ方法で入力します。 LosesノードのCPTに値を入力する際は、正しくできたか注意してください。すべてのCPTを入力すると、 ネットワーク・ウィンドウは図 6のように見えるはずです。 図 6: 現在のノードとして選択されているLosesがあるドキュメント・ウィンドウ。LosesのCPTはノード編集パネルに見られる ここで、BNの構築を終了します。この時点で、BNを保存しておくのが良いでしょう。保存の方法は以下のとおりです:
これで、ベイジアンネットワーク・テクノロジーを用いたHuginナレッジベースの構築を終えました。そして、Huginナレッジベースをコンパイルし、実行し、正しく動作することを確認します。 |