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