Uczenie maszynowe end-to-end na przykładzie programu DeepChess. Stanisław Kaźmierczak

Podobne dokumenty
METODY SZTUCZNEJ INTELIGENCJI 2 Opis projektu

Zastosowanie uczenia głębokiego do gry w szachy. Stanisław Kaźmierczak

Podstawowe zasady gry w szachy. Ustawienie bierek na szachownicy w pozycji wyjściowej.

Szachy INSTRUKCJA. rekwizyty: 1) Bierki - 32 szt. 2) plansza - 1 szt.

SZACHY mini INSTRUKCJA. rekwizyty: 1) Bierki - 32 szt. 2) plansza - 1 szt.

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Uczenie ze wzmocnieniem aplikacje

Kognitywne podejście do gry w szachy kontynuacja prac

Ocena pozycji szachowych w oparciu o wzorce

Algorytmy dla gier dwuosobowych

Dariusz Brzeziński Instytut Informatyki, Politechnika Poznańska


Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Uczenie ze wzmocnieniem aplikacje

Partition Search i gry z niezupełną informacją

Metoda ewolucyjnego doboru współczynników funkcji oceniającej w antywarcabach

Python: JPEG. Zadanie. 1. Wczytanie obrazka

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

WYKORZYSTANIE SIECI NEURONOWEJ DO BADANIA WPŁYWU WYDOBYCIA NA SEJSMICZNOŚĆ W KOPALNIACH WĘGLA KAMIENNEGO. Stanisław Kowalik (Poland, Gliwice)

Zastosowania sieci neuronowych

Sztuczna Inteligencja i Systemy Doradcze

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

Alfa-beta Ulepszenie minimax Liczba wierzchołk ow w drzewie gry. maksymalnie wd. minimalnie wbd/2c + wdd/2e Algorytmy przeszukiwania drzewa gry 5

Automatyczne Diagnozy Partii Szachowych nowa funkcja Zestawienie Ruchów.

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Propozycje tematów zadań

Metody Sztucznej Inteligencji II

Elementy kognitywistyki III: Modele i architektury poznawcze

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

MAGICIAN. czyli General Game Playing w praktyce. General Game Playing

Wstęp do głębokich sieci neuronowych. Paweł Morawiecki IPI PAN

Grupa nowicjuszy (A) - 1 godz. w tygodniu (zajęcia pozalekcyjne)

Wstęp do sieci neuronowych, wykład 6 Wsteczna propagacja błędu - cz. 3

PROGRAM ZAJĘĆ KOŁA SZACHOWEGO. W ZESPOLE SZKOLNO PRZEDSZKOLNYM w MESZNEJ rok szkolny 2018/2019

Karty pracy Matematyka

Sieci neuronowe w Statistica

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Machine learning Lecture 5

Inteligentne systemy decyzyjne: Uczenie maszynowe sztuczne sieci neuronowe

Zastosowania sieci neuronowych

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

Przykłady szacha-mata

Technologie cyfrowe semestr letni 2018/2019

Wrocław University of Technology. Uczenie głębokie. Maciej Zięba

Projekt Sieci neuronowe

Komitety sieci konwolucyjnych w zagadnieniu klasyfikacji przy jednoczesnym zaszumieniu danych wejściowych oraz etykiet klas. Stanisław Kaźmierczak

Narzędzia AI. Jakub Wróblewski Pokój SZTUCZNA INTELIGENCJA (ARTIFICIAL INTELLIGENCE)

MATLAB Neural Network Toolbox przegląd

Jak oceniać, gdy nic nie wiemy?

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD XI: Sztuczne sieci neuronowe

Zastosowanie optymalizacji rojem cząstek (PSO) w procesie uczenia wielowarstwowej sieci neuronowej w problemie lokalizacyjnym, kontynuacja badań

Inspiracje kognitywne w procesie analizy pozycji szachowej

Zastosowanie sieci neuronowych w problemie klasyfikacji wielokategorialnej. Adam Żychowski

