Hot Links
テーブル・ジェネレータの使用このチュートリアルは、離散確率ノードの表を設定する方法を簡素化するために、テーブル・ジェネレータ機能がどのように使用されるかを示します。 1から5回までサイコロを振るゲームをしているとイメージしてください。より多く6を出した方がいいとしたら、あなたはどれだけ6を出すことを期待できるかにとても興味があります。 このシチュエーションについて、とても単純なベイジアンネットワークがモデルできます。図 1は、振られたサイコロの数(nDice)が、6の出た回数(nSixes)に影響を持つベイジアン・ネットワークを示します。 図 1: サイコロ問題のBNモデリング nDiceはステート 1, 2, 3, 4, 5(あなたが振ることのできるサイコロの目の数)を持ちます。 nSixesはステート 0, 1, 2, 3, 4, 5(6が出ない場合があるので nDiceよりも1つ多い)を持ちます。 さて、ノードのステートを数値で表現したいので、それらのタイプを "番号付き"に変えます。 nDiceを番号付きノードに変える方法は、次のとおりです。
そして、nSixesも番号付きに変更します! ノード編集パネルの一番左の列のステートの番号とステート値を編集 (最初のチュートリアルでたぶんやったように)できます。ただし、ノード・プロパティ・ダイアログでもやれます。
そして、nSixesについても同様に行ないます(ステート"0"で始まることを忘れないように)。 図 2 は、nDiceのステート値を入力した後のノード・プロパティ・ダイアログを示します。 図 2: nDiceのステート値の入力 ノード編集パネルのnSixesの条件付き確率表は、図 3に示すようになります。 図 3: nSixesの条件付き確率表 この表はかなり大きく、手作業で入力すると結構たいへんです。特定の数が出る確率は、あなたが振るサイコロの数に依存する2項分布なので、2項分布を計算するツールも使うことでしょう。 :しかしながら、Hugin GUIは、あなたが指定した数式から自動的に表を生成することができます。
すると、nSixes 表の単一のフィールドに数式"Binomial (nDice, 1/6)"を得るはずである。これを図 4に示す。 図 4: nDiceに基づく2項分布を指定したあとのnSixesの数式表 テーブル・ジェネレータを用いた小さなベイジアンネットワークの構築のチュートリアルをこれで終わります。これをコンパイルして実行してみてください(nDiceノードとpropagate の値を変えてみてください)。ネットワークをコンパイルしてから、編集モードに戻って、生成された表を見ることもできます: nSixesノードを選択して、"表"メニューから"手動"を選択します。数式が破損しているという警告が出ますが、ここではそれは問題になりません。それらは望むとおりに再構築できます。 |