Huginの製品・サービスはマインドウエア総研により翻訳・提供されています。pict

インフルエンス・ダイアグラムを用いたHugin知識ベースの構築

インフルエンス・ダイアグラムは、意思決定で作業する場合に、ベイジアン・ネットワークに代わりに用いられる。純粋なBNでも意思決定のモデルを構築することは可能であるが、効用と決定のコンセプトを明確にはカバーされていない。インフルエンス・ダイアグラムは、簡単にいうと効用ノードと決定ノードによって拡張されたBNである。 この2つの新しいタイプのノードがあるため、我々は従来タイプのノードにも名前をつける必要がある。我々は、これらのノードを確率ノード(chance node)と呼ぶことにしよう。

BNのイントロダクションのリンゴの木の事例で構築したBNを拡張して、インフルエンス・ダイアグラムのコンセプトを説明しよう。.

リンゴの木の事例

再びアップル・ジャックのリンゴ農園に行こう。図1のBNを覚えているだろう。

apple_bn

図 1: "BNのイントダクション"で構築したBN. 

アップル・ジャックは、木にいくつかの処置を施すことにおいて、いくらかの資源を投入するかどうかを決定したい。これに関するモデルを構築するために、 まずネットワーク内にすでにあるのととてもよく似た3つのノードを追加する。新しいノードSick'、Dry'、Loses'は、古いノードと同様に表現する - ただし、それは未来の収穫期である。これらのノードは図2のように追加される。

apple_bn2

図 2: 木の状態の収穫期の期待を表現する同様なノードの追加。

新しいノードは、古いノードと同じ状態にあるだろう: Sick' は "sick" か "not"のどちらか - Dry' は "dry" か "not"のどちらか - Loses' は"yes" か "no"のどちらかである。新しいモデルでは、古いSickノードから新しいSick'ノードと、古いDryノードから新しいDry'ノードの従属性が予想される。これは、現在木が病気で将来もそれが変わらないであろうことが、かなりもっともらしいということが予想されるからである。もちろん、従属性の強さは、我々がみる未来がどれぐらい遠いかにもよる。たぶん、LosesからLoses'にも従属性があるだろうが、このモデルの中では我々はそうしない。

アップル・ジャックは、彼の問題に関して何かをする機会がある。彼は、可能性のある病気を取り除くためのいくつかの治療によって、木を治そうとすることができる。 もし落葉が日照りによって引き起こされていると彼が考えるなら、彼はお金を節約して、ただ雨を待つだけだろう。木にいくつかの治療を施す行動は、BNに決定ノードを追加し、したがって、それはもはやBNではない。代わってインフルエンス・ダイアグラムが図3に示される。アクション・ノードは、長方形で表現される。

apple_id1

図 3: 治療に関する決定ノードの追加

治療の決定ノードは、状態 "treat" と "not"を持つ。これまで見たとおり、Treat から Sick'の矢印でインフルエンス・ダイアグラムをモデルした。これは、治療が未来の木の健康に影響を持つと期待されるからである。

インフルエンス・ダイアグラムが終了する前に、決定の期待される効用を計算できるようにするために、効用関数を指定する必要がある。これは、全体の効用の一部にそれぞれ寄与している効用ノードをダイアグラムに追加することによってなされる。効用ノードが図4に追加されている。効用ノードはひし形で表現される。

apple_id

図 4: アップル・ジャック農園で意思決定のために用いられたインフルエンス・ダイアグラムの完全な質的表現。

効用ノードCostは、治療の費用についての情報を集め、一方、Harvは収穫時点での効用を表現する。それは、Sick'が示す状態に依存、つまり、リンゴの生産は木の健康に依存する。

図4 は、インフルエンス・ダイアグラムの完全な質的表現を示す。量的表現も得るために、我々は、各チャンス・ノードについての条件つき確率表(CPT)と各効用ノードの効用表を構築する必要がある。決定ノードは、どのような表も持たない。

下記の表は、チャンス・ノードのCPTがどのように指定されるかの1つの方法を示す。

Sick="sick" Sick="not"
0.1 0.9
表 1: P(Sick).
Dry="dry" Dry="not"
0.1 0.9
表 2: P(Dry).
Dry="dry" Dry="not"
Sick="sick" Sick="not" Sick="sick" Sick="not"
Loses="yes" 0.95 0.85 0.90 0.02
Loses="no" 0.05 0.15 0.10 0.98
表 3: P(Loses | Sick, Dry).
Treat="treat" Treat="not"
Sick="sick" Sick="not" Sick="sick" Sick="not"
Sick'="sick" 0.20 0.01 0.99 0.02
Sick'="not" 0.80 0.99 0.01 0.98
表 4: P(Sick' | Sick, Treat).
Dry="dry" Dry="not"
Dry'="dry" 0.60 0.05
Dry'="not" 0.40 0.95
表 5: P(Dry' | Dry).
Dry'="dry" Dry'="not"
Sick'="sick" Sick'="not" Sick'="sick" Sick'="not"
Loses'="yes" 0.95 0.85 0.90 0.02
Loses'="no" 0.05 0.15 0.10 0.98
表 6: P(Loses' | Sick', Dry').

下記の表は、効用ノードの効用表がどのように指定されれるかを示す。どのような単位を用いるべきかわかあなかったので、ヨーロッパ紙幣の中でランダムに抽出してポルトガルEscudosを得た。

Sick'="sick" Sick'="not"
3000 20000
表 7: U(Harv).
Treat="treat" Treat="not"
-8000 0
表 8: U(Cost).

インフルエンス・ダイアグラムの目的は、最も高い効用が期待される治療ノードの行動を計算できるようにすることである。これは、コンピュータの助けなして行なうにはやりにくい仕事であり、我々はここでそれをしようとは思わない。その代わりに、我々はHugin GUIで、このインフルエンス・ダイアグラムをどのように実装して、計算をさせるか、について説明する2つのチュートリアルをお薦めする。