Bayesian Optimization Algorithm (BOA)

Transkrypt

Bayesian Optimization Algorithm (BOA)
Bayesian Optimization Algorithm (BOA)
zarys
Piotr Lipiński
Sieć bayesowska
Sieć bayesowska to acykliczny graf skierowany, w
którym wierzchołki reprezentują zmienne losowe, a
krawędzie odpowiadają zależnościom między tymi
zmiennymi.
Zwrot krawędzi reprezentuje "kierunek patrzenia" na zależności między
zmiennymi losowymi (zmienna w węźle końcowym zależy od tej w węźle
początkowym). Brak krawędzi między dwoma wierzchołkami oznacza, że
zmienne losowe reprezentowane przez te wierzchołki są niezależne.
X0
X1
X2
X3
Sieć bayesowska
Przez Πi oznaczmy zbiór "rodziców" wierzchołka Xi.
Wówczas łączny rozkład prawdopodobieństaw wektora
losowego X = (X0, X1, ..., Xn-1)’ można przedstawić jako
Sieć bayesowska, przykład
] Sieci
bayesowskie są używane do reprezentowania
zależności między genami w chromosomie.
] Rozpatrzmy chromosom X o długości 4.
] Wartość każdego genu X0, X1, X2, X3 można
traktować jako wartość pewnej zmiennej losowej.
] Poniższa sieć bayesowska może więc reprezentować
zależności między genami w takim chromosomie.
X0
X1
X2
X3
Sieć bayesowska, przykład
] Interpretacja
takiej sieci jest następująca:
- wartość genu X0 jest niezależna od wartości
pozostałych genów,
- wartość genu X1 zależy od wartości genu X0,
- wartość genu X2 zależy od wartości genu X0
i wartości genu X1,
- wartość genu X3 zależy od wartości genu X1.
X0
X1
X2
X3
Sieć bayesowska, przykład
] Łączny
rozkład prawdopodobieństwa wektora
losowego X = (X0, X1, X2, X3)’ można więc
przedstawić jako
P( X = x ) = P( X0 = x0 )
P( X1 = x1 | X0 = x0 )
P( X2 = x2 | X0 = x0, X1 = x1 )
P( X3 = x3 | X1 = x1 )
dla x = (x0, x1, x2, x3)’.
] Ten wzór można zastosować przy generowaniu
nowych osobników wg modelu zadanego przez sieć
bayesowską.
Sieć bayesowska, przykład
] Najpierw
zajmujemy się zmienną niezależną.
] Znając prawdopodobieństwa P(X0 = 0) i P(X0 = 1) z
jakimi zmienna niezależna X0 przyjmuje odpowiednio
wartości 0 i 1, losujemy wartość genu X0.
] Jeśli byłyby inne zmienne niezależne, postępujemy z
nimi w taki sam sposób. Kolejność rozpatrywania tych
zmiennych jest nieistotna.
?
?
?
?
1
?
?
?
X0
X1
X2
X3
Sieć bayesowska, przykład
]W
kolejnych krokach zajmujemy się zmiennymi,
których rodzice mają już ustalone wartości. Kolejność
rozpatrywania tych zmiennych jest nieistotna.
] Znając prawdopodobieństwa P(X1 = 0 | X0 = 1)
i P(X1 = 1 | X0 = 1), losujemy wartość genu X1.
1
?
?
?
1
0
?
?
X0
X1
X2
X3
Sieć bayesowska, przykład
] Mając
ustalone wartości genów X0 i X1, możemy
losować wartości genów X2 i X3.
] Zajmijmy się najpierw zmienną X3. Znając
prawdopodobieństwa P(X3 = 0 | X1 = 0)
i P(X3 = 1 | X1 = 0), losujemy wartość genu X3.
] Na koniec zajmijmy się zmienną X2. Znając
prawdopodobieństwa P(X2 = 0 | X0 = 1, X1 = 0)
i P(X3 = 1 | X0 = 1, X1 = 0), losujemy
X0
wartość genu X1.
1
0
?
1
1
0
0
1
X2
X1
X3
Algorytm BOA
Bayesian Optimization Algorithm:
Algorytm BOA
Wyjaśnienia wymaga krok (3) czyli sposób tworzenia
sieci bayesowskiej oraz estymacji prawdopodobieństw
używanych m.in. przy generowaniu nowej populacji
losowych osobników wg modelu zadanego przez sieć
bayesowską.
Bayesian Dirichlet Metric
Jakość sieci określa się różnymi miarami. Jedną z
najpopularniejszych jest Bayesian Dirichlet Metric:
gdzie
iloczyn po πxi jest po wszystkich konfiguracjach rodziców wierzchołka Xi
iloczyn po xi jest po wszystkich wartościach wierzchołka Xi
D
zbiór danych (populacja)
B
sieć bayesowska
ξ
ewentualna dodatkowa informacja
liczba osobników w D, w których rodzice wierzchołka Xi
m(πxi)
mają konfigurację πxi
m(xi, πxi)
liczba osobników w D, w których wierzchołek Xi ma
wartość xi, a jego rodzice mają konfigurację πxi
p(B|ξ), m’(…) prior information
K2 Metric
W praktyce często używa się prostszej metryki, zwanej
K2 Metric, w której wszystkie parametry m’(xi, πxi) są
równe 1.
Przykład
] Rozpatrzmy
dwie zmienne X0 i X1 tworzące
chromosom oraz populację D = { 00, 00, 00, 11 }
] Policzmy K2 dla sieci Bempty bez żadnych krawędzi:
]
Ponieważ m’(xi, πxi) = 1, to m’(πxi) = 2.
Łatwo wyliczyć, że
]
Zatem
]
Przykład
] Policzmy
K2 dla sieci B0->1 z krawędzią od X0 do X1:
]
Ponieważ m’(xi, πxi) = 1, to m’(πxi) = 2.
Łatwo wyliczyć, że
]
Zatem
]
Konstrukcja sieci bayesowskiej
] Naturalne
podejście to sprawdzenie wszystkich
możliwych sieci bayesowskich i wybór najlepszej.
] Liczba wszystkich możliwych sieci bayesowskich dla
zadanego chromosomu jest bardzo duża.
] Nie sposób ocenić ich wszystkich, dlatego ogranicza
się ich liczbę przez wprowadzenie ograniczenia na
maksymalny stopień wierzchołka k.
] W praktyce przyjmuje się k = 1 lub k = 2.
] W praktyce nie sprawdza się wszystkich możliwych
sieci bayesowskich dla zadanego chromosomu
(nawet przy ograniczeniu maksymalnego stopnia
wierzchołka), lecz używa się heurystycznych metod
konstrukcji sieci optymalnej.
Konstrukcja sieci bayesowskiej
] Popularny
jest algorytm, który rozpoczyna
działanie z siecią bayesowską bez krawędzi,
a następnie w każdym kroku ewolucji używa
algorytmu zachłannego, który próbuje
poprawić sieć bayesowską przez
wykonywanie następujących operacji:
]
]
]
dodanie losowej krawędzi
usunięcie losowej krawędzi
zmiana kierunku losowej krawędzi
Estymacja prawdopodobieństw
] Prawdopodobieństwa
używane m.in. przy
generowaniu nowej populacji losowych osobników wg
modelu zadanego przez sieć bayesowską są
estymowane na podstawie aktualnej populacji w
naturalny sposób.
] Przykład:
P( X2 = 1 | X0 = 0, X1 = 0 ) = m / M
gdzie
M
liczba osobników, w których X0 = 0 oraz X1 = 0
m
liczba osobników, w których X0 = 0, X1 = 0
oraz X2 = 1
Literatura
Martin Pelikan, David Goldberg, Erick Cantu-Paz, Linkage Problem,
Distribution Estimation, and Bayesian Networks, IlliGAL Report No 98013,
1998.
Martin Pelikan, David Goldberg, Erick Cantu-Paz, BOA: The Bayesian
Optimization Algorithm, IlliGAL Report No 99003, 1999.