410 likes | 553 Views
Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych. Autor: Rafał Grodzicki Promotor: Dr Jan Bródka. Założenia. Brak wiedzy eksperckiej dotyczącej rozpatrywanych gier: Dysponujemy jedynie informacją umożliwiającą sterowanie przebiegiem rozgrywek:
E N D
Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych Autor: Rafał Grodzicki Promotor: Dr Jan Bródka
Założenia • Brak wiedzy eksperckiej dotyczącej rozpatrywanych gier: • Dysponujemy jedynie informacją umożliwiającą sterowanie przebiegiem rozgrywek: • legalne ruchy • charakterystyka stanów końcowych (wygrana, przegrana, remis) • „wiedza” dotycząca strategii umożliwiającej optymalną grę musi być wygenerowana za pomocą algorytmu ewolucyjnego (reinforcement learning – uczenie ze wzmocnieniem) • Ogólny charakter: • Możliwość zastosowania do wielu gier • Implementacja: abstrakcyjne klasy bazowe, po których dziedziczą klasy implementujące konkretne gry
Gra • Charakterystyka rozważanych gier: • Dwuosobowa • Pełna, jawna informacja na temat stanu gry (dla obydwu graczy) • Każdy stan gry daje się opisać za pomocą wektora: • ustalonego, skończonego wymiaru • o współrzędnych rzeczywistych • Dla każdego stanu gry istnieje skończona liczba ruchów umożliwiających przejście do kolejnego stanu • Każda rozgrywka kończy się jednym ze stanów: • wygrana pierwszego gracza i przegrana drugiego • wygrana drugiego gracza i przegrana pierwszego • remis
Gra • Przeszukiwanie drzewa gry z wykorzystaniem metody alfa-beta obcięć • Funkcja oceniająca – jednokierunkowa sieć neuronowa: • Wejście: wektor reprezentujący stan gry • Wyjście: wartość funkcji oceniającej dla wejściowego stanu gry • Sigmoidalne funkcje przejścia • Bias – możliwość regulacji progu funkcji przejścia
Neuroewolucyjne metody uczenia • Metody z ustaloną topologią sieci • Metody ze zmienną topologią (TWEANNs – Topology and Weight Evolving Artificial Neural Networks): • NEAT (NeuroEvolution of Augmenting Topologies)
Metody z ustaloną topologią sieci • Ustalona struktura sieci: • Liczba warstw i neuronów w poszczególnych warstwach • Struktura połączeń – zwykle pełne • Ewolucji podlegają wagi sieci • Populacja początkowa składa się z sieci o losowo zainicjowanych wagach
Metody z ustaloną topologią sieci • Zalety: • Proste kodowanie rozwiązań: • Genotyp – wektor ustalonego wymiaru • Klasyczne operacje genetyczne (krzyżowania i mutacje) • Wady: • Z góry ustalona struktura sieci: • Algorytm ewolucyjny przeszukuje przestrzeń o stałym wymiarze: • Wymiar zbyt mały – rozwiązanie optymalne istnieje w przestrzeni o większym wymiarze niż ustalony • Wymiar zbyt duży – rozwiązanie optymalne istnieje w przestrzeni o mniejszym wymiarze niż ustalony – utrata wydajności
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Twórca: • Dr. Kenneth O. Stanley • University of Central Florida School of Electrical Engineering and Computer Science • http://www.cs.ucf.edu/~kstanley/neat.html • Brak ustalonej struktury sieci (za wyjątkiem liczby wejść i wyjść) • Ewolucji podlega zarówno struktura sieci jak i wagi połączeń • Populacja początkowa składa się z możliwie najprostszych sieci (jednakowych pod względem struktury) o losowo zainicjowanych wagach:
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Cel: • Znajdowanie optymalnych rozwiązań o możliwie minimalnej strukturze • Środki: • Startowanie z możliwie najprostszych rozwiązań • Kompleksyfikacja rozwiązań • Wprowadzanie i zachowywanie różnorodności w populacji sieci neuronowych
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Genotyp: • 1. chromosom: geny określające węzły: • Identyfikator • Rodzaj (wejściowy, wyjściowy, ukryty) • 2. chromosom: geny określające połączenia: • Identyfikatory węzłów • Waga • Stan: włączony (enabled), wyłączony (disabled) • Innovation number
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Operacje genetyczne: • Mutacja: • Wag (zmiana wartości wagi połączenia) • Struktury: • Dodawanie połączeń • Dodawanie węzłów • Krzyżowanie
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Mutacja wag: • nowa_waga = stara_waga * (1 + d) • d – wartość losowa z przedziału [-b, b] • b – współczynnik zmiany wagi • Parametr sterujący: • Prawdopodobieństwo mutacji (odnoszące się do każdego genu połączenia)
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Mutacja struktury – dodawanie węzła
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Mutacja struktury – dodawanie połączenia
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Mutacja struktury • Parametry sterujące: • Prawdopodobieństwo mutacji: • Odnoszące się do każdego genotypu • pw – p-stwo mutacji struktury – dodanie węzła • pp – p-stwo mutacji struktury – dodanie połączenia • lw – liczba węzłów • lp – liczba połączeń • 1 ≤ a ≤ 2 • Maksymalna liczba mutacji – m: • liczba mutacji = wartość losowa z przedziału [1, m] • Uwaga: w przypadku dodawania połączeń parametry odnoszą się do prób mutacji
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Krzyżowanie
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Gatunki, nisze (ang. Species): • Cel: • Umożliwienie wyewoluowania i przetrwania nowych rozwiązań • Operacje genetyczne wykonywane są w obrębie gatunku • Decyzja o przynależności osobnika do danego gatunku podejmowana jest na podstawie miary odległości pomiędzy osobnikami (genotypami)
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Gatunki, nisze (ang. Species): • Miara odległości: • D – liczba „niedopasowanych” genów • N – liczba genów w dłuższym chromosomie • W – średnia różnica wag pomiędzy dopasowanymi częściami chromosomów (pierwiastek odległości średniokwadratowej)
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Gatunki, nisze (ang. Species): • Próg dopasowania (T) • δ < T -> osobnik należy do gatunku • Stały próg (T = const) • Ustalona oczekiwana liczba gatunków (E), adaptacyjna zmiana wartości progu w zależności od aktualnej liczby gatunków: • T0 = const, K – faktyczna liczba gatunków • K < E -> Ti+1 = Ti – krok • K > E -> Ti+1 = Ti + krok
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Gatunki, nisze (ang. Species): • Dopasowywanie osobnika do gatunku: • Obliczana odległość (δ) pomiędzy dodawanym osobnikiem a losowym reprezentantem gatunku • δ < T -> dodanie osobnika do gatunku • Gatunki jednoznacznie identyfikowane w obrębie wszystkich generacji • Nowo powstałe gatunki mają większy numer identyfikacyjny niż dotychczas istniejące gatunki
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Gatunki, nisze (ang. Species): • Dodawanie osobnika do populacji: • W pierwszej kolejności próba dopasowania do gatunków istniejących w poprzedniej generacji • Jeśli nie dopasowano -> próba dopasowania do gatunków z bieżącej generacji • Jeśli nie dopasowano -> tworzenie nowego gatunku • Osobnik dopasowywany do gatunków w kolejności od najstarszych do najmłodszych • Konsekwencja: zapewnienie ciągłości gatunków
Metoda NEAT (NeuroEvolution of Augmenting Topologies) • Gatunki, nisze (ang. Species): • Liczba osobników generowanych z gatunku: fij – ocena j-tego osobnika Nj – liczność j-tego gatunku Njnew – liczba osobników generowanych z j-tego gatunku fj – średnia ocena j-tego gatunku f – suma średnich ocen poszczególnych gatunków N – liczność populacji • Przeciwdziałanie zdominowaniu populacji przez osobniki danego gatunku
Algorytm ewolucyjny • Podejście koewolucujne (competitive coevolution): • Dwie rywalizujące ze sobą populacje: • „Hosts” – populacja osobników, dla których wyznaczane są oceny • „Parasites” – populacja osobników testowych • Oceny osobników z populacji „Hosts” wyznaczane są w wyniku współzawodnictwa z osobnikami z populacji „Parasites” • W kolejnych generacjach populacje wymieniają się rolami („Hosts” <-> „Parasites”) • „Arms Race” – wzajemne „prześciganie” się populacji
Algorytm ewolucyjny • „Hall of Fame”: • Zbiór najlepszych osobników ze wszystkich poprzednich generacji • Cel: zapewnienie, że osobniki z bieżącej generacji nie tracą zdolności pokonywania osobników z poprzednich generacji • W rozgrywkach mających na celu ustalenie ocen osobników z populacji „Hosts” biorą udział przedstawiciele z „Hall of Fame” • Podzbiór agentów z „Hall of Fame” biorących udział w rozgrywkach wybierany jest losowo
Wyznaczanie wartości przystosowania osobników • Wartości przystosowania osobników są wyznaczane w wyniku serii rozgrywek pomiędzy osobnikami: • Zbiór przeciwników dla populacji „Hosts” wybierany • z populacji „Parasites” (ustalona max. liczba osobników): • najlepszy osobnik z każdego gatunku z losowo wybranego podzbioru gatunków • z „Hall of Fame” (ustalona max. liczba osobników): • losowy podzbiór
Wyznaczanie wartości przystosowania osobników • Wartości przystosowania osobników są wyznaczane w wyniku serii rozgrywek pomiędzy osobnikami: • Rozgrywki: • Symetryczne: • Osobnik A gra z B (A – pierwszy gracz, B – drugi gracz) -> Osobnik B gra z A (B – pierwszy gracz, A – drugi gracz) • Rezultat: obie populacje przystosowane do gier zarówno jako 1. jak i 2. gracz • Asymetryczne: • Osobnik z 1. populacji gra zawsze jako 1. gracz, a osobnik z 2. populacji zawsze jako 2. gracz • Rezultat: specjalizacja poszczególnych populacji do gier jako 1. bądź jako 2. gracz
Wyznaczanie wartości przystosowania osobników • Rezultaty gier wnoszą informacje wykorzystywane do wyznaczania oceny (przystosowania) osobników: • Pojedyncza rozgrywka: • wygrana, przegrana, remis • Seria rozgrywek: • lista pokonanych osobników – dla agentów z populacji „Hosts” • liczba przegranych gier – dla agentów ze zbioru przeciwników
Wyznaczanie wartości przystosowania osobników • Wartość przystosowania (ocena): • i – osobnik, dla którego określana jest ocena • Pi – zbiór osobników pokonanych przez osobnika i • Nj – liczba przegranych gier przez osobnika j • Uzasadnienie: • Im więcej osobników pokonuje osobnik A tym większą uzyskuje ocenę • Im mniej przegranych gier mają osobnicy pokonani przez osobnika A tym lepszą ocenę uzyskuje osobnik A • Ponadto: mała liczba przegranych osobnika B pokonanego przez A oznacza, że osobnik A jako jeden z niewielu pokonał osobnika B
Śledzenie postępu • Śledzenie wzrostu funkcji oceny: • Dobre w przypadku klasycznego algorytmu ewolucyjnego: • Funkcja oceny określona niezależnie od wzajemnych relacji pomiędzy osobnikami • Niedobre w metodzie koewolucyjnej: • Funkcja oceny określona w wyniku współzawodnictwa osobników z jednej populacji z osobnikami z drugiej • Uzyskane względne oceny w późniejszym etapie ewolucji mogą być porównywalne z ocenami uzyskanymi we wcześniejszych etapach
Śledzenie postępu • Wykorzystanie zbioru „Hall of Fame”: • Śledzenie liczby wygranych najlepszego osobnika z bieżącej populacji z osobnikami z „Hall of Fame” • Zaleta: • Możliwość zastosowania w algorytmie koewolucyjnym • Wady: • Fakt, że agent A pokonał więcej osobników niż agent B nie oznacza, że agent B nie pokonuje agenta A • Konsekwencja: brak śledzenia faktycznego postępu (bycie lepszym pod każdym względem) • Duży koszt – konieczność dodatkowych rozgrywek ze wszystkimi osobnikami z „Hall of Fame”
Śledzenie postępu • Domianance Tournament: • Pojęcie dominacji: • Tworzymy uporządkowany zbiór osobników dominujących (D, <) • Pierwszy element zbioru D: • Najlepszy osobnik z pierwszej generacji • Najlepszy osobnik z pierwszej możliwej generacji pokonujący najlepsze osobniki z kilku ustalonych pierwszych generacji • Kolejne elementy zbioru D: • Najlepszy osobnik z każdej kolejnej generacji, jeśli pokonuje wszystkie osobniki ze zbioru D • Kolejne elementy zbioru dominującego wyznaczają kolejne poziomy dominacji (dominance levels) • Śledzenie poziomów dominacji – śledzenie faktycznego postępu
Algorytm ewolucyjny • Inicjowanie populacji: • Utworzenie 2 równolicznych populacji (po N osobników) złożonych z możliwie najprostszych sieci neuronowych: • 1 neuron wyjściowy • Stała liczba (zależna od gry) węzłów wejściowych połączonych z neuronem wyjściowym • Bias (niepołączony z neuronem wyjściowym) • Losowe wagi połączeń ( z przedziału [-1, 1]) • Wyznaczenie wstępnych ocen osobników z 1. populacji • Wymiana populacji („Hosts” <-> „Parasites”) • Wyznaczenie wstępnych ocen osobników z 2. populacji
Algorytm ewolucyjny • Generowanie następnej generacji: • Wymiana populacji („Hosts” <-> „Parasites”) • Modyfikacja progu dopasowania (odległości) genotypów – na podstawie bieżącej liczby gatunków • Modyfikacja prawdopodobieństw mutacji struktury – na podstawie bieżących średnich liczb węzłów i połączeń w sieciach neuronowych • Dla każdego gatunku (z populacji „Hosts”): • Wyznaczenie oczekiwanej liczby potomków gatunku (Njnew) • Jeśli (Njnew)≥1, dodanie najlepszego osobnika do populacji potomnej • Generowanie (floor(Njnew) - 1) osobników: • Selekcja 2 osobników – metodą turniejową – losujemy k osobników i spośród wylosowanych wybieramy najlepszego • Krzyżowanie • Mutacja struktury – dodawanie węzłów • Mutacja struktury – dodawanie połączeń • Mutacja wag • Dodanie osobnika do populacji potomnej
Algorytm ewolucyjny • Generowanie następnej generacji (c.d.): • Jeśli liczba osobników w populacji potomnej jest < N, to generowanie brakujących osobników: • Zastosowanie metody reszt • Wybór gatunków metodą koła ruletki • Wybór przeciwników do rozgrywek – próbki osobników z populacji „Parasites” oraz „Hall of Fame” • Wyznaczenie ocen osobników z populacji „Hosts” – rozgrywki • Dodanie najlepszego osobnika do „Hall of Fame” • Sprawdzenie, czy najlepszy osobnik jest dominujący – jeśli tak, to dodanie go do zbioru osobników dominujących
Śledzenie przebiegu algorytmu • Z każdej generacji pobierane są informacje: • średnia, minimalna, maksymalna: • ocena osobników • liczba węzłów w sieci • liczba połączeń w sieci • Odchylenia standardowe dla powyższych wielkości • Przebieg zmienności gatunków
Przykłady – gra w kółko i krzyżyk • Reguły: • Plansza 3 x 3 – początkowo pusta • Gracze na przemian stawiają na polach symbole (1. gracz – O, 2. gracz – X) • Wygrywa gracz, który pierwszy ułoży linię o długości 3 złożoną ze swoich symboli (poziomo, pionowo lub po przekątnej)
Przykłady – gra w kółko i krzyżyk • Reprezentacja planszy: • Plansza 3 x 3 zmapowana na wektor o wymiarze 9 • Współrzędne wektora mogą przyjmować następujące wartości: • 0 – puste pole • 1 – pole zawiera O (symbol 1. gracza) • -1 – pole zawiera X (symbol 2. gracza)
Przykłady – gra w warcaby • Reguły (odmiana amerykańska): • Plansza 8 x 8 • Pionki gracza 1. na polach 0 – 12 • Pionki gracza 2. na polach 22 – 34 • Ruchy: • Gracz 1. – z pola o nr k na pola o nr k + 4 lub k + 5 • Gracz 2. – z pola o nr k na pola o nr k - 4 lub k - 5
Przykłady – gra w warcaby • Reguły (odmiana amerykańska – c.d.): • Bicie – przeskoczenie pionka przeciwnika w kierunku legalnego ruchu • Bicia – wielokrotne i przymusowe • Po dotarciu do przeciwległej kraw. pionek staje się damką • Damka – możliwość ruchu i bicia także do tyłu • Damka nie może wykonać wielokrotnego bicia do tyłu w kolejce, w której stała się damką
Przykłady – gra w warcaby • Reprezentacja planszy: • Plansza 8 x 8 zmapowana na wektor o wymiarze 35 (reprezentacja Samuela) • Współrzędne wektora mogą przyjmować następujące wartości: • 0 – puste pole • 1 – pionek 1. gracza • -1 – pionek 2. gracza • 2 – damka 1. gracza • -2 – damka 2. gracza