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