Lista zadań 5

Transkrypt

Lista zadań 5
Wstęp do sieci bayesowskich — Zadania lista 5
Piersa Jarosław
2009-04-19
Przypomnienie Zdarzenia X i Y nazywany niezależnymi jeżeli
P(X|Y ) = P(X)
równoważna definicja:
P(X ∧ Y ) = P(X)P(Y )
Zdarzenia X i Y nazywany warunkowo niezależnymi pod warunkiem wiedzy A jeżeli
P(X|AY ) = P(X|A)
można tę zależność przepisać w formie
P(X ∧ Y |A) = P(X|A)P(Y |A)
Zadanie 0
Uzasadnij równoważności obu form definicji.
Zadanie 1 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)
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. Porównaj wyniki.
Zadanie 2 Niezależności strukturalne. D-separacja. (Zadanie zostało tu przeniesione z listy 4 ze
względu na spójność tematyczną)
Rozważmy sieci:
• B → A → C.
• B ← A → C.
• B → A ← C.
Kiedy wprowadzenie wiedzy do węzła A powoduje niezależność węzłów B i C? Czy wprowadzenie
wiedzy do pewnego potomka A (zamiast do A) też powoduje niezależność?
Znajdź przykłady intuicyjnie wyjaśniające uzyskane przypadki. Przeanalizuj przykłady w pakietach
do pracy z sieciami bayesowskimi.
Zadanie 3 W poniższych sieciach bayesowskich wskaż węzły niezależne i niezależne warunkowo. Który
węzeł blokuje przepływ informacji po wprowadzeniu wiedzy? W których węzłach wprowadzenie wiedzy
otwiera przepływ informacji? Przeanalizuj podane przykłady w programie. Skonstruuj własne.
1
(a) Sieć 1
(b) Sieć 2
(c) Sieć 3
2
Zadanie programistyczne Zaimplementuj algorytm Kima-Pearla dla wnioskowania w sieci bayesowskiej. Można ograniczyć się do jednodrzew (sieci bez cykli nieskierowanych). W przypadku ogólnym
konieczne będzie skorzystanie z drzew skupiskowych (zadanie z listy 4, punktowane oddzielnie). Wymagana jest możliwość ustalenia sieci, tabel prawdopodobieństw warunkowych i wiedzy. Można przyjąć
ograniczenia na maksymalną liczbę węzłów, stanów i krawędzi w grafie. Dodatkowe funkcjonalności mile
widziane.
Punktacja — 3p
Zadanie programistyczne Zaimplementuj algorytm uczenia sieci bayesowskiej przy znanej architekturze: EM (expectation maximization), lub GDA (gradient descent). Architekturę określa użytkownik
(wczytana z pliku, wybrana z listy kilku gotowych, uzyskana z algorytmu PC — patrz zadanie poniżej
itp). Podobnie podaje listę przykładów uczących (i odpowiada za zgodność listy z wybraną architekturą).
Ciekawe funkcjonalności: uwzględnienie braków danych, douczanie sieci, prktyczne zastosowanie (np. filtr
antyspamowy, uczący się robot, w takim przypadku można przyjąć, że architektura jest ustalona), ciekawa
wizualizacja (jak się zmienia jakość filtu, lub skuteczność działań robota).
Punktacja — 2p EM, 3p GDA.
Zadanie programistyczne Zaimplementuj algorytm znajdowania szkieletu strukturalnego sieci bayesowskiej przy zadanych danych (algorytm PC, patrz wykład). Danymi wejściowymi będą: ilość i stany
węzłów oraz lista instancji. Ze względu na złożoność wskazane jest przyjąć ograniczenia na ilość węzłów i
stanów sieci. Program powinien wyświetlić wynikowy szkielet strukturalny (choćby w formie tekstowej).
Dodatkowo można program rozudować o funkcje dopełnienia do pełnej sieci i uczenia.
Punktacja — 4p szkielet strukturalny + 1p dopełnienie do pełnej sieci (+ 1-3p uczenie)
3