Wstęp do sieci bayesowskich — Lista 7 — Uczenie strukturalne
Transkrypt
Wstęp do sieci bayesowskich — Lista 7 — Uczenie strukturalne
Wstęp do sieci bayesowskich — Lista 7 — Uczenie strukturalne Piersa Jarosław 5 maja 2010 1 Przypomnienie 1.1 Niezależność zdarzeń Zdarzenia A i B nazywamy niezależnymi jeżeli zachodzi: P(A ∧ B) = P(A)P(B) Równoważna definicja: P(A|B) = P(A) Zdarzenia A i B nazywamy niezależnymi pod warunkiem C jeżeli zachodzi: P(A ∧ B|C) = P(A|C)P(B|C) Równoważna definicja: P(A|B, C) = P(A|C) 1.2 Niezależności strukturalne Po następujących strukturach sieci bayesowskiej wiedza jest propagowana A do B: • A → B, • A → C → B — przy braku wiedzy w C, • A ← C ← B — przy braku wiedzy w C • A ← C → B — przy braku wiedzy w C, • A → C ∈ E ← B — przy obecności dodatkowej wiedzy w C lub jednym z jego potomków. Po następujących strukturach sieci bayesowskiej wiedza jest nie propagowana A do B: • A → C ∈ E → B — gdy dodatkowa wiedza występuje w C, • A ← C ∈ E ← B — gdy dodatkowa wiedza występuje w C, • A ← C ∈ E → B — gdy dodatkowa wiedza występuje w C, • A → C ← B oraz brak krawędzi A ← B, A → B — gdy C ani żaden z jego potomków nie zawiera wiedzy. 1.3 Szkielet strukturalny sieci (DAG Pattern) Szkielet strukturalny sieci bayesowskiej jest grafem, który posiada: • te same węzły, co sieć bayesowska, • krawędzie, które mogą być zorientowane lub nie, • wszystkie niezależności strukturalne wynikające z konstrukcji sieci bayesowskiej. Krawędzie, które tworzą łańcuchy w oryginalnej sieci, są zamieniane na krawędzie nieskierowane. 1 • A → B przechodzi na A − B, • A → C → B przechodzi na A − C − B, • A ← C → B przechodzi na A − C − B. Obecne w sieci V-struktury zostają przeniesione do szkieletu strukturalnego sieci razem z orientacją krawędzi. • A → C ← B oraz brak krawędzi A ← B, A → B przechodzi na A → C ← B, • Ponieważ nie można stworzyć nowej v-struktury, wszystkie inne połączenia C − D muszą zostać zorientowane C → D. Wyjątek: w oryginalnej sieci A → C ← D też było v-strukturą, wówczas krawędzie tej v-struktury należy zachować, • Wymuszona w punkcie powyższym orientacja krawędzi musi być rozpropagowana po łaćuchu tak aby nie stworzyć nowej v-struktury: – jeżeli mamy łańcuch C − D − E − F , – oraz wymuszoną orientację C → D, – to musimy zorientować krawędzie C → D → E → F , każda inna orientacja stworzy vstrukturę, której być nie powinno. 1.4 Test Chi-kwadrat (Chi-square) Dana jest próbka danych (x, y) pochodząca z rozkładów X i Y . Czy są one niezależne? Przyjmijmy 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 Olj k=1 Oik Eij = · 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: r X c X (Eij − Oij )2 T = Eij i=1 j=1 • Statystyka testowa zachowuje się jak rozkład χ2 z (r − 1)(c − 1) punktami swobody. Obliczamy 1 - wartość dystrybuanty rozkładu w tym punkcie (lub odczytujemy z tabeli), ang. p-value. • Poziom istotności — α ∈ (0, 1), zazwyczaj α = 0.05. • Jeżeli zachodzi p-value ≤ α odrzucamy hipotezę zerową i przyjmujemy istnienie zależności między X i Y. • Uwaga! Formalnie p-value > α nie oznacza niezależności, zmienne mogą być zależne w inny sposób, którego jednak test nie wychwycił. Alternatywnie: • Obliczamy obszar krytyczny K = (F1−α ((r − 1)(c − 1)), +∞) gdzie F1−α (k) jest kwantylem rzędu 1 − α rozkładu χ2 z k punktami swobody. 2 • Jeżeli T ∈ K, to odrzucamy Hipotezę zerową. • Jeżeli T ∈ / K, to nie mamy podstaw do jej odrzucenia. Odnośniki: • Teoria http://math.hws.edu/javamath/ryan/ChiSquare.html • 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 2 Algorytm PC Dane wyniki z sieci bayesowskiej. Cel znaleźć strukturę (szkielet strukturalny) sieci, z której pochodzą wyniki. 1. Rozpocznij od nieskierowanego grafu pełnego na wszyskiech węzłach. 2. Ustaw licznik i = 0. 3. Dla każdej pary węzłów X − Y : • Niech N (X), N (Y ) będą bieżącymi sąsiedztwami X i Y . • Przebiegnij wszystkie i elementowe podzbiory N (X) i N (Y ) (oddzielnie), oznaczmy je jako S. Jeżeli znajdziesz S takie, że X i Y są niezależne pod warunkiem S to przypisz SXY = S, usuń krawędź X − Y z grafu. Dla i = 0, S = ∅ sprawdź zwykłą niezaleźność X i Y . • Jeżeli nie znajdziesz to nie rób nic. 4. Jeżeli i ≥ maksymalny rozmiar sąsiedztwa N (), to przejdź do 5. Jeżeli nie, to i + + i wróć do 3. 5. Dla każdej trójki X − Z − Y ( brak krawędzi X − Y ) sprawdź czy Z ∈ SXY : • Jeżeli nie, to zorientuj X → Z ← Y . • Jeżeli tak, to nie rób nic. 3 Uzupełnianie szkieletu strukturalnego Uzupełnianie sprowadza się do orientowania pozostałych krawędzi tak, aby: • nie stworzyć cyklu skierowanego, • nie stworzyć nowej v-struktury. Algorytm zachłanny: 1. Niezorientowane krawędzie, które wychodzą z v-struktury, orientujemy na wychodzące i propagujemy dalej, 2. Jeżeli takich już nie ma, to wybieramy niezorientowaną krawędź, 3. Nadajemy jej losową orientację, 4. Propagujemy orientację tak by nie stworzyć v-strutury. 5. Jeżeli pozostały niezorientowane krawędzie wracamy do 2. Uwaga: nie każdy szkielet da się uzupełnić do sieci bayesowskiej. Mając do wyboru stworzenie cyklu lub nowej v-struktury wybieramy te ostatnie. 3 4 Zadania Zadanie programistyczne Zaimplementuj algorytm wyszukiwania sieci bayesowskiej na podstawie danych. Ze względu na koszt algorytmu można (należy) przyjąć ograniczania na liczbę wierzchołków / stanów w grafie. Punktacja: 4p znajdowanie szkieletu + 1p dopełnianie do pełnej sieci + 1-2p uczenie Zadanie 1 Niech X i Y będą zmiennymi przyjmującymi po dwa stany. Uzyskano następujące wyniki: • Y = y1 Y = y2 X = x1 5 2 X = x2 9 4 • Y = y1 Y = y2 X = x1 50 20 X = x2 90 40 • Y = y1 Y = y2 X = x1 500 200 X = x2 900 400 • Y = y1 Y = y2 X = x1 5000 2000 X = x2 9000 4000 Czy rozkłady X i Y są niezależne w każdym z przypadków? Sprawdź hipotezę testem χ2 . Zadanie 2 Sieć bayesowska posiada węzły A, B i C, ale jej struktura nie jest znana. Uzyskano następujące wyniki: • (ABC) = (ttt) × 3, (tnt) × 3, (ntt), (nnn) × 3, (tnn) × 9, (ttn) × 3, (nnt), (ntn) • (ABC) = (tnt), (ttt), (nnt), (ttt), (nnn), (ttn), (nnn)(ttn) • (ABC) = (tnt) × 9, (ttn) × 2, (tnn) × 1, (nnt) × 2, (ntn) × 4, (nnn) × 2 • (ABC) = (ttt), (ttn), (tnt) × 2, (tnn) × 4, (ntt), (nnt) × 2, (nnn) • (ABC) = (ttt) × 2, (ttn) × 1, (tnt) × 2, (tnn) × 1, (ntt) × 2, (ntn) × 1, (nnt) × 2, (nnn) × 1 Czy na podstawie powyższych list można stwierdzić, że A i B są niezależne? Czy A i B są niezależne pod warunkiem C? Wykorzystaj listy do uczenia strukturalnego (do uczenia należy ilość przykładów przemnożyć przez przynajmniej 100). Porównaj wyniki. Zadanie 3 Uzupełnij podane szkielety strukturalne do pełnych sieci (o ile to możliwe) rys 1. 4 Rysunek 1: Uzupełnij podane szkielety strukturalne do pełnych sieci. 5