1 / 25

ベイジアンネットワーク概説 3.6 構造の探索アルゴリズム

ベイジアンネットワーク概説 3.6 構造の探索アルゴリズム. 茨城大学工学部 佐々木稔. 1. 1. 1. 1. 1. 1. 1. 1. 2. 2. 2. 2. 2. 2. 2. 2. 3. 3. 3. 3. 3. 3. 3. 3. はじめに. ネットワーク構造の探索アルゴリズム すべての構造から最適な構造を選択 n=3 の場合、合計 25 通り(向きなしで以下の 8 種). 1 種類. 2 種類. 2 種類. 2 種類. 4 種類. 4 種類. 6 種類. 4 種類. 探索するネットワークの数.

kreeli
Télécharger la présentation

ベイジアンネットワーク概説 3.6 構造の探索アルゴリズム

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ベイジアンネットワーク概説3.6 構造の探索アルゴリズム 茨城大学工学部 佐々木稔

  2. 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 はじめに • ネットワーク構造の探索アルゴリズム • すべての構造から最適な構造を選択 • n=3 の場合、合計25通り(向きなしで以下の8種) 1種類 2種類 2種類 2種類 4種類 4種類 6種類 4種類

  3. 探索するネットワークの数 • 変数の数 nでのネットワークの数 f(n) • は2項係数、 nCiと同じ • n=2 のとき、 f(n)=3 • n=3 のとき、 f(n)=25 • n=5 のとき、 f(n)=29,281 • 探索計算量を減らす工夫が必要

  4. 遺伝アルゴリズムによる探索 • 全順序関係の情報がない場合 • 遺伝的アルゴリズムを用いて構造を探索 • 構造マトリックスを用意 • 下図のように変数 iから jに矢印があれば 1、なければ 0 • 行列の各要素を遺伝子とみなす • 最適な構造を学習 j j i i

  5. X2 X3 X1 > > X1 X1 X3 X3 X2 X3 X1 X2 X2 K2アルゴリズム • ヒューリスティックによる構造の探索 • 変数間の親子関係を表した全順序関係が必要 • X1 > X2 > ・・・ > XN • この関係から半順序関係を抽出する の場合、以下の順序から選択

  6. K2アルゴリズム(backward版) for i = 1:n { pa(Xi) = φ; P(Xi | pa(Xi))=0.0; for j = i:n { Xjを pa(Xi) に加える; P(Xi | pa(Xi)) を計算; Xjのない場合の P(Xi | pa(Xi)) と比較 { 大きい場合は、 Xjを含めた pa(Xi) を採用; それ以外は、 Xjを含めない pa(Xi) を採用; } } }

  7. K2アルゴリズムの情報量基準 • Cooper の事前分布確率 • Bayesian Dirichlet Metric とも呼ばれる

  8. K2アルゴリズムの動作 • 変数 A, B, C で、A>B>C (A が子)が既知 • A について • B と比較 • B が親の場合と、独立な場合のP(Xi|pa(Xi)) を計算 • 値の大きい A ← B を採用 • C と B → A を比較 • C が親の場合と、独立な場合のP(Xi|pa(Xi)) を計算 • 値の大きい B → A ← C を採用 • B → A → C が生成され、 B → A ← C と比較 • 値の大きい B → A → C を採用

  9. K2アルゴリズム(forward版) for i = 1:n { pa(Xi) = φ; Pold = P(Xi | pa(Xi)); OKtoProceed = True; while (OKtoProceed || |pa(Xi)|<u) { P(Xi|{pa(Xi)∪{Xj}}) が最大となる親ノード候補 Xjを抽出; Pnew = P(Xi | {pa(Xi)∪{Xj}}); if (Pnew > Pold){ Pold = Pnew; pa(Xi) = pa(Xi)∪{Xj}; } else OKtoProceed = False; } }

  10. K2アルゴリズムの入力データ • 全順序付ノード集合 • {x1, x2, x3}, • n=3 • データベース D • (データ10個) • 親ノードの上限 u • u=2

  11. K2アルゴリズムの動作1-1 • i=1 のとき、 x1が対象 • r1= 2 ( {’0’, ’1’} の 2 種類 ) • pa(x1) = φ • 親ノード候補の取る値の数 q1 = 0 (独立) • 独立の場合は、 j は無視して i と k のみ考える • N1_1 = 5 (x1=0 なのは {3, 5, 6, 8, 10}) • N1_2 = 5 (x1=1 なのは {1, 2, 4, 7, 9} ) • N1_ = N1_1 + N1_2 = 10

  12. K2アルゴリズムの動作1-2 • 親候補が存在しないので繰返しは終了し、 • pa(x1) = φ

  13. K2アルゴリズムの動作2-1 • i=2 のとき、 x2が対象 • r2= 2 ( {’0’, ’1’} の 2 種類 ) • pa(x2) = φ • 親ノード候補の取る値の数 q2 = 0 (独立) • 独立の場合は、 j は無視して i と k のみ考える • N2_1 = 5 (x2=0 なのは {1, 3, 5, 8, 10}) • N2_2 = 5 (x2=1 なのは {2, 4, 6, 7, 9} ) • N2_ = N2_1 + N2_2 = 10

  14. K2アルゴリズムの動作2-2

  15. K2アルゴリズムの動作2-3 • i=2 で、親ノード候補 {x1} • r2= 2 ( {’0’, ’1’} の 2 種類 ) • 親ノード候補の取る値の数 q2 = 2 • (x1=0) と (x1=1) の 2 種類 • N211 = 4 (x1=0, x2=0 なのは {3, 5, 8, 10}) • N212 = 1 (x1=0, x2=1 なのは {6} ) • N221 = 1 (x1=1, x2=0 なのは {1}) • N222 = 4 (x1=1, x2=1 なのは {2, 4, 7, 9}) • N21 = N211 + N212 = 5 • N22 = N221 + N222 = 5

  16. K2アルゴリズムの動作2-4 • P(x2|{x1}) が最大値で、Pnew>Poldより、 • Pa(x2)={x1}

  17. K2アルゴリズムの動作3-1 • i=3 のとき、 x3が対象 • r3= 2 ( {’0’, ’1’} の 2 種類 ) • pa(x3) = φ • 親ノード候補の取る値の数 q3 = 0 (独立) • 独立の場合は、 j は無視して i と k のみ考える • N3_1 = 4 (x3=0 なのは {1, 5, 8, 10}) • N3_2 = 6 (x3=1 なのは {2, 3, 4, 6, 7, 9}) • N3_ = N3_1 + N3_2 = 10

  18. K2アルゴリズムの動作3-2

  19. K2アルゴリズムの動作3-3 • i=3 で、親ノード候補 {x1} • r3= 2 ( {’0’, ’1’} の 2 種類 ) • 親ノード候補の取る値の数 q3 = 2 • (x1=0) と (x1=1) の 2 種類 • N311 = 3 (x1=0, x3=0 なのは {5, 8, 10}) • N312 = 2 (x1=0, x3=1 なのは {3, 6} ) • N321 = 1 (x1=1, x3=0 なのは {1}) • N322 = 4 (x1=1, x3=1 なのは {2, 4, 7, 9}) • N31 = N311 + N312 = 5 • N32 = N321 + N322 = 5

  20. K2アルゴリズムの動作3-4

  21. K2アルゴリズムの動作3-5 • i=3 で、親ノード候補 {x2} • r3= 2 ( {’0’, ’1’} の 2 種類 ) • 親ノード候補の取る値の数 q3 = 2 • (x2=0) と (x2=1) の 2 種類 • N311 = 4 (x2=0, x3=0 なのは {1, 5, 8, 10}) • N312 = 1 (x2=0, x3=1 なのは {3} ) • N321 = 0 (x2=1, x3=0 なのは {}) • N322 = 5 (x2=1, x3=1 なのは {2, 4, 6, 7, 9}) • N31 = N311 + N312 = 5 • N32 = N321 + N322 = 5

  22. K2アルゴリズムの動作3-6 • P(x3|{x2}) が最大値で、 Pnew > Poldより、 • Pa(x3)= {x2}, Pold=1/180

  23. K2アルゴリズムの動作3-7 • i=3で、決定済み親ノード{x2}、親ノード候補{x1} • r3= 2 ( {’0’, ’1’} の 2 種類 ) • 親ノード候補の取る値の数 q3 = 4 • (x1=0, x2=0), (x1=0, x2=1), • (x1=1, x2=0), (x1=1, x2=1) の 4 種類 • N311 = 3 (x1=0, x2=0, x3=0 なのは {5, 8, 10}) • N312 = 1 (x1=0, x2=0, x3=1 なのは {3} ) • N322 = 1 (x1=0, x2=1, x3=1 なのは {6}) • N332 = 1 (x1=1, x2=0, x3=0 なのは {1}) • N342 = 4 (x1=1, x2=1, x3=1 なのは {2, 4, 7, 9}) • N31 = N311 + N312 = 4 • N32 = N321 + N322 = 1 • N33 = N331 + N332 = 1 • N34 = N341 + N342 = 4

  24. K2アルゴリズムの動作3-8 • Pnew < Poldより、Pa(x3)= {x2} のまま

  25. K2アルゴリズムの動作3-9 • 以上の処理から、 • x1 の親ノードは φ • x2 の親ノードは {x1} • x3 の親ノードは {x2} • したがって、求める構造は • x1 → x2 → x3

More Related