Wstęp do sieci bayesowskich — Lista 8 — Uczenie strukturalne c.d.
Transkrypt
Wstęp do sieci bayesowskich — Lista 8 — Uczenie strukturalne c.d.
Wstęp do sieci bayesowskich — Lista 8 — Uczenie strukturalne c.d. Piersa Jarosław 16 maja 2010 1 Dopasowanie danych do sieci bayesowskiej Dana jest próbka danych D = (d1 , ...dn ) oraz graf sieci bayesowskiej S. Chcemy oszacować jak bardzo prawdopodobne jest, że szkielet S jest w stanie wygenerować uzyskane dane D P(S|D) Prawdopodobieństwo jest trudne do wyprowadzenia, posłużymy się bardziej intuicyjną funkcją dostosowania. UWAGA! funkcja dostosowania może przyjmować wartości ujemne i nie musi się sumować do 1. Przykładowa postać za [1]: BIC(S|D) = qi X ri n X X Nijk log2 ( i=1 j=1 k=1 n log2 N X Nijk )− qi (ri − 1) Nij 2 i=1 (1) gdzie oznaczenia: • N — wielkość próbki uczącej, • Nijk — ilość danych w próbce, gdzie Xi ma stan k-ty, a rodzice Xi stan j-ty (są w j-tej kombinacji stanów), • Nij — ilość danych w próbce, w których rodzice Xi są w j-tej konfiguracji stanów (stan Xi — dowolny), • ri — ilość stanów węzła Xi , • qi — ilość wszystkich konfiguracji rodziców Xi , dla zgodności oznaczań jeżeli Xi nie ma rodzica przyjmujemy qi = 1, we wzorach będzie Nij = N — wszystkie wpisy, w których (pusty) warunek jest spełniony oraz Nijk = — wszystkie wpisy, w których Xi jest w stanie k-tym. Istnieją inne postacie funkcji dostosowań. 2 Algorytm K2 Dana jest sieć bayesowska oraz kolejność na węzłach (wsześniejszy nie może być potomkiem późniejszego). 1. Rozpocznij od pustej sieci, 2. Wybierz połączenie X → Y takie, że jeszcze nie ma go w grafie oraz dodanie tej krawędzi maksymalizuje funkcję dostosowania sieci, 3. Powtarzaj punkt 2 tak długo, aż daje to istotne zwiększenie funkcji dostosowania, 4. Zwróć uzyskaną sieć. 1 3 Symulowane wyżarzanie Definiujemy zbiór operacji na sieci: • dodanie losowej krawędzi (o ile nie stworzy cyklu), • usunięcie losowej krawędzi, • odwrócenie losowej krawędzi (o ile nie stworzy cyklu), • dodanie nowej v-struktury (o ile nie stworzy cyklu), • (dla szkieletów strukturalnych) dodanie nieskierowanej krawędzi, nadanie orientacji, usunięcie orientacji. Algorytm: 1. Rozpocznij z losowej sieci ozn S, 2. Powtarzaj wiele razy: • z aktualnej sieci S wygeneruj sieć S1 poprzez jedną z losowych operacji: • jeżeli funkcja dostosowania sieci wzrosła f (S1 ) ≥ f (S) to przypisz S := S1 , • jeżeli zmalała to przyjmij nową sieć z prawdopodobieństwem P = exp(β(f (S1 ) − f (S))) ≤ 1 lub odrzuć z komplementarnym prawdopodobieństwem. Parametr β ' T1 0 jest temperaturą odwrtoną, • Stopniowo zwiększaj temperaturę odwrotną β (równoważnie: zmniejszaj temparaturę T ) 3. Zwróć uzyskaną sieć. 4 Zadania Zadanie programistyczne Zaimplementuj algorytm wyszukiwania sieci bayesowskiej na podstawie danych: K2, algorytm zachłanny, symulowane wyżarzanie lub algorytm genetyczny. Punktacja: 5p + 1-2p uczenie CPT Zadanie 1 Zadanie z [1]. Uzyskano następujące dane: Przykład A: X Y ilość t t 6 t n 2 n t 0 2 n n Przykład B: X Y ilość t t 4 t n 4 n t 4 n n 4 Z której sieci pochodzą: • X, Y , • X →Y? Porównaj wyniki z Tetradem (po uprzednim przemnożeniu liczby przykadów przez przynajmniej 100). Literatura [1] F. Jensen, T. Nielsen, Bayesian Networks and Decision Graphs, Springer 2007 2