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