Laboratorium 06
Transkrypt
Laboratorium 06
Wstęp do sieci bayesowskich — Zadania lista 5 Piersa Jarosław 2010-04-14 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. 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 Uczenie przy niepełnych danych Dana jest architektura sieci bayesowskiej bez CPT (lub z nimi, ale chcemy je uaktualnić) oraz próbka ucząca być może zawierająca braki danych. Jak dobrać CPT w takim przypadku? 1. Poza konkretnym prawdopodobieństwem konieczne jest również przetrzymywać wartości licznika i mianownika, tj. ilość próbek spełniających dany wpis w tabeli (licznik) oraz ilość wszystkich (mianownik). Licznik jest intywidualny dla każdego wpisu, mianownik jest wspólny dla całego wiersza. P(X = xi |Z = zj ) = lij #{przykłady które spełniają X = xi ∧ Z = zj } = mj #{przykłady które spełniają Z = zj } 2. Przypisz wpisom w tabelach początkowe wartości: • Jednostajne: lij = 1, mj = długość wiersza, jeżeli nie mamy żadnej wiedzy o tabelach, • Pochodzące z istniejącej tablicy, jeżeli takimi dysponujemy i chcemy je uaktualnić: mj = (int)(P(Z = zj ) · c) lij = (int)(P(X = xi |Z = zj ) · mj ) P P Przy czym dla każdego węzła j mj = const oraz i lij = mj 3. Powtarzaj wiele razy: (a) Wybierz przykład uczący y z listy (losowo ale bez zwracania!) (b) (krok E — expectation) Uzupełnij brakujące wartości y zgodnie z aktualnym stanem sieci bayesowskiej. Krok można wykonać losując nieznaną wartość na podstawie rodziców (mniej dokładne, niezalecane!), lub na podstawie rodziców i potomków, np. za pomocą próbnika Gibbsa: po określonej liczbie iteracji uzupełnić braki wartościami na jakich próbnik Gibbsa się zatrzymał. (c) (krok M — maximalization) Na podstawie uzupełnionego y i wcześniejszych danych oblicz najlepsze wartości CPT. Aby nie uruchamiać algorytmu Dirichleta za każdym razem można: • Zwiększyć liczniki dla wpisach, które spełniają uzupełniony y, o 1 (jedna komórka na całą tabelę). • Zwiększyć mianowniki, które spełniają uzupełniony y, o 1 (cały wiesz tabeli). • Nowe prawdopodobieństwa: jeżeli wpis spełnia warunki licznika i mianownika: P(X = xi |Z = zj ) = lij + 1 mj + 1 Dla wpisów, które spełniają tylko warunek mianownika będzie: P(X = xk |Z = zj ) = lkj mj + 1 Dla pozostałych wierszy w tablicy pozostanie: P(X = xp |Z = zq ) = lpq mq Zadanie programistyczne Zaimplementuj algorytm uczenia sieci bayesowskiej przy znanej architekturze: EM (expectation maximization). Podejście do architektury wedle uznania (wczytana z pliku, predefiniowana — w uzasadnionym przypadku, wybrana z listy kilku gotowych, uzyskana z algorytmu PC — jedno z następnych zadań). Użytkownik podaje listę przykładów, w tym również zawierające braki danych. Ciekawe funkcjonalności: douczanie sieci, prktyczne zastosowanie, ciekawa wizualizacja (jak się zmienia jakość filtu, lub skuteczność działań robota, w trakcie procesu uczenia), podgląd tablel przed, po (i w trakcie) uczenia. Punktacja — 2p 3