Szachy, backgammon (tryktrak) i warcaby

Machine learning Lecture 6

Kod U2 Opracował: Andrzej Nowak

Szukając nazwy pola zaczynamy od litery strzałki pionowe potem dopisujemy cyfry strzałki poziome

Liczby nadrzeczywiste i gry Hackenbusha

SID Wykład 4 Gry Wydział Matematyki, Informatyki i Mechaniki UW

Uczenie się pojedynczego neuronu. Jeśli zastosowana zostanie funkcja bipolarna s y: y=-1 gdy z<0 y=1 gdy z>=0. Wówczas: W 1 x 1 + w 2 x 2 + = 0

Σ. MiNI/MatLic/AiPP/ /Kolokwium-IB (20)

AUTO-ENKODER JAKO SKŠADNIK ARCHITEKTURY DEEP LEARNING

Wstęp do sieci neuronowych, wykład 04. Skierowane sieci neuronowe. Algorytmy konstrukcyjne dla sieci skierowanych

Szachy - Samouczek. Maciek Nowak

Uczenie maszynowe w zastosowaniu do fizyki cząstek

8. Neuron z ciągłą funkcją aktywacji.

Wyciąg z przepisów obowiązujących na XII Ogólnopolski Turniej Szachowy o Puchar Związku Banków Polskich Warszawa, 20 listopada 2016r.

Konspekt zajęć Kółka Szachowego dla grupy uczniów Szkoły Podstawowej zaawansowanych z serii analizy szachowe: DIEBIUTY OTWARTE

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Zastosowanie optymalizacji rojem cząstek (PSO) w procesie uczenia wielowarstwowej sieci neuronowej w problemie lokalizacyjnym

Tomasz Pawlak. Zastosowania Metod Inteligencji Obliczeniowej

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING

Podstawy Informatyki

POŁĄCZENIE ALGORYTMÓW SYMULACYJNYCH ORAZ DZIEDZINOWYCH METOD HEURYSTYCZNYCH W ZAGADNIENIACH DYNAMICZNEGO PODEJMOWANIA DECYZJI

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING

ĆWICZENIE 5: Sztuczne sieci neuronowe

Temat: Sieci neuronowe oraz technologia CUDA

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

3. MINIMAX. Rysunek 1: Drzewo obrazujące przebieg gry.

Dla dzieci od 5 lat. Wymiary pudełka 20x20x5 cm. Backgammon

Asocjacyjna reprezentacja danych i wnioskowanie

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Algorytm grupowania danych typu kwantyzacji wektorów

Sieci neuronowe i ich ciekawe zastosowania. Autor: Wojciech Jamrozy III rok SMP / Informatyka

I. WPROWADZENIE I PODSTAWOWE ZASADY GRY W SZACHY

SAS wybrane elementy. DATA MINING Część III. Seweryn Kowalski 2006

Deep Learning na przykładzie Deep Belief Networks

Tworzenie gier na urządzenia mobilne

1. Logika, funkcje logiczne, preceptron.

Autorzy: Heinrich Glumpler i Matthias Schmitt

ALGORYTM RANDOM FOREST

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Wstęp do sieci neuronowych, wykład 13-14, Walidacja jakości uczenia. Metody statystyczne.

TEORIA GIER DEFINICJA (VON NEUMANN, MORGENSTERN) GRA. jednostek (graczy) znajdujących się w sytuacji konfliktowej (konflikt interesów),w

Inteligentne systemy przeciw atakom sieciowym

sieci jednowarstwowe w MATLABie LABORKA Piotr Ciskowski

Systemy agentowe. Uczenie ze wzmocnieniem. Jędrzej Potoniec

Najprostsze modele sieci z rekurencją. sieci Hopfielda; sieci uczone regułą Hebba; sieć Hamminga;

Optymalizacja. Przeszukiwanie lokalne

Transkrypt:

Uczenie maszynowe end-to-end na przykładzie programu DeepChess Stanisław Kaźmierczak

