Download - Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych
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
11-5w1
22-5w2
33-5w3
44-5w4
11-5w1
22-5w2DIS
33-5w3
44-5w4
52-61
66-5w2
Metoda NEAT (NeuroEvolution of Augmenting Topologies) Mutacja struktury – dodawanie
połączenia
11-5w1
22-5w2DIS
33-5w3
44-5w4
52-61
66-5w2
11-5w1
22-5w2DIS
33-5w3
44-5w4
52-61
66-5w2
73-6w5
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
awwlw
lppp 0
lp
lwpp
a
pp
)(0
Metoda NEAT (NeuroEvolution of Augmenting Topologies) Krzyżowanie
11-5wA1
22-5wA2DIS
33-5wA3
44-5wA4
52-6wA5
66-5wA6
73-6wA7
11-5wB1
22-5wB2DIS
33-5wB3DIS
44-5wB4
52-6wB5
66-5wB6
83-7wB8
97-5wB9
11-5wA1
22-5wB2DIS
33-5wA3
44-5wB4
52-6wB5
66-5wA6
83-7wB8
97-5wB9
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)
WcN
Dc 21
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 osobnikaNj – liczność j-tego gatunkuNj
new – liczba osobników generowanych z j-tego gatunkufj – średnia ocena j-tego gatunkuf – suma średnich ocen poszczególnych gatunkówN – liczność populacji
Przeciwdziałanie zdominowaniu populacji przez osobniki danego gatunku
jj N
iij
j
N
i j
ij
jj f
NN
f
Nf
12
1
11N
f
fN jnewj
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
iPj j
i Nf
1
Ś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 (Nj
new) Jeśli (Nj
new)≥1, dodanie najlepszego osobnika do populacji potomnej Generowanie (floor(Nj
new) - 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
0 1 2 3
4 5 6 7
9 10 11 12
13 14 15 16
18 19 20 21
22 23 24 25
27 28 29 30
31 32 33 34
Przykłady – gra w warcaby Reguły (odmiana amerykańska – c.d.):
Bicie – przeskoczenie pionkaprzeciwnika w kierunkulegalnego ruchu
Bicia – wielokrotne i przymusowe
Po dotarciu do przeciwległejkraw. 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ą
0 1 2 3
4 5 6 7
9 10 11 12
13 14 15 16
18 19 20 21
22 23 24 25
27 28 29 30
31 32 33 34
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
DZIĘKUJĘ ZA UWAGĘ