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

25
ベベベベベベベベベベベベベ 3.6 ベベベベベベベベベベベ ベベベベベベベ ベベベベ

Upload: kreeli

Post on 06-Jan-2016

78 views

Category:

Documents


0 download

DESCRIPTION

ベイジアンネットワーク概説 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 種類. 探索するネットワークの数. - PowerPoint PPT Presentation

TRANSCRIPT

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

ベイジアンネットワーク概説

3.6 構造の探索アルゴリズム

茨城大学工学部佐々木稔

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

はじめに ネットワーク構造の探索アルゴリズム

すべての構造から最適な構造を選択 n=3 の場合、合計 25 通り(向きなしで以下の

8 種)1

2 3

1

2 3

1

2 3

1

2 3

1

2 3

1

2 3

1

2 3

1

2 3

1 種類 2 種類 2 種類 2 種類

4 種類 4 種類 4 種類 6 種類

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

探索するネットワークの数 変数の数 n でのネットワークの数 f(n)

は 2 項係数、 nCi と同じ n=2 のとき、 f(n)=3 n=3 のとき、 f(n)=25 n=5 のとき、 f(n)=29,281

探索計算量を減らす工夫が必要

n

i

inii infi

nnf

1

)(1 21

i

n

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

遺伝アルゴリズムによる探索 全順序関係の情報がない場合

遺伝的アルゴリズムを用いて構造を探索 構造マトリックスを用意

下図のように変数 i から j に矢印があれば 1 、なければ 0 行列の各要素を遺伝子とみなす

最適な構造を学習

i j

1i

j

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

K2 アルゴリズム ヒューリスティックによる構造の探索 変数間の親子関係を表した全順序関係が必要

X1 > X2 > ・・・ > XN

この関係から半順序関係を抽出する

X1 X2 X3> >

X1 X2 X3

X1

X2

X3

の場合、以下の順序から選択

X1

X2

X3

Page 6: ベイジアンネットワーク概説 3.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) を採用 ; } }}

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

K2 アルゴリズムの情報量基準 Cooper の事前分布確率

Bayesian Dirichlet Metric とも呼ばれる

i iq

j

r

kijk

iij

iii N

rN

rXpaXp

1

1

0

!! 1

! 1|

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

K2 アルゴリズムの動作 変数 A, B, C で、 A>B>C (A が子 ) が既知1. A について

B と比較• B が親の場合と、独立な場合の P(Xi|pa(Xi)) を計算• 値の大きい A ← B を採用

C と B → A を比較• C が親の場合と、独立な場合の P(Xi|pa(Xi)) を計算• 値の大きい B → A ← C を採用

2. B → A → C が生成され、 B → A ← C と比較 値の大きい B → A → C を採用

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

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; }}

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

K2 アルゴリズムの入力データデー

タ x1 x2 x3

1 1 0 0

2 1 1 1

3 0 0 1

4 1 1 1

5 0 0 0

6 0 1 1

7 1 1 1

8 0 0 0

9 1 1 1

10 0 0 0

• 全順序付ノード集合 {x1, x2, x3}, n=3• データベース D ( データ 10 個 )• 親ノードの上限 u u=2

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

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

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

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

2772

1!5 !5

! 11

1

! !! 1210

! 12

!! 1

! 1

)|(x1

2_11_1

1 1111

1 11

NN

NrN

r

PP

r

k jk

q

jj

old

• 親候補が存在しないので繰返しは終了し、 pa(x1) = φ

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

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

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

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

2772

1!5 !5

! 11

1

! !! 1210

! 12

!! 1

! 1

)|(x2

2_21_2

1 2122

2 22

NN

NrN

r

PP

r

k jk

q

jj

old

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

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

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

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

900

1!4 !1

! 6

1!1 !4

! 6

1

!! 125

! 12!

! 125

! 12

!! 1

! 1

)1|(x2

2

1 22

2

1 21

2

1 2

2

122

2

k kk k

k jkjj

new

NN

NrN

r

xPP

• P(x2|{x1}) が最大値で、 Pnew>Pold より、 Pa ( x2 ) ={x1}

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

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

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

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

2310

1!6 !4

! 11

1

! !! 1210

! 12

!! 1

! 1

)|(x3

2_31_3

1 2133

3 33

NN

NrN

r

PP

r

k jk

q

jj

old

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

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

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

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

1800

1!4 !1

! 6

1!2 !3

! 6

1

!! 125

! 12!

! 125

! 12

!! 1

! 1

)1|(x3

2

1 32

2

1 31

2

1 3

2

133

3

k kk k

k jkjj

new

NN

NrN

r

xPP

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

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

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

K2 アルゴリズムの動作 3-6

180

1!5 !0

! 6

1!1 !4

! 6

1

!! 125

! 12!

! 125

! 12

!! 1

! 1

)2|(x3

2

1 32

2

1 31

2

1 3

2

133

3

k kk k

k jkjj

new

NN

NrN

r

xPP

• P(x3|{x2}) が最大値で、 Pnew > Pold より、 Pa ( x3 ) = {x2}, Pold=1/180

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

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

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

K2 アルゴリズムの動作 3-8

400

1!4 !0

! 5

1!0 !1

! 2

1!1 !0

! 2

1!1 !3

! 5

1

!! 124

! 12!

! 121

! 12

!! 121

! 12!

! 124

! 12

!! 1

! 1

)2,1|(x3

2

1 34

2

1 33

2

1 32

2

1 31

2

1 3

2

133

3

k kk k

k kk k

k jkjj

new

NN

NN

NrN

r

xxPP

•Pnew < Pold より、 Pa ( x3 ) = {x2} のまま

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

K2 アルゴリズムの動作 3-9 以上の処理から、

x1 の親ノードは φ x2 の親ノードは {x1} x3 の親ノードは {x2}

したがって、求める構造は x1 → x2 → x3