2 Agenda Wprowadzenie Dane treningowe Trening i struktura sieci Redukcja rozmiaru sieci Zmodyfikowane alfa beta Wyniki Wnioski

3 Wprowadzenie Najsilniejsze programy szachowe nie używają lub używają w bardzo ograniczonym zakresie uczenia maszynowego O sile programu stanowi w głównej mierze szlifowana latami funkcja oceny pozycji Zastosowanie metod uczenia maszynowego w szachach przynosiło dobre, aczkolwiek nie rewelacyjne wyniki Reinforcement learning: Poziom mistrza szachowego [2, 3] Dobrze radził sobie w mniej złożonych grach jak warcaby czy backgammon Formalne argumenty przemawiające za tym, że Reinfocement learning słabo radzi sobie w bardziej złożonych grach jak szachy (branching factor = 35) [4]

4 Wprowadzenie Monte Carlo: Stanowiło znaczne wzmocnienei w Go [5] Nie przynosi rewelacyjnych rezultatów w szachach ze względu na ich zbyt taktyczny charakter, np. tylko jeden ruch prowadzi do zwycięstwa, a wszystkie pozostałe do porażki Do tej pory nie istniał program wykorzystujący uczenie maszynowe od początku do końca grający na poziomie arcymistrzowskim 3 fazy nauki DeepChess: Głębokie nienadzorowane uczenie w celu ekstrakcji cech wysokiego poziomu Nauka sieci, aby umiała wybierać lepszą z dwóch pozycji Kompresja sieci w celu przyspieszenia obliczeń

Funkcja oceny pozycji Standardowowe funkcje oceny pozycji w szachach: Wejściem jest pozycja, wyjściem liczba Wartość funkcji reprezentuje jak dobra jest pozycja, na ogół z punktu widzenia białego (przewaga białych wartość dodatnia, pozycja równa 0, przewaga czarnych wartość ujemna) kombinacja liniowa kilkuset (lub więcej) parametrów (Deep Blue 8k), np. suma umownej wartości bierek, bezpieczeństwo króla, zaawansowanie pionów, zdublowane piony, kontrola centrum, itp. Tworzone ręcznie na podstawie wiedzy eksperckiej Szlifowane latami Funkcja oceny pozycji w DeepChess: Tworzona od zera, brak jakiejkolwiek wiedzy eksperckiej Do nauki wykorzystywane jest jedynie zbiór partii wraz z rezultatem danej rozgrywki 5

Funkcja oceny pozycji w DeepChess Idea: porównywanie dwóch pozycji, brak numerycznej oceny Wejście: dwie pozycje Sieć neuronowa uczy się określać, która pozycja jest lepsza Wybór par pozycji w procesie uczenia: Jedna pozycja wybierana jest losowo z partii, w której białe wygrały Druga wybierana jest z partii, w której zwyciężyły czarne Założenie: w zdecydowanej większości przypadków pozycje, w których białe wygrały są lepsze (z punktu widzenia białych) od tych, w których białe przegrały Powyższe podejście pozwala stworzyć duży zbiór treningowy: np. mając10 6 pozycji, w których białe wygrały i10 6 pozycji, w których białe przegrały możemy stworzyć 2 x 10 12 par uczących (x2, bo każda para pozycji może być użyta dwa razy: wygrana przegrana, przegrana wygrana) 6

7 Dane treningowe Źródło: CCRL (www.computerchess.org.uk/ccrl) 640 000 partii (221 695 wygranych przez białe, 164 387 przez czarne, reszta to remisy) Eksperymenty pokazały, że partie remisowe nie wnoszą nic w proces nauki Z każdej partii wybieranych jest losowo 10 pozycji, przy czym: Nie bierzemy pozycji z pierwszych pięciu ruchów Ruch wykonany z wybranej pozycji nie jest biciem (bicia są mylące, ponieważ skutkują chwilową przewagą ) Ostatecznie zbiór treningowy zawiera 3 860 820 pozycji (2 216 950, w których białe wygrały i 1 643 870 wygranych przez czarne)

