AlphaStar - algorytm samouczący mistrzem w StarCraft II

   StarCraft II jest to jedna z najpopularniejszych gier strategicznych czasu rzeczywistego zaliczanych do e-sportów. Grają w nią miliony ludzi na całym świecie. Odbywają się turnieje a nawet mistrzostwa na poziomie światowym. Dla sporej grupy osób gra jest sposobem zarabiania na życie.

   Dla niewtajemniczonych jest to gra science fiction, w której występują trzy rasy: Terranie, Zergowie i Protosi. Każda z ras jest specyficzna i gra się nią inaczej niż pozostałymi. Nie bez znaczenia jest też mapa, na której odbywa się rozgrywka, oraz rozmieszczenie zasobów na niej.

Powyższe pozwala sobie uświadomić, że nie jest to prosta gra i wymaga dużo myślenia i planowania swoich posunięć na przód.

   Wracając do AlphaStar - jest to algorytm samouczący oparty na sieciach neuronowych. Oczywiście nie od StarCraft II się zaczęło. Jednym z pierwszych podejść tego typu był TD-Gammon stworzony przez naukowców z IBM w 1992 roku. Jego zadaniem było nauczenie się gry backgammon metodą prób i błędów, gdyż nie została mu przedstawiona strategia, a tylko informacja, czy wygrał czy przegrał. Grając przeciwko wersjom samego siebie stawał się coraz bieglejszy w grze. Powstawały kolejne algorytmy, takie jak AlphaGo i AlphaZero, które nauczyły się grać na ponad ludzkim poziomie w szachy, go i shogi, zwane inaczej japońskimi szachami.

   Potencjał algorytmów samouczących jest ogromny, a gry takie jak StarCraft są doskonałym poligonem do rozwijania ich, ponieważ gracze muszą korzystać z ograniczonych informacji, aby podejmować dynamiczne i trudne decyzje, które mają konsekwencje na wielu poziomach i w różnych przedziałach czasowych.

Jednym z większych problemów algorytmów samouczących jest „łapanie własnego ogona”, łatwo to wytłumaczyć na przykładzie gry „papier, kamień, nożyce”. Załóżmy, że obecna wersja preferuje grę jako kamień w związku z tym kolejna wersja nauczy się, że żeby wygrać należy preferować papier. Kolejna w związku z tym będzie preferowała nożyczki a kolejna z powrotem kamień. W ten sposób stworzyła nam się pętla, z której algorytm nie będzie umiał wyjść, a co za tym idzie dalej uczyć się jak grać efektywniej.

Na początku z tym samym problemem zmierzyła się AlphaStar, ale został on rozwiązany poprzez stworzenie grupy agentów, tak zwaną Ligę. W Lidze AlphaStar nie grał tylko po to, by zwyciężyć, ale by pokazać błędy pozostałym „kolegom” z Ligi.

   Eksploracja to kolejne kluczowe wyzwanie w złożonych środowiskach, takich jak StarCraft. Każdy z agentów ma do dyspozycji 10 do 26 możliwych akcji na każdym etapie, a agent musi wykonać tysiące akcji, zanim dowie się, czy wygrał lub przegrał grę. Znalezienie zwycięskich strategii stanowi wyzwanie w tak ogromnej przestrzeni rozwiązań. Nawet przy silnym systemie gry własnej i zróżnicowanej lidze głównych i eksploatujących agentów nie byłoby prawie żadnej szansy na opracowanie przez system skutecznych strategii w tak złożonym środowisku bez wcześniejszej wiedzy. Nauczenie się ludzkich strategii i upewnienie się, że agenci nadal badają te strategie podczas gry, było kluczem do odblokowania wydajności AlphaStar.

Agenci AlphaStar grali anonimowo na serwerach Battle.net i byli ograniczeni tak jak ludzcy gracze, czyli między innymi widokiem z kamery i liczbą akcji jakie mogli wykonać w ciągu minuty. Większość graczy nie zorientowała się nawet, że gra z AI. Po analizie rozgrywek w oczy rzuciły się między innymi takie różnice, że AlphaStar nie optymalizowała ustawienia budynków oraz szybciej tworzyła jednostki, w danym momencie jeszcze zbędne. Dla każdej z trzech ras powstała osobna sieć neuronowa, która grała lepiej niż 99.8% graczy na tym serwerze.

   Tworzenie takich algorytmów nie jest tylko zabawą, ale pozwala poznać nam potencjał oraz ograniczenia algorytmów samouczących się, co pozwoli nam na lepsze wykorzystanie ich w przyszłości.

Więcej informacji na ten temat można znaleźć na stronie https://deepmind.com/blog/article/AlphaStar-Grandmaster-level-in-StarCraft-II-using-multi-agent-reinforcement-learning 

 


Ewa

Analityk/Architekt w Nexio Management

Powrót