zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

41
Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych Autor: Rafał Grodzicki Promotor: Dr Jan Bródka

Upload: airlia

Post on 09-Jan-2016

33 views

Category:

Documents


1 download

DESCRIPTION

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: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 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

Page 2: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 3: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 4: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 5: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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)

Page 6: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 7: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 8: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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:

Page 9: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 10: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 11: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 12: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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)

Page 13: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 14: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 15: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 16: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 17: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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)

Page 18: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 19: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 20: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 21: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 22: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 23: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 24: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 25: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 26: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 27: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 28: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 29: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

Ś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

Page 30: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

Ś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”

Page 31: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

Ś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

Page 32: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 33: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 34: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 35: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

Ś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

Page 36: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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)

Page 37: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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)

Page 38: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 39: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 40: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

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

Page 41: Zastosowanie metod neuroewolucyjnych do wyznaczania funkcji oceniającej w grach dwuosobowych

DZIĘKUJĘ ZA UWAGĘ