8 Trening i struktura sieci Faza 1: trening autoenkodera Autoenkoder działa jak nieliniowy ekstraktor cech wysokiego poziomu Faza 2: nauka porównywania pozycji Tworzymy dwie kopie autoenkodera (odpowiadające dwum pozycjom) Na ich wyjściu dodajemy w pełni połączoną kilkuwarstwową sieć Dwa neurony na wyjściu, funkcja aktywacji softmax Wyjście wskazuje, która z pozycji pochodzi jest lepsza Okazuje się, że dwuwartościowe wyjście daje lepsze rezultaty niż jednowartościowe wyjście binarne

Trening i struktura sieci 9

10 Wejście sieci 773-bitowe wejście Na każdym z 64 pól może stać jedna z 6 figur koloru białego lub czarnego (64 x 6 x 2 = 768) Czyj ruch (1 bit) Prawo do roszady (4 bity)

11 Trening autoenkodera Każde dwie sąsiadujące warstwy traktowane są jako autoenkoder Kolejno trenujemy autoenkodery z coraz niższych warstw (773-600-773, 600-400-600, itd.) Dopóki w pełni zostanie nauczona dana warstwa nie przechodzimy do kolejnej Zbiór treningowy: milion pozycji wygranych przez białe i milion wygranych przez czarne Funkcja aktywacji ReLU: f(x) = max(0, x) 200 iteracji

12 Trening DeepChess Trening nadzorowany, podczas którego modyfikowana jest cała sieć, również autoenkoder 1000 iteracji W każdej iteracji generowanych jest losowo milion par Jedna pozycja wybierana jest losowo ze zbioru 2 116 950 pozycji wygranych przez białe Jedna pozycja wybierana jest losowo ze zbioru 1 543 870 pozycji wygranych przez czarne Każda para pozycji jest następnie ustawiana losowo jako wygrana-przegrana lub przegrana-wygrana 100k pozycji każdego typu jest przeznaczonych na walidację

13 Trening DeepChess Zbiór potencjalnych par treningowych ma liczność 6.5 x 10 12, więc pary wejściowe praktycznie się nie powtarzają (i tym samym nie nastąpi przeuczenie) Funkcja aktywacji ReLU: f(x) = max(0, x) Współczynnik nauki wynosi 0.01 na starcie i wymnażany jest przez 0.99 w każdej iteracji Błąd na zbiorze treningowym i walidacyjnym wyniósł odpowiednio 1.8% oraz 2.0%

14 Redukcja rozmiaru sieci Sieć w zaprezentowanej postaci działa znacząco wolniej niż standardowe funkcje ewaluacyjne Należy stworzyć mniejszą sieć, która w dobry sposób będzie naśladować oryginalną sieć Na początku trenowana jest sieć 773-100-100-100 w celu naśladowania autoenkodera z oryginalnej sieci Następnie dodawane są 3 warstwy: 100-100-2 i trenowana jest cała sieć

Zmodyfikowane alfa-beta Wartości alfa i beta są zastępowane pozycjami alfa pos i beta pos Przypadek, gdy my mamy zagrać w węźle: jeśli nowa pozycja jest lepsza niż alfa pos wówczas staje się ona alfa pos Przypadek, gdy przeciwnik ma zagrać w węźle: jeśli nowa pozycja jest gorsza niż beta pos wówczas staje się ona beta pos Jeśli alfa pos jest lepsza w danym węźle niż beta pos wówczas przerwij dalsze przeszukiwania z tego węzła 15

16 Haszowanie pozycji Wiele pozycji powtarza się w różnych częściach drzewa gry W celu uniknięcia zbędnych obliczeń zastosowana została tablica haszująca przechowująca pozycje i odpowiadające im wartości wyeksrahowanych cech Dla każdej nowej pozycji najpierw sprawdzana jest tablica haszująca. Jeśli okaże się, że odpowiedni hasz już istnieje, wówczas wykorzystywane są wcześniej policzone wartości

17 Czy program uczy się reguł gry? Without any a priori knowledge, in particular without any knowledge regarding the rules of chess We employ deep neural networks to learn an evaluation function from scratch, without incorporating the rules of the game and using no manually extracted features at all We do not provide our evaluation function with any features, including any knowledge about the rules of chess This is remarkable, considering that no a priori knowledge of chess, including the very rules of the games are provided without any chess knowledge whatsoever (not even basic knowledge as the rules of chess)

18 Czy program uczy się reguł gry? Moim zdaniem te wszystkie zdania, które Pan przytoczył odnoszą się wyłącznie do funkcji ewaluacyjnej, czyli w tym przypadku do tej sieci neuronowej, a nie do całego programu. Rzeczywiście autorzy trenują sieć neuronową bez żadnych dodatkowych informacji o zasadach gry, wyłącznie na podstawie porównywania dwóch różnych pozycji. Logika gry była zaimplementowana już w alogorytmie alpha-beta, który po prostu wykorzystywał DeepChees jako funkcje ewaluacyjną, ale równie dobrze mogłaby być to funkcja FALCON czy CRAFTY, z którymi właśnie porównywany jest DeepChees.

19 Statyczne rozumienie pozycji Program dobrze porównuje pozycje pod względem materiału (zarówno proste przypadki, gdy po jednej stronie brakuje jakiejś bierki, jak i bardziej wyszukane np. wieża vs skoczek i goniec) DeepChess nauczył się dobrze rozpoznawać również bardziej subtelne aspekty pozycji jak np. bezpieczeństwo króla, para gońców, mobilność bierek, zaawansowanie pionków, prawo do roszady, itp. Preferuje dynamiczne pozycje z możliwościami ataku nawet kosztem materiału W wielu przypadkach wybiera pozycji z pionkiem lub dwoma mniej, ale z przewagą pozycyjną (charakterystyczna cecha silnych graczy ludzkich) Na podobieństwo do zachowania mocnych szachistów ma wpływ niewątpliwie nieliniowość ewaluatora DeepChess

Statyczne rozumienie pozycji 20

Wyniki Falcon Poziom arcymistrzowski Funkcja oceny pozycji rozwijana prawie 10 lat zawiera ponad 100 parametrów Crafty Ranking ELO: 3033 (10.05.2017) Standardowy program używany jako referencja, rozwijany od 30 lat DeepChess działa 4 razy wolniej niż funkcja ewaluacyjna w Falcon DeepChess jest istotnie lepszy niż funkcja ewaluacyjna w Falcon 21

22 Wnioski Gdzie szukać dalszych możliwości poprawy siły gry programu? Poprzez przyspieszenie działania sieci neuronowej DeepChess bez pogarszania jej wyników Czym DeepChess różni się od gracza ludzkiego?

23 Wnioski Gdzie szukać dalszych możliwości poprawy siły gry programu? Poprzez przyspieszenie działania sieci neuronowej DeepChess bez pogarszania jej wyników Czym DeepChess różni się od gracza ludzkiego? SELEKTYWNOŚĆ

24 Bibliografia 1. D. E. Omid, N. S. Netanyahu, L. Wolf. DeepChess: End-to-End Deep Neural Network for Automatic Learning in Chess. ICANN (2) 2016:88-96 2. J. Baxter, A. Tridgell, L.Weaver. Learning to play chess using temporaldierences. Machine Learning, 40(3):243-263, 2000. 3. M. Lai. Girae. Using deep reinforcement learning to play chess. Master's Thesis, Imperial College London, 2015. 4. M.A. Wiering. TD learning of game evaluation functions with hierarchical neural architectures. Master's Thesis, University of Amsterdam, 1995. 5. D. Silver et al. Mastering the game of Go with deep neural networks and tree search. Nature, 529:484-489, 2016.