ベイジアンネットワーク概説 3.6 構造の探索アルゴリズム
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 PresentationTRANSCRIPT
ベイジアンネットワーク概説
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 種類
探索するネットワークの数 変数の数 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
遺伝アルゴリズムによる探索 全順序関係の情報がない場合
遺伝的アルゴリズムを用いて構造を探索 構造マトリックスを用意
下図のように変数 i から j に矢印があれば 1 、なければ 0 行列の各要素を遺伝子とみなす
最適な構造を学習
i j
1i
j
K2 アルゴリズム ヒューリスティックによる構造の探索 変数間の親子関係を表した全順序関係が必要
X1 > X2 > ・・・ > XN
この関係から半順序関係を抽出する
X1 X2 X3> >
X1 X2 X3
X1
X2
X3
の場合、以下の順序から選択
X1
X2
X3
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) を採用 ; } }}
K2 アルゴリズムの情報量基準 Cooper の事前分布確率
Bayesian Dirichlet Metric とも呼ばれる
i iq
j
r
kijk
iij
iii N
rN
rXpaXp
1
1
0
!! 1
! 1|
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 を採用
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; }}
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
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
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) = φ
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
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
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
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}
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
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
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
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
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
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
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
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} のまま
K2 アルゴリズムの動作 3-9 以上の処理から、
x1 の親ノードは φ x2 の親ノードは {x1} x3 の親ノードは {x2}
したがって、求める構造は x1 → x2 → x3