Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałGabryŝ Murzyn Został zmieniony 11 lat temu
1
Magda Kusiak Karol Walędzik prof. dr hab. Jacek Mańdziuk
Problem wstępnego sortowania ruchów w programie grającym w grę dwuosobową Magda Kusiak Karol Walędzik prof. dr hab. Jacek Mańdziuk
2
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Plan prezentacji Go 9x9 Zastosowanie sieci neuronowych Nauka sieci neuronowych Struktury danych Modyfikacje algorytmu alfa-beta Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
3
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Zasady Plansza 9x9 Ko: Zakaz jedynie cykli o długości 2 (uzupełniony limitem ruchów w partii) Zakaz samobójstw Punktacja: terytorium + własne kamienie Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
4
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Konsekwencje Rząd drzewa gry: 81 w pierwszym ruchu malejący w kolejnych Głębokość drzewa: kilkadziesiąt ruchów Wniosek: Jest nadzieja, że algorytm alfa-beta z dobrym sortowaniem ruchów okaże się wystarczający Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
5
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Nasz wersja AI Dla każdego rozpatrywanego węzła Przyporządkowujemy każdemu ruchowi wartość określającą jego jakość Algorytm alfa-beta rozpatruje kilkanaście ruchów, zaczynając od najlepszych W liściach drzewa przeszukiwań uruchamiamy heurystykę przewidującą końcowy podział planszy Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
6
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Sieci neuronowe Pierwsza sieć każdemu ruchowi możliwemu w danej sytuacji przyporządkowuje wartość określającą, jak korzystny jest ten ruch Druga sieć ocenia pozycję, próbując przewidzieć, jaki będzie podział planszy po zakończeniu gry Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
7
Konstrukcja sieci neuronowych
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
8
Konstrukcja sieci – wariacja podstawowa
162 neurony wejściowe – po 2 na każde pole 9 x 5 neuronów, każda piątka zbiera informacje z jednego regionu planszy + 10 neuronów zbierających kontekst globalny 9 x 5 neuronów, każda piątka połączona z odpowiednią piątką z poprzedniej warstwy i 10 neuronami globalnymi + 15 neuronów połączonych z całą poprzednią warstwą 81 neuronów wyjściowych Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
9
Wejście i wyjście sieci
Wejściem obu sieci jest pozycja na planszy (dwa neurony na każde pole) Pierwsza sieć zwraca dla wszystkich pól wartości z przedziału [0,1] określające zasadność wykonania ruchu na danym polu Druga sieć zwraca wartości z przedziału [-1,1] oznaczające kolor gracza, do którego dane pole będzie należało po zakończeniu gry Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
10
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Nauka sieci Algorytm back-propagation Nauka naśladownictwa programu grającego w Go (np. GNUGo) lub gier profesjonalistów Wiele schematów nauki do przetestowania Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
11
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Nauka sieci – c.d. Nauka na podstawie gier profesjonalnych – pomysł najprostszy: Wektory wzorcowe składające się z samych zer i jednej jedynki w miejscu ruchu profesjonalisty Problem – może istnieć kilka dobrych ruchów o bardzo podobnej jakości. Profesjonalista wybrał tylko jeden z nich – reszta zostanie potraktowana na równi z ruchami ewidentnie złymi Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
12
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Nauka sieci – c.d. Jeden z pomysłów rozwiązania: Wstępna nauka na bazie programu podającego w danej sytuacji ocenę wszystkich możliwych ruchów Program GNU Go Pozycje wykorzystywane do nauki generowane poprzez rozegranie fragmentu gry przez GNU Go z losowymi ustawieniami jakości gry GNU Go wykorzystywane także do predykcji podziału planszy po zakończeniu gry Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
13
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Nauka sieci – c.d. Douczanie z wykorzystaniem gier profesjonalistów: Wektor wzorcowy zależny od odpowiedzi sieci Jeśli sieć dobrze wskaże najlepszy ruch, jako wektor wzorcowy podajemy wynik jej działania, ew. „odsuwając” najlepszy ruch od pozostałych - w ten sposób akcentujemy najlepsze rozwiązanie, ale nie tracimy pozostałych W p.p. „rozsunięcie” musi być silniejsze – wartość ruchu profesjonalisty przemnażana jest przez współczynnik >1 proporcjonalny do jej odległości od najwyżej ocenionego ruchu, pozostałe wartości są mnożone przez współczynnik <1 Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
14
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Heurystyka Sieć przewidująca podział planszy może być albo douczana na podstawie gier profesjonalnych albo uzupełniana funkcją wpływu / algorytmem Bouzy’ego Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
15
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Algorytm Bouzy’ego 2 rodzaje operacji: dilation i erosion Do wyznaczania terytorium stosuje się zwykle wersję algorytmu 5/21: 5 operacji dilation 21 operacji erosion Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
16
Algorytm Bouzy’ego – c.d.
Przypisz wysoką wartość na pozycjach z kamieniami czarnymi i jej odwrotność z białymi oraz 0 – polom pustym Wykonaj n operacji dilation: Do każdego pola o wartości >=0 (<=0), nie sąsiadującego z polem <0 (>0) dodaj (odejmij) liczbę sąsiadów >0 (<0) Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
17
Algorytm Bouzy’ego – c.d.
Wykonaj m operacji erosion: Od każdego pola o wartości >0 (<0), odejmij (dodaj) liczbę sąsiadów <=0 Liczba operacji powinna wynosić n/(1+n(n-1)), by pojedynczy kamień nie generował terytorium i stąd wybór 5/21 (4/13 nie zawsze jest wystarczające) Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
18
Algorytm Bouzy’ego - przykład
Po 2 operacjach dilation: Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
19
Algorytm Bouzy’ego - przykład
Po 3 operacjach dilation i 7 erosion: Czyli te 2 kamienie otaczają 1 pole terytorium Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
20
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Struktury danych Stuktura planszy powinna zawierać: informację o zawartości dla każdego pola wraz z identyfikatorem grupy (dla niepustych pól) liczbę liberties każdej z grup historię ruchów Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
21
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
Struktury danych Dla celów porównywania sytuacji (z lub bez uwzględniania izomorfizmu), przechowywania ich w transposition tables i podawania sieci neuronowej wprowadzana jest struktura skompresowana planszy Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
22
Skompresowany opis sytuacji
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
23
Skompresowany opis sytuacji
Pełen opis planszy to mniej niż 21 bajtów: 64 bity na zewnętrzny kwadrat 48 bitów na kolejny 32 bitów na kolejny 16 bitów na przedostatni 2 bity na środkowe pole Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
24
Skompresowany opis sytuacji
Obrót planszy wymaga jedynie kilku obrotów bitowych składowych opisu Izomorfizm względem obrotów łatwo uzyskać wprowadzając funkcję wyznacznika narożnego obszaru planszy i obracając tak, by uzyskać maksimum w konkretnym narożniku Analogicznie dokonać można odbić Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
25
Skompresowany opis sytuacji
Pomysły na funkcję wyznacznika dla narożnego obszaru 4x4: Kombinacja liniowa liczb kamieni obu graczy Z wagami przeciwnych znaków (np. 1 i -0.99) Z wagami tych samych znaków (np.. 1 i 0.99) 32 bity, liczba jedynek w każdej szesnastce określająca liczbę kamieni każdego z kolorów Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
26
Modyfikacje algorytmu alfa-beta
Iterative deepening Transposition tables być może przechowujące dla każdej pozycji wszystkie ruchy zaproponowane przez sieć wraz z ocenami Aspiration search Principal variation History heuristic Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
27
Modyfikacje algorytmu alfa-beta
Aspiration search Kolejne przeszukiwania rozpoczynane są z oknami zawężonymi na podstawie dotychczasowych informacji Principal variation Przyjmując założenie, że sortowanie ruchów do przeanalizowania jest właściwe, można dla drugiego i dalszych ruchów wykorzystać przeszukiwanie z zerowym oknem, by zweryfikować tę hipotezę Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
28
Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
History heuristic Za każdym razem, gdy dany ruch okaże się najlepszym jaki można wykonać, zwiększana jest jego wartość Wartość ta wykorzystywana jest do sortowania ruchów do analizy (w naszym przypadku po zsumowaniu z ocenami wygenerowanymi przez sieć) Wartość ruchu powinna być zwiększana proporcjonalnie do głębokości przeszukiwania, które wykazało, że jest on najlepszym z możliwych Magda Kusiak, Karol Walędzik - Problem wstępnego sortowania ruchów ...
29
Dziękujemy za uwagę Czas na pytania…
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.