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

Podobne dokumenty