15.06.2009

Gomoku - uczenie ze wzmocnieniem

Niniejszy artykuł jest sprawozdaniem z projektu wykonanego w ramach przedmiotu: Metody i algorytmy sztucznej inteligencji.

Autor:

Szymon Bigos 146029


1. Streszczenie

Celem projektu było stworzenie samouczącego gracza do gry w gomoku. Wykorzystano metodę TD uczenie ze wzmocnieniem. Docelowo gracz powinien rozgrywać partie z człowiekiem.

Postawiony problem ma bardzo dużą przestrzeń stanu, dlatego w trakcie realizacji projektu konieczne było zastosowanie aproksymatora funkcji wartości. Do obliczenia jej wartości użyto perceptron. Jako cechy przestrzeni stanu użyto ilość sekwencji zagrażających. Wykorzystane zostały definicje sekwencji zagrażających wzięte z metody Threat-Space Search dla gry Gomoku.

Ostatecznie okazało się, że uczenie ze wzmocnieniem nie jest dobrą metodą rozwiązywania problemu gry w gomoku. Otrzymane rezultaty nie są dobre. Zdarza się, że agent podejmuje dobre działania, mimo to jego gra jest na bardzo niskim poziomie.


15.06.2009

Gomoku - reinforcement learning

This report has been prepared as a requirement for the course: Methods and algorithms of artificial intelligence.

Author:

Szymon Bigos 146029


1. Brief

The Goal of the project was to create learning control player for gomoku game. The TD method of reinforcement learning was used. The aim of the project was to teach the player to play game with human.

This problem has a huge space of states, so it was necessary to use value function estimator. Perceptron was used in order to count value function. Number of threat sequences was used as traits of state. Applied definitions of threat sequences were taken from Threat-Space Search method for Gomoku game.

Finally it proved that reinforcement learning is not a good solution for solving the problem in gomoku game. Received results are not good. Sometimes agent makes a good decision, but his play is still at a very low level.


2. Strategia

Zgodnie z pozycją [1], dowolna strategia zachłanna względem optymalnej funkcji wartości jest strategią optymalną. Zatem definiujemy strategię zachłanną względem funkcji wartości następująco:
Strategia zachłanna względem funkcji wartości.
Przy czym funkcja P jest prawdopodobieństwem przejścia systemu ze stanu x do stanu y pod wpływem akcji a. W naszym przypadku zdarzenie to jest pewne, jeśli tylko ruch taki jest dozwolony, lub niemożliwe, jeśli ruch ten nie jest dozwolony (pozycja docelowa pionka jest już zajęta).

Funkcja R zwraca wartość oczekiwaną wzmocnienia po wykonaniu akcji a w stanie x.

Funkcja V jest funkcją wartości.

Jeśli istnieje kilka akcji, które maksymalizują wyrażenie z nawiasów, wtedy wylosowana zostanie jedna z nich.

3. Funkcja wartości V

Do nauczenia funkcji wartości zastosowano algorytm TD. Metoda ta składa się z powtarzanych w pętli kilku kroków:

Algorytm TD.

Normalnie oczekuje się, że funkcja ta jest zdefiniowana w sposób tablicowy, to znaczy, dla każdego stanu przypisana jest wartość. W trakcie uczenia wartości te są modyfikowane. W przypadku gry gomoku na planszy 19x19 pół dolne oszacowanie ilości stanów wynika z ilości możliwości rozstawienia pionków na planszy bez uwzględnienia ich kolorów. Mamy zatem nie mniej, niż 2^(19x19) stanów. Tak duża liczba uniemożliwia zastosowanie tablicowej metody reprezentacji funkcji wartości. Jak podaje pozycja [1], jednym ze sposobów aproksymacji funkcji wartości jest stworzenie perceptronu, który będzie obliczał wartość funkcji na podstawie wybranych cech stanu. Zatem funkcja wartości, zgodnie z [1], ma postać
Aproksymacja funkcji wartości.
Uczenie tej funkcji polega na odpowiedniej modyfikacji wag zgodnie ze wzorem
Uczenie wag funkcji wartości.
Aktualizacja wag odbywa się na podstawie błędu wag i z krokiem beta tak, jak mówi algorytm TD. Uchyby wag definiujemy, jak podaje pozycja [3], następująco:
Uchyb wag.


4. Wektor cech

Wektor cech składa się z 12 pól - sześć pól dla białych, a następnie czarnych pionków, o następującym znaczeniu:

Każdy element wektora odpowiada pewnej sekwencji pionków. Wartość tego elementu zależy od ilość wystąpień odpowiedniej sekwencji pionków na planszy. Definicje poszczególnych sekwencji (oprócz pierwszej, która została dodana na potrzeby algorytmu) wyjaśnione są w artykule [2]. Odpowiadają one pięciu rodzajom zagrożeń. Jeśli gracz nie podejmie akcji w celu rozbicia takiej sekwencji, na pewno przegra. Pierwsza z cech odpowiada ułożeniu zwycięskiemu. Próbowano również użycie dodatkowej cechy odpowiadającej ułożeniu dwóch pionków obok siebie. Cecha ta niekorzystnie wpływała na strategię gry. Powodowała, że gracz układał swoje pionki w zwartą grupę, zamiast w linii. Jednocześnie brak tej cechy sprawia, że początkowy etap gry z punktu widzenia automatycznego gracza, ma charakter zupełnie losowy.


5. Wartość wzmocnienia R

Wartość wzmocnienia wyznaczona jest na podstawie cech. Liczony jest przyrost (lub spadek) wartości poszczególnych cech w stosunku do poprzedniego stanu. Główna reguła dla wartości wzmocnienia dla gracza białego ma postać:

(10.0*(dB>=dC?dB:(-dC)))/(abs(dB)+abs(dC));

dla gracza czarnego:

(10.0*(dB>dC?(-dB):dC))/(abs(dB)+abs(dC));

gdzie dB i dC to przyrosty (spadki) sumy cech odpowiednio gracza białego i czarnego. Tak przyjęta funkcja wzmocnienia zapewnia proporcjonalność wzmocnienia do skutków akcji oraz pewne unormowanie wartości. Wewnątrz funkcji zaimplementowano dodatkowe reguły, które powoduję, że w przypadku zwycięstwa lub porażki wartość wzmocnienia wynosi odpowiednio 20 lub -20.

6. Krok uczenia Beta.

Zgodnie z [1] jednym z warunków zbieżności algorytmu jest zmienność ciągu współczynników Beta.. Ciąg współczynników spełniać musi warunki:

Warunki zbieżności algorytmu.

Jako Beta. przyjęto zatem ciąg odwrotności kolejnych liczb naturalnych.

7. Obserwacje i wnioski


8. Informacje o programie

Program napisany został z wykorzystaniem biblioteki Qt w wersji 4.4.2.

9. Źródła

  1. http://www.ise.pw.edu.pl/~cichosz/um/ - Paweł Cichosz, Materiały do wykładu "Uczenie się maszyn".
  2. http://home.mit.bme.hu/~gtakacs/download/allis1994.pdf - "Go-Moku and Threat-Space Search" - L.V. Allis, H.J. van den Herik, M.P.H. Huntjens.
  3. http://www.leemon.com/papers/1995b.pdf - "Residual Algorithms: Reinforcement Learning with Function Approximation" - Leemon Baird