notatki

Transkrypt

notatki
Algorytmy stochastyczne
Wykład 13 – 14, Uczenie strukturalne sieci bayesowskich
Jarosław Piersa
2014-05-29
1
Uczenie strukturalne sieci bayesowskich
Problem
• mamy próbkę uczącą pochodzącą z sieci lub procesu, który chcemy modelować siecią,
• wiemy (na podstawie próbki) ile jest węzłów, jakie mają znaczenie i stany,
• nie wiemy jak węzły są połączone, ani tym bardziej nie znamy kształtu tabel,
• chcemy znaleźć kształt sieci, który będzie modelował dane (a następnie uzupełnić tabele).
• problem NP-Trudny (tabele mogą być wielkości wykładniczej), NP-zupełny pomijając wypełnianie tabel
Wymagania dotyczące danych uczących:
• przykłady uczące E = [E 1 , ..., E P ],
• i-ty przykład uczący: E i = [ei1 , ..., ein ] — opis wszystkich stanów sieci bayesowskiej,
• wiemy, która wartość pochodzi z którego węzła,
• ei1 pochodzi z wierzchołka V1 ; ei2 pochodzi z V2 i tak dalej,
• kolejność próbek nie ma znaczenia,
• ma znaczenie częstość występowania próbek (niektóre mogą występować wielokrotnie, niektóre kombinacje wcale).
2
Niezależności strukturalne, d-separacja
• struktura połączeń zadaje niezależności pomiędzy zdarzeniami (węzłami) niezależnie od stanu tabel,
• przyp połączenie A → B, oznacza bezpośrednią zależność między A i B,
• zależność nie musi być pośrednia, może się propagować przez pośrednie wierzchołki np. A → C → B,
• zależność może się propagować przez wstecz ścieżki np. B → C → A (niezależność nie odróżnia przyczyny od skutku),
• zależność może się propagować przez wspólnego rodzica np. B ← C → A,
• (najtrudniejszy) zależność może się propagować przez wspólnego syna, jeżeli mamy wiedzę w nim lub innym wspólnym
potomku A → C ← B i mamy wiedzę w C (V-struktura).
Szkielet strukturalny sieci bayesowskiej
• graf mieszany — powstaje z sieci poprzez zapomnienie orientacji krawędzi (krawędzie nieskierowane),
• ale nie zapomina orientacji krawędzi w V-strukturze (krawędzie skierowane),
• szkielet strukturalny zachowuje te same niezależności cho sieć, z której powstał.
Przykłady:
• A → B odpowiada A — B,
• B → A odpowiada A — B,
• B → A → C odpowiada A — B — C,
1
• B ← A → C odpowiada A — B — C,
• B → A ← C ← D odpowiada A → B ← C — D,
B
• UWAGA! Sieci:
3
A
C
B
odpowiada szkielet
A
C
(to nie jest V-struktura!).
Algorytm PC
Dane: Próbka ucząca E
Wynik: Szkielet strukturalny sieci bayesowskiej
1. Zacznij od pełnego grafu nieskierowanego na wszystkich węzłach sieci,
2. Dla i = 0 ... maksymalny rozmiar wykonaj
(a) Dla każdej pary węzłów połączonych krawędzią X — Y :
=|
i. Oznacz N (X) — sąsiedzi X, N (Y ) — sąsiedzi Y ,
Y |S, tzn X jest niezależny od
ii. dla każdego i-elementowego podzbioru S ⊂ N (X) ∪ N (Y ) sprawdź czy X
Y pod warunkiem S,
iii. jeżeli i = 0, to sprawdź zwykłą niezależność bez warunków,
iv. jeżeli tak, to przypisz SXY := S, usuń krawędź X—Y i przerwij bieżącą iterację,
v. jeżeli nie znajdziesz, to nic nie rób,
3. dla każdej trójki X — Y — Z (i ¬(X — Z))
(a) jeżeli Z ∈
/ SXY , to zorientuj X → Z oraz Y → Z w V-strukturę (bo z testu powyżej: X i Y są niezależne bez
warunkowania po Z),
(b) jeżeli Z ∈ SXY , to nie rób nic.
Uwaga! Nie każde dane uczące dają się modelować siecią bayesowską. Istnieją rozkłady (zestawy danych), które nie
dają się modelować siecią bayesowską (bez ukrytych węzłów).
4
Uzupełnianie szkieletu strukturalnego do pełnej sieci
• Dany szkielet strukturalny sieci bayesowskiej,
• chcemy uzyskać strukturę sieci,
Uzupełnainie
• Dla każdej V-struktury A → B ← C:
– dla każdej krawędzi wychodzącej z B — D, zorientuj B → D (inaczej powstałaby nowa V-struktura),
– wymuś dalszą propagację orientacji D — E, na D → E,
• Cykle:
– Wyszukaj krawędzie nieskierowane dopełniające cykle skierowane,
– Zorientuj je przeciwnie, aby nie domknąć cyklu,
• Powtarzaj 1. i 2. dopuki powstają nowe krawędzie,
• Jeżeli pozostały jakiekolwiek niezorientowane, to zorientuj jedną z nich losowo i uruchom 1,
• Jeżeli wszystkie krawędzie są zorientowane, to zakończ.
• UWAGA: Nie każdy szkielet daje się uzupełnić do pełnej sieci. Mając do wyboru stworzenie cyklu lub nowej V −
struktury, tworzymy V-strukturę.
2
5
Testowanie niezależności
Dane: próbka zmiennych X, Y , Z (być może Z jest wielowymiarowa!), oraz poziom istotności 0 < α 1.
Wynik: Czy X i Y są niezależne pod warunkiem Z, tak aby szanse pomyłki nie były większe niż α (np. α = 0.025).
Oznaczenia:
• N — wielkość próbki
• c — liczba wartości (stanów) Y
• r — liczba wartości (stanów) X
• Oij , dla i = 1..r j = 1..c — ilość zaobserwowanych próbek, w których (X = xi , Y = yj )
• Eij , dla i = 1..r j = 1..c — ilość oczekiwanych próbek (wynikających z rozkładów brzegowych)
Pc
Pr
Oik
Olj
Eij = k=1
· l=1
· N.
N
N
• Hipoteza zerowa: nie istnieje zależność między X a Y ,
• Hipoteza alternatywna: X i Y są zależne,
• Statystyka testowa:
T =
r X
c
X
(Eij − Oij )2
,
Eij
i=1 j=1
• Statystyka testowa T zachowuje się jak rozkład χ2 z (r − 1)(c − 1) punktami swobody,
• Obliczamy obszar krytyczny:
K = (F1−α ((r − 1)(c − 1)), +∞),
gdzie F1−α (k) jest kwantylem rzędu 1 − α rozkładu χ2 z k punktami swobody (odczytujemy z tabeli),
• Jeżeli T ∈ K, to odrzucamy Hipotezę zerową,
• Jeżeli T ∈
/ K, to nie mamy podstaw do jej odrzucenia.
Alternatywnie:
• Obliczamy:
p-value := 1 − F(r−1)(c−1) (T ),
wartość dystrybuanty rozkładu w punkcie T (odczytujemy z tabeli), ang. p-value,
• Jeżeli zachodzi p-value ≤ α, to odrzucamy hipotezę zerową i przyjmujemy istnienie zależności między X i Y ,
• Jeżeli zachodzi p-value > α, to nie mamy podstaw do odrzucenia H0,
• Uwaga! Jeżeli p-value > α, to nie oznacza to automatycznie niezależności, zmienne mogą być zależne w inny
sposób, którego jednak test nie wychwycił.
Odnośniki:
• Teoria http://math.hws.edu/javamath/ryan/ChiSquare.html (uwaga! zawiera applety javowskie)
• Teoria http://en.wikipedia.org/wiki/Pearson%27s_chi-square_test
• Tablice http://people.richland.edu/james/lecture/m170/tbl-chi.html
• Tablice http://www.ma.utexas.edu/users/davis/375/popecol/tables/chisq.html
• Tablice http://pl.wikisource.org/wiki/Tablica_rozk%C5%82adu_chi-kwadrat
3
Przykład
Mamy próbki:
X=1
a
c
a+c
Y =1
Y =2
razem
X=2
b
d
b+d
razem
a+b
c+d
Mamy:
• razem N próbek N := a + b + c + d
• Szacujemy prawdopodobieństwa brzegowe (pojedynczych kategorii):
– P̂(X = 1) :=
a+c
a+b+c+d ,
– P̂(X = 2) :=
b+d
a+b+c+d ,
– P̂(Y = 1) :=
a+b
a+b+c+d ,
– P̂(Y = 2) :=
c+d
a+b+c+d ,
• Jeżeli X i Y miałyby być niezależne, to oczekiwalibyśmy:
– P(X = 1 ∧ Y = 1) = P(X = 1)P(Y = 1) =
a+c
a+b+c+d
·
a+b
a+b+c+d ,
– (...) podobnie dla pozostałych stanów,
• I oczekiwanej liczby obserwacji:
– E1,1 = P(X = 1 ∧ Y = 1) · N =
a+c
a+b+c+d
·
a+b
a+b+c+d
· (a + b + c + d) =
(a+c)(a+b)
a+b+c+d ,
– (...) powtarzamy dla pozostałych (X = 1, Y = 2), (X = 2, Y = 1), (X = 2, Y = 2),
• Zaobsetwowane przypadki:
– O11 = a
– O12 = c
– O21 = b
– O22 = d
• Zatem wartość statystyki testowej :
T :=
(E12 − O12 )2
(E21 − O21 )2
(E22 − O22 )2
(E11 − O11 )2
+
+
+
,
E11
E12
E21
E22
• liczba stopni swobody:
df := (r − 1) · (c − 1) = 1
• ustalmy α = 0.05 (na 100 różnych próbek danych z rozkładów faktycznie niezależnych przynajmniej 95% przejdzie test
niezależności):
• odczytujemy z tabeli rozkładu
Fdf =1 (1 − α) = F( df = 1, p-val = 0.05) ' 3.841,
• jeżeli T > 3.841, to X i Y są zależne, w przeciwnym przypadku nie mamy podstaw do odrzucenia hipotezy o niezależności.
6
Dostosowanie szkieletu do danych, funkcja oceny szkieletu strukturalnego
Pomysł: Chcemy określić funkcję oceny struktury sieci bayesowskiej „Jak dobrze sieć pasuje do danych”:
f : Dane × Grafy → R.
Taką funkcję można wykorzystać w algorytmach optymalizacyjnych: genetycznych, symulowane wyżarzanie, błądzenia losowego.
4
• Ogólna koncepcja:
qi
n Y
Y
ri
Y
(ri − 1)!
Nijk !,
P(Dane|Graph) =
(Nij − ri − 1)!
i=1 j=1
k=1
gdzie:
• n — liczba wierzchołków w sieci,
• ri — ilość stanów węzła Xi , dla i = 1, .., n,
• qi — ilość wszystkich konfiguracji stanów rodziców Xi (znaczy iloczyn po ilości stanów rodziców Xi ), dla zgodności
oznaczań jeżeli Xi nie ma rodzica przyjmujemy qi = 1,
• Nijk — ilość danych w próbce, gdzie Xi ma stan k-ty, a rodzice Xi mają stan j-ty (są w j-tej kombinacji stanów),
• Nij — ilość danych w próbce, w których rodzice Xi są w j-tej konfiguracji stanów (stan Xi — dowolny),
• Uwaga! Dla stabilności obliczamy logarytm z powyższej funkcji (iloczyny zamieniają się na sumy logarytmów),
• Do funkcji dodajemy karę za wielkość tablic prawdopodobieństw:
penalty(Graph) = c ·
n
X
qi (ri − 1).
i=1
• (dla uproszczenia oznaczeń) zdefiniujmy:
g(i, pii ) =
qi
Y
ri
Y
(ri − 1)!
Nijk !
(Nij − ri − 1)!
j=1
k=1
tzn. wartość jw, ale ograniczona tylko do jednego wierzchołka i jego rodziców.
6.1
Algorytm K2
• na wejściu wierzchołki są posortowane, wiemy jaki wierzchołek musi być przed jakim, algorytm nie stworzy strzałki od
wierzchołka późniejszego do wcześniejszego,
• limit — ograniczenie na maksymalną liczbę rodziców.
1. for i = 1..n
(a) przypisz wierzchołkowi i-temu brak rodziców: πi := ∅
(b) pold := g(i, πi )
(c) f laga := true
(d) while f laga i |πi | < limit
i. Z := węzeł, który jest przed Xi oraz maksymalizuje g(i, πi ∪ {Z})
ii. pnew := g(i, πi ∪ {Z})
iii. if (pnew > pold ),
• pnew := pold
• πi := πi ∪ {Z}
else
• f laga = f alse
2. zwróć Xi i odpowiadających rodziców πi , dla i = 1..n
6.2
Inne metody
• poszukiwanie struktury sieci / szkieletu strukturalnego jako problem optymalizacyjny
• algorytmy genetyczne i ewolucyjne,
• symulowane wyżarzanie,
• błądzenia losowe, MCMC,
• poszukiwania z ograniczeniami itd.
5
Zmiany grafu (szkieletu strukturalnego)
• dodaj krawędź A—B do grafu,
• usuń krawędź A—B z grafu,
• zorientuj A—B—C w V strukturę A → B ← C,
• usuń V-strukturę A → B ← C zamień na A—B—C (uwaga A → B może być częścią innej V-struktury A → B ← D),
Literatura
[1] G. Cooper, E. Herskovits, A Bayesian Method for Induction of Probailistic Networks from Data, Machoine Learning, 9,
pp. 302–347, 1992.
[2] F. Jensen, T. Nielsen, Bayesian Networks and Decision Graphs, Springer 2007
[3] R. Neapolitan, Learning bayesian networks, Pearspon Prentice Hall, Upper Saddle River, New Jersey 2004.
6

Podobne dokumenty