Wpis z mikrobloga

Ważny dzień. Pierwszy raz program komputerowy ograł topowego gracza w Go. Komputery od wielu lat cisną zawodowych graczy w szachy, jednak Go (azjtycka wersja kropek ( ͡° ͜ʖ ͡°)) zawsze było dla komputerów zbyt skomplikowane. Z roku na rok sztuczna inteligencja radziła sobie coraz lepiej, ale zawsze daleko było do profesjonalistów (chociaż już w 2015 AlphaGo ograł europejskiego mistrza). Kilka godzin temu Lee Sedol, czyli jeden z najlepszych graczy na świecie przegrał swój pierwszy mecz.

Jeśli chodzi o techniczne detale - od dawna do gry w Go używa się tzw. monte-carlo tree search. Tak jak sobie wyobrażacie dobrym pomysłem jest wykonanie ruchu i sprawdzenie jak może odpowiedzieć na niego przeciwnik (to co wszyscy robią w głowie grając np. w szachy :)). Komputery grają podobnie, jednak wbrew pozorom nie mogą sprawdzać wszystkich możliwych ruchów - plansza do Go ma 19x19 pól, tak więc sprawdzenie czterech pierwszych ruchów wymaga (19x19) do czwartej kombinacji do sprawdzenia (co zwykłemu laptopowi zajmie przynajmniej miliard lat). Dobrym pomysłem jest więc sprawdzanie tylko tych ruchów, które mają jakiś sens i dopiero dla nich sprawdzać jak potoczy się rozgrywka w następnych ruchach (wybierając również tylko te ruchy które mają sens). Monte-carlo tree search potrafi wybierać sensowne ruchy - robi to trochę losowo (używając np. mirkorandom), trochę na podstawie funkcji oceniającej wartość ruchu. Stworzenie takiej funkcji to największe wyzwanie.

Inżynierowie z Googla postanowili stworzyć ową funkcję przy użyciu głębokich sieci neurnowych. Budowa takiej sieci polega na stworzeniu dużej ilości prostych funkcji z pewnymi współczynnikami. Funkcje te są ze sobą połączone (wyniki z jednych są argumentami innych). Po uzyskaniu wyniku z tych wszystkich funkcji algorytm sprawdza go z wynikiem oczekiwanym (dostarczonym przez twórców sieci) i jeśli wynik nie był trafiony, to współczynniki tych wszystkich funkcji są delikatnie zmieniane. Dzięki temu po wielu iteracjach taka sieć faktycznie zaczyna dobrze odpowiadać.

Mój opis to oczywiście ciekawostka "dla wszystkich". Jeśli ktoś się interesuje tematem to można przeczytać papera wydanego przy okazji tworzenia Alpha Go: http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html. Niestety jest płatny, moim zdaniem nie warto go czytać - jest płytki i krótki, zbyt dużo nie zdradzili :D

Jutro rewanż, trzymajcie kciuki: https://deepmind.com/alpha-go.html #programowanie #informatyka #deeplearning
  • 3