Algorytmy stochastyczne Wykład 2, Uczenie parametryczne w sieciach bayesowskich Jarosław Piersa 204-05-22 Zagadnienie uczenia sieci bayesowskich Problem mamy strukturę sieci bayesowskiej węzły, stany i połączenia (zależności), nie znamy tabel prawdopodobieństw, mamy próbkę uczącą pochodzącą z sieci lub procesu, który chcemy modelować siecią, chcemy znaleźć prawdopodobieństwa warunkowe, przy których sieć dobrze symuluje próbkę, Wymagania dotyczące danych uczących: przykłady uczące E = [E,..., E P ], i-ty przykład uczący: E i = [e i,..., e i n] opis wszystkich stanów sieci bayesowskiej, wiemy, która wartość pochodzi z którego węzła, e i pochodzi z wierzchołka V ; e i 2 pochodzi z V 2 i tak dalej, kolejność próbek nie ma znaczenia, ma znaczenie częstość występowania próbek (niektóre mogą występować wielokrotnie, niektóre kombinacje wcale). 2 Algorytm Dirichleta Dane: sieć bayesowska: zbiór wierzchołków V..V n i krawędzi określających zależności, sieć nie zawiera cykli, na podstawie połączeń i liczby stanów znamy rozmiary tabel prawdopodobieństw warunkowych, dane uczące E...E P, gdzie P liczba przykładów, zakładamy, że nie ma braków danych. Wynik: zawartość tabel prawdopodobieństw: P(V = v j ) dla praprzyczyn (bez rodziców), P(V = v j Rodzice(V ) = r,.., r l ) dla węzłów z rodzicami. Algorytm. dla węzłów V bez przyczyn przypisz (V ma stany v...v m ): 2. dla węzłów V (V ma stany v...v m ) z rodzicami R,.., R l : P(V = v j ) := liczba próbek, w którychv = v i P (a) rodzice mają różne kombinacje stanów (r, r 2,..., r l ) st(r ).. st(r l ) P(V = v j R = r,..., R l = r l ) := liczba próbek, w których V = v i oraz R = r,..., R l = r l liczba próbek, w których R = r,..., R l = r l (b) jeżli mianownik wychodzi 0 to przypisz 3. zwróć tabele P(V = v j R = r,..., R l = r l ) := liczba różnych stanów rodziców R,.., R l
3 Uczenie przy brakach danych, algorytm EM w próbce uczącej E znajdują się dane z brakującymi wartościami E i j, możemy odrzucić próbkę, gdy braków jest mało, gdy jest ich dużo, możemy odrzucić 90% danych, nie zawsze mamy podstawy by zakładać, że braki danych są niezależne (często tak nie jest!) Idea algorytmu EM (Expectation Maximization) obserwacjom przypisujemy ich wagi, obserwacjom pewnym przypisujemy wagę, obserwacje z brakami uzupełniamy do pełnych, (jedna obserwacja niepewna dzieli się na kilka pewnych) jednocześnie przypisujemy im wagi, proporcje wag odzwierciedlają szanse dopełnienia na podstawie aktualnego stanu sieci, uczymy algorytmem naiwnym na uzupełnionej próbce uzyskując nowe prawdopodobieństwa w sieci, uzupełniamy braki na podstawie uaktualnionej sieci, powtarzamy aż do ustabilizowania. Przykład Przykład: struktura sieci B A Dane: lp A B 2 2 3 4? 5? 2 Początkowe tablice prawdopodobieństw warunkowych war P(B = ) P(B = 2) /2 /2 war P(A = war) P(A = 2 war) B= /2 /2 B=2 /2 /2 Po pierwszym uzupełnieniu danych: lp A B waga 2 2 3 4 /2 4 2 /2 5 2 /2 5 2 2 /2 Tablice teraz wyglądają: war P(B = ) P(B = 2) 9/0 /0 war P(A = war) P(A = 2 war) B= 5/8 3/8 B=2 /2 /2 2
Dane po drugim uzupełnieniu lp A B waga 2 2 3 4 5/8 4 2 3/3 5 2 /2 5 2 2 /2 Uwaga A B Jak traktować sytuację? const. (zwykle liczba stanów ).? Aby uniknąć wstawienia zera, dodajemy rozkład początkowy (prior) np. P(X = x i ) = Algorytm EM. dla każdej komórki w każdej tabeli prawdopodobieństw ustaw licznik wg. rozkładu początkowego (prior) np: 2. oblicz tabele prawdopodobieństw warunkowych: 3. powtarzaj k razy l(v = v i R = r,.., R l = r l ) := P(V = v i R = r,.., R l = r l ) := l(v = v i R = r,.., R l = r l ) j l(v = v j R = r,.., R l = r l ) (a) uzupełnij braki danych wg rozkładu z tabel prawdopodobieństw z poprzedniego kroku (b) uaktualnij liczniki: l(v = v i R = r,.., R l = r l ) := e jeżeli przykład e spełnia V =vi,r =r,..,r l =r l waga(e) (c) uaktualnij tabele prawdopodobieństw warunkowych (wzór jak wyżej), 4. zwróć tabele prawdopodobieństw. 4 Douczanie online P(V = v i R = r,.., R l = r l ) := l(v = v i R = r,.., R l = r l ) j l(v = v j R = r,.., R l = r l ) nauczona sieć bayesowska podczas działania widzi wprowadzane dane, sieć może się douczać na podstawie danych na jakich działa, w ten sposób samodzielnie dostosowuje się do zmieniającej sytuacji, Korzystamy z pomysłu algorytmu EM: zapamiętujemy wagę nauczonych danych (np. wielkość liczników l()), zbieramy m danych uczących, douczamy sieć według EM: (do normalizacji): s l = l(...), uaktualniamy liczniki: l(x rodzice) := l(x, rodzice) + m(spełniającex = x, Rodzice(X)), 3
uaktualniamy prawdopodobieństwa warunkowe, (ewentualnie) skalujemy liczniki aby nie puchły: l() := s l s l + m, za duże l() w porównaniu do m sieć bezwładna, powoli dostosowuje się do zmian, za to odporna na przypadkowe zmiany trendów, wrzucanie do sieci posortowanych danych itp. za małe l() i za duże próbki m reaktywna sieć, szybko dostosowuje się do zmieniającej tendencji, ale też podatna na efekt kurka na kościele, douczanie jest wrażliwe na porcjowanie i kolejność: jeżeli dane uczące są posortowane a porcje małe, to sieć kolejno uczy się wycinków danych, o których zaraz zapomina! 5 (*) Podstawy teoretyczne Temat bardziej zaawansowany matematycznie. 5. Podejście bayesowskie do uczenia (w ogóle) Intuicja intuicja (i algorytm powyżej) każe skorzystać z Monte Carlo: dla wszystkich próbek spełniających warunek, Podejście bayesowskie oznaczmy P(X = x rodzice(x i )) = θ [0, ], P(X = x i rodzice(x i )) := #{próbki w których X = x i}, #{wszystkie próbki} chcemy znaleźć rozkład θ (i wybrać jego wartość oczekiwaną), nic nie wiemy na temat θ więc przyjmujemy: θ U [0,], rozkład jednostajny na [0, ], każde prawdopodobieństwo jest równie dobre, zaobserwowaliśmy 4 przypadki x i 9 przypadków x 2 (np. 4 orły i 9 reszek, dane = 4o + 9r), jak wygląda się rozkład θ pod warunkiem danych? f(θ dane) = P(dane θ) f(θ) P(dane) jest to odpowiednik wzoru Bayesa jeżeli rozkład jest ciągły (rozkłady f(θ) i f(θ dane) będą ciągłe!). f θ () i f θ Dane () są funkcjami gęstości rozkładów. pomijamy mianownik (stała normalizująca): dwumian ( ) 9+4 4 jest stałą normującą (nie zależy od θ), f(θ dane) P(4r + 9o θ) f(θ) = θ 4 ( θ) 9 (9+4 ) 4 f(θ) θ 4 ( θ) 9 f(θ), jeżeli f(θ) = dla θ [0, ], to funkcja gęstości upraszcza wygląda: f(θ a x + b x 2 ) θ a ( θ) b. 4
20 0 a=.3, b=.7 5 8 6 a=, b= a=5, b=5 a=3, b=7 a=9, b=2 a=80, b=20 f b (x,y) 0 5 0.4.2 4 2 0 0 (a) Rozkład beta y 0 0 x (b) Rozkład Dirichleta Dir(3, 6, 9) f b (x,y) 0 0 y x (c) Rozkład Dir(.07,.,.023) 0 Rysunek : Rozkłady beta i Dirichleta. 5.2 Rozkład beta Definicja Rozkład prawdopodobieństwa beta z parametrami a, b > 0: jest określony na przedziale x [0, ], funkcja gęstości: f β(a,b) (x) = x a ( x) b stała normalizująca, oznaczenie β(a, b). Wartość oczekiwana: Interpretacja: jeżeli x β(a, b) liczba z rozkładu beta, zdefiniujmy x 2 := x, mamy 0 x, x 2 oraz x + x 2 =, EX = a a + b. zatem x i x 2 są dwupunktowym rozkładem prawdopodobieństwa (P(Y = tak) = x i P(Y = nie) = x 2 = x ), wniosek: β jest rozkładem prawdopodobieństwa na przestrzeni (dwupunktowych) rozkładów prawdopodobieństwa. Intuicyjnie: rozkład β(a, b) opisuje jakie jest prawdopodobieństwo zaobserwowania pewnego zjawiska (np: wyrzucenia orła) P(Z = z 0 ) jeżeli zaobserwowaliśmy a przypadków z 0 i b razy przypadek z. Rozumowanie przenosi się również na niecałkowite a i b. Fakt z rachunku prawdopodobieństwa: Jeżeli dwa rozkłady mają tą samą postać funkcji gęstości to są identyczne. 5.3 Wniosek przypomnijmy, że jeżeli zaobserwowaliśmy a orłów + b reszek i założyliśmy początkowy rozkład θ na jednostajny, to czyli rozkład warunkowy θ dane ma kształt β(a, b), rozkład U [0,] to jest β(, ), (zadanie: dlaczego?), f(θ a x + b x 2 ) θ a ( θ) b, wychodząc z rozkładu apriori θ β(a, b), po zaobserwowaniu danych rozkład aposteriori θ dane nadal jest beta (z wyższymi parametrami): θ dane β(c, d), dokładniej: jeżeli θ β(a, b) i zaobserwowaliśmy p orłów i q reszek, to θ dane β(a + p, b + q), (zadanie: dlaczego?) jeżeli a, b >, to rozkład β(a, b) skupiony jest wokół maksimum lokalnego (osiąganego w wartości oczekiwanej) E(β(a, b)) = a a + b, im większe a i b, tym rozkład bardziej skupiony jest na tym piku. przypisujemy jako θ wartość oczekiwaną rozkładu β(a, b) (którą obliczamy za pomocą Monte Carlo): θ := E(β(a, b)) = a a + b. 5
5.4 Rozkład Dirichleta A co ze węzłami, które mają trzy lub więcej stanów? Definicja 2 Rozkład Dirichleta jest rozkładem k-wymiarowym (to znaczy zwraca nie jedną liczbę ale wektor losowy k elementów), indeksowany jest parametrami a, a 2, a 3,..., a k > 0, jeżeli wektor losowy [X, X 2,..., X k ] ma rozkład Dirichleta, to wszystkie X i spełniają 0 X i oraz X +...+X k =, gęstość rozkładu: f Dir(a,..,a k )(x,..., x k ) = x a x a2 2... x a k k stała normalizująca, oznaczenie Dir(a,..., a k ). Interpretacja jeżeli k = 2, to rozkład upraszcza się do rozkładu beta: zwraca dwie liczby: x β(a, a 2 ) oraz x 2 = x, ogólnie jest prawdą, że x k := X X 2... X k, wszystkie X i spełniają 0 X i oraz X +... + X k =, zatem jest to rozkład prawdopodobieństwa (k-punktowych) rozkładów prawdopodobieństwa (które chcemy mieć w tabelach sieci bayesowskiej). Reszta interpretacji tak samo, przy czym teraz wybieramy najbardziej prawdopodobny wektor parametrów (zmiennych losowych) (θ, θ 2,..., θ k ), który maksymalizuje rozkład (θ, θ 2,..., θ k ) dane. Rozkład ten jest rozkładem Dirichleta, a parametry a,.., a k odpowiadają liczbom zaobserwowanych przypadków. Np.: dane = {n razy stan X = x, n 2 razy stan X = x 2,..., n k razy stan X = x n } n Eθ := n + n 2 +... + n k Literatura Eθ 2 := E θ := (...) Eθ k := n 2 n + n 2 +... + n k n k n + n 2 +... + n k Eθ k := Eθ... Eθ k [] R. Neapolitan, Learning bayesian networks, Pearspon Prentice Hall, Upper Saddle River, New Jersey 2004. 6