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.