Jak działa hybrydowy AI w grach i jakie ma zalety

W kontynuacji kiedyś poruszonego w naszym blogu tematu sztucznej inteligencji w grach porozmawiamy o tym, jak zastosować w tym przypadku uczenie maszynowe i w jakiej formie. Swoim doświadczeniem i wybranymi na jego podstawie rozwiązaniami podzielił się ekspert w dziedzinie AI w Apex Game Tools, Jakob Rasmussen.

Jak działa hybrydowy AI w grach i jakie ma zalety

W ostatnich latach dużo mówi się o tym, że uczenie maszynowe radykalnie zmieni branżę gier, gdyż ta technologia już stała się przełomowa w wielu innych aplikacjach cyfrowych. Jednak nie należy zapominać, że gry są znacznie bardziej skomplikowane, niż symulator jazdy samochodem, program do sterowania dronem czy algorytmy rozpoznawania twarzy na zdjęciach.

Do tej pory w branży gier wciąż stosowane są tradycyjne metody AI, takie jak metoda automatów skończonych, drzewa zachowań i — coraz częściej — AI oparte na użyteczności (systemy oparte na użyteczności). Takie AI nazywane są również design-based (sztuczną inteligencją opartą na designie) lub systemami ekspertowymi. Jednak staje się coraz bardziej oczywiste — i w pierwszej kolejności dla graczy — że te systemy są coraz mniej odpowiednie do tworzenia naprawdę zaawansowanych przeciwników, którzy mogliby naśladować zachowanie graczy. Szczególnie dotyczy to kreatywnych rozwiązań. Można to wyjaśnić tym, że twórcy sztucznej inteligencji nie są w stanie uwzględnić wszystkich możliwych taktyk i strategii zachowań oraz skutecznie je wdrożyć w tradycyjnych systemach AI. Dla graczy często oznacza to, że gra z przeciwnikiem, którego linia zachowania łatwo zapada w pamięć, staje się nudna i przewidywalna.

Do takiego wyniku prowadzi wiele powodów, ale jednym z głównych jest niezdolność AI do uczenia się. Dlatego też przy tworzeniu sztucznej inteligencji przeciwnika samo przez się nasuwa się decyzja o przejściu do uczenia maszynowego, które doskonale sprawdziło się w wielu innych aplikacjach. Jednak istnieje kilka kwestii, które warto wziąć pod uwagę. Tak więc, AI w grach powinno umieć dostosować się do każdej sytuacji i skorzystać z korzyści, jakie ona mu daje, a także adaptować się do różnych stylów gry przeciwników — zarówno żywych graczy, jak i innych AI.

Jak wygląda sytuacja obecnie

Brytyjska firma DeepMind, zajmująca się rozwojem sztucznej inteligencji, niedawno pokazała, w jaki sposób SI może samodzielnie uczyć się grać w gry, przyswajać ich zasady oraz znajdować sposoby na przejście gry lub wygranie w nią — na razie jednak tylko na przykładzie prostych gier, takich jak wczesne gry. Atari — na przykład szachy i japońska gra logiczna go. Wyniki uzyskane w tych przypadkach pokazują, że sztuczna inteligencja jest w stanie stworzyć adekwatną ocenę sytuacji na planszy. Jeśli chodzi o adaptację SI do różnych stylów gry przeciwnika, rezultaty nadal nie są tak imponujące.

W dzisiejszych czasach sieci neuronowe już nauczyły się rozpoznawać obrazy i prowadzić samochody. Jednak te funkcje można zrealizować również przy użyciu stosunkowo prostych architektur, nawet jeżeli w rezultacie będą one dość głębokie i rozbudowane. Na przykład, SI do rozpoznawania obrazów na Facebooku ma głębokość około 100 warstw, co sprawia, że przypomina biologiczny mózg — pod względem liczby i złożoności powiązań między neuronami, które tworzą jedną dużą sieć.

Sztuczna inteligencja w grach

Jeśli chodzi o zastosowanie uczenia maszynowego w przemyśle gier, istnieje szereg ograniczeń, które czasami uniemożliwiają wykorzystanie tego typu architektury. Należą do nich wymagania systemowe, szczególnie te dotyczące CPU, które określają zdolność komputera do przetwarzania złożonej struktury gry oraz jej przydatność do opowiadania historii i rozgrywki.

Oznacza to, że w wielu grach wdrożenie złożonego systemu sztucznej inteligencji napotyka na trudności związane z dostępnością niezbędnego sprzętu, a tym bardziej klastrów serwerów, które istnieją na przykład dla sieci rozpoznawania obrazów w Facebooku. Czasami równocześnie muszą działać różne systemy AI — nie tylko na komputerach, ale także na urządzeniach mobilnych i na innych mniej wydajnych platformach. Wszystko to nakłada ograniczenia na rozmiar i złożoność architektury uczenia maszynowego, ponieważ wszystkie obliczenia muszą być realizowane z czasem klatki wynoszącym od 1 do 2 milisekund. Oczywiście można wykorzystać różne technologie optymalizacji i rozkładu obciążenia pomiędzy klatkami, jednak wciąż nie udaje się całkowicie pozbyć tych ograniczeń.

Poważne problemy dla AI mogą rodzić się złożonością gry. W grach takich jak StarCraft II mechanika rozgrywki jest znacznie bardziej skomplikowana niż w grach z czasów Atari. Dlatego nie powinno się oczekiwać, że przy danej liczbie klatek na sekundę i znanych wymaganiach systemowych uczenie maszynowe poradzi sobie z nauczeniem się całego stanu gry i będzie mogło wchodzić z nim w interakcje. Tak jak gracz często w początkowych etapach gry kieruje się intuicją, tak AI musi nauczyć się podstawowego przetwarzania stanu gry, aby ułatwić dalszą rozgrywkę. API dla StarCraft II na mapach wyświetlana jest tylko ta informacja, którą twórcy uznali za ważną: w jednym przypadku AI korzystało ze zredukowanego widoku całego terenu mapy, w drugim — podobnie jak gracz, mogło przesuwać kamerę, a wtedy jego postrzeganie ograniczało się do informacji na ekranie.

Jak działa hybrydowy AI w grach i jakie ma zalety
Wizualizacja gry AI AlphaStar przeciwko graczowi w StarCraft II: na zrzucie ekranu przedstawione są "surowe" początkowe obserwacje, aktywność sieci neuronowej, niektóre z jej potencjalnych działań oraz współrzędne, a także przewidywany wynik meczu.

To szczególnie istotny aspekt w przypadku gier. Często metody rozwiązywania problemów uczenia maszynowego nie mają zastosowania w kontekście sztucznej inteligencji w grach. Na przykład, zazwyczaj nie musi on wygrywać ani robić wszystkiego, co możliwe, by zwyciężyć, jak to miało miejsce w przypadku gier Atari. Częściej rola AI polega na uczynieniu rozgrywki bardziej fascynującą. Może być wymagane, aby odgrywał rolę i zachowywał się tak, jak sugeruje charakter postaci, za którą jest odpowiedzialny. W ten sposób gierkowe AI jest bardziej związane z projektowaniem gier i opowiadaniem historii, i musi posiadać odpowiednie narzędzia do zarządzania swoim zachowaniem w celu osiągnięcia zamierzonego celu. Czyste uczenie maszynowe nie zawsze się do tego nadaje - dlatego należy szukać czegoś innego.

Praktyczne problemy uczenia maszynowego

Te problemy pojawiły się przy tworzeniu sztucznej inteligencji opartej na uczeniu maszynowym dla Unleash, gdzie AI musi zachowywać się jak zwykli gracze - to znaczy, być równie elastycznymi i pomysłowymi.

Tak jak w Starcraft II, Unleashed jest znacznie bardziej skomplikowane niż szachy czy go w Atari. Rozgrywka jest intuicyjna i łatwo się w niej poruszać, ale aby naprawdę odnieść sukces, potrzebne są określone umiejętności zarządzania metą. Gracz musi budować labirynty, nakłaniać potwory do ataku na przeciwników oraz wymyślać swoją strategię dotyczącą ekonomii, ataku i obrony budowli przez całą grę. Wymaga to od niego blefowania i przewidywania ruchów innych graczy, a także zarządzania psychologiczną metą — to właśnie ona sprawia, że poker to coś więcej niż tylko gra statystyczna.

Jak działa hybrydowy AI w grach i jakie ma zalety
Zrzut ekranu z Unleashed

W poszukiwaniu najbardziej odpowiedniej architektury dla tych celów, najpierw wprowadzono do gry praktycznie w niezmienionej formie technologie takie jak neuroewolucja i uczenie głębokie, a następnie sprawdzono, jak zaprezentują się w surowej formie jako AI przeciwnika.

To było straszne.

Szybko stało się jasne, że w Unleashed należy rozwiązać wiele globalnych problemów, do których trudno dostosować uczenie maszynowe.

Jednym z nich jest budowanie skutecznego labiryntu. Tak jak w wielu grach, których celem jest obrona wieży, tutaj gracze muszą wokół niej stworzyć labirynt, przez który będą przedostawały się potwory. Te z kolei należy wyeliminować za pomocą broni rozmieszczonej w labiryncie. W idealnym przypadku labirynt powinien być jak najdłuższy, aby zdążyć zadać potworom wystarczającą ilość obrażeń i nie dopuścić ich do wieży. Niektóre rodzaje broni są bardziej skuteczne przeciwko potworom niż inne, dlatego dla większej efektywności warto umieścić je w labiryncie wcześniej niż inne. Cechą Unleash jest to, że nie istnieje idealny labirynt: w grze jest tyle rodzajów potworów, że tak czy inaczej, któryś z nich przejdzie bez przeszkód przez jakiś fragment labiryntu. Każdy labirynt należy dostosować do nowych potworów wprowadzanych przez innych graczy. W ten sposób trzeba było nie tylko nauczyć sztucznej inteligencji budować labirynty — trzeba było ją nauczyć tworzyć skuteczne labirynty dla różnych scenariuszy, z jakimi można się spotkać zarówno w wczesnej, jak i późnej wersji gry.

AI musiał też nauczyć się przewidywać, jakie potwory pojawią się w labiryncie. To swego rodzaju odwrotna problematyka względem budowania labiryntu. Jak w wielu innych grach, w Unleash nie wystarczy po prostu zbudować armię i wysłać ją w stronę wroga: konieczne jest również szpiegowanie wrogiej obrony i tak zorganizowanie wojsk, aby jak najskuteczniej uderzyć w newralgiczne punkty przeciwnika. Armia potworów powinna współdziałać ze sobą w taki sposób, aby najskuteczniej przejść przez labirynt. Czasami konieczne jest także wypuszczenie potworów w określonej kolejności w zależności od ich funkcji i roli. To również zwiększa liczbę różnych kombinacji.

W końcu, ponieważ gracz musi zarówno tworzyć labirynty, jak i gromadzić armię potworów, AI również musi nauczyć się znajdować równowagę między atakiem a obroną. Należy również pamiętać, że im większa armia potworów i bardziej rozbudowany labirynt, tym więcej zasobów gracz potrzebuje. Dlatego właściwa strategia ataku jest niezwykle ważna zarówno dla gospodarki w trakcie gry, jak i dla zwycięstwa w niej. Aby zapewnić konkurencyjność, AI musi umieć zarządzać zasobami tak, aby stworzyć potężną armię potworów, nie narażając przy tym siły labiryntu. Inwestowanie maksymalnie w potwory może być korzystne ekonomicznie, ale zwiększa ryzyko przejęcia labiryntu przez potwory przeciwnika. Jeśli postawisz na umocnienie obrony labiryntu, może to osłabić twoją gospodarkę. Żaden z tych scenariuszy nie prowadzi do zwycięstwa. W ten sposób problem optymalizacji w Unleashed okazuje się bardziej rozbudowany niż w przypadku szachów czy Starcrafta i obejmuje konieczność poświęcenia czegoś oraz przewidywania swoich korzyści na kilka ruchów do przodu.

W miarę jak sztuczna inteligencja się rozwija, pojawia się wiele wcześniej nieprzewidzianych problemów. Na początku AI często osiągało pewien poziom rozwoju, na którym zaczynało rozumieć niektóre aspekty gry — na przykład, która broń w labiryncie jest skuteczna przeciwko konkretnym typom potworów lub które potwory najlepiej radzą sobie w określonych częściach labiryntu. Jednak nauka była powolna i prowadziła do opracowania monotematycznych strategii.

Potrzeba równoległych podejść

Podczas gdy rozwój AI oparty na uczeniu maszynowym przebiegał powoli i niezbyt skutecznie, do innych etapów testowania i rozwoju potrzebne były lepsze AI oraz bardziej niezawodne AI konkurencyjne. Do ich realizacji wykorzystano architekturę Utility, która umożliwia tworzenie specjalnych AI do testowania i weryfikacji jakości gry, testów wewnątrzgrywowych oraz balansowania broni i potworów, a także do tworzenia konkretnych labiryntów i potworów. Jednak w trakcie rozwoju Unleash twórcy sami doskonalili swoje umiejętności w jej przechodzeniu, a następnie postanowili wykorzystać zdobytą wiedzę do stworzenia bardziej skomplikowanego AI Utility. Tak stało się jasne, że wiele problemów występujących w systemach sztucznej inteligencji opartych na uczeniu maszynowym można łatwo rozwiązać za pomocą systemów Utility, wykorzystujących wbudowaną wiedzę, i odwrotnie.

Na przykład, bardziej efektywne labirynty lepiej budować za pomocą AI Utility, bazujących na bazach wiedzy zbudowanych na podstawie wyników wewnętrznych testów. Łatwo można opisać i zaprogramować algorytm budowy labiryntu oraz rozmieszczenia w nim broni w taki sposób, aby łatwiej było bronić wieżę przed konkretnymi potworami przed żywym graczem. Natomiast tworzenie armii potworów na podstawie wiedzy o bazie przeciwnika stanowiło trudne zadanie dla takich AI, ponieważ liczba różnych warunków i kombinacji, które należało wziąć pod uwagę, przytłaczała wyobraźnię. Przy takim rodzaju architektury AI wyszukiwanie odpowiednich zestawów potworów zajmowałoby nieskończoność czasu. W takim przypadku, przy zadanych ograniczeniach, głębokie uczenie byłoby idealnym rozwiązaniem dla tego zadania.

Tworzenie hybrydowych AI

Postanowiono połączyć dwa podejścia, tworząc w ten sposób hybrydowy system sztucznej inteligencji oparty na uczeniu maszynowym i Utility. Idea polegała na tym, że tam, gdzie konieczne było przetworzenie ogromnej liczby kombinacji i stanów gry, lub gdzie wymagano nauki, stosowano uczenie maszynowe. W innych zadaniach, gdzie lepiej polegać na osobistym doświadczeniu programistów, wykorzystano systemy Utility. Zaletą tego podejścia jest również to, że w razie potrzeby można lepiej kontrolować zachowanie AI, aby zapewnić jego bardziej dokładne dążenie do określonego celu. Na przykład, można wykorzystać Utility AI do zapewnienia równowagi między atakiem a obroną, tworząc w ten sposób różne poziomy agresji, lub stworzyć różne konfiguracje labiryntów dla różnych AI, aby nadać im indywidualne style gry. Również można zdefiniować dla sieci neuronowych określone systemy wartości, aby kształtować różne preferencje przy doborze powietrznych lub lądowych potworów, co również doda określonym AI osobowości. Jest jeszcze wiele innych opcji do realizacji projektowych, które podkreślają mocne strony danego rodzaju architektury AI.

Hybrydowe podejście było również odpowiedzią na inne pytanie, które stanęło przed zespołem programistów podczas opracowywania sztucznej inteligencji dla Unleash: czy warto zastosować jedną globalną głęboką sieć neuronową opartą na uczeniu maszynowym, aby uwzględnić wszystkie dane wejściowe i wyjściowe, czy lepiej zaprojektować AI w hierarchicznej strukturze?

Jak działa hybrydowy AI w grach i jakie ma zalety
Dwie architektury użyte w Unleash: po lewej stronie — duża głęboka sieć neuronowa z własną unikalną architekturą, po prawej — system hierarchiczny, w którym każda sieć ma swoje zadanie.

Niemniej jednak chcielibyśmy stworzyć wspólne podejście do systemu sztucznej inteligencji, w którego architekturze deweloperzy nie wbudowaliby własnego doświadczenia. Jednak im więcej wejść do gry miało miejsce, tym bardziej rozrastała się sieć neuronowa. Nie można było przy tym oddzielić uczenia się AI i uczyć ich tylko jednego: albo obrony, albo ataku. Powstały obawy, że bardziej ogólne podejście prowadziłoby do znacznego zwiększenia liczby obliczeń.

Stąd powstał pomysł stworzenia hierarchicznej architektury, w której każdą konkretną funkcję realizowałaby wyspecjalizowana sieć neuronowa. Zgodnie z tym pomysłem, najpierw sztuczna inteligencja musi podjąć decyzję o przydzieleniu zasobów na atak (zwiększenie armii potworów) i obronę (budowa labiryntu). Gdy tylko to zrobi, przechodzi do następnej warstwy zgodnie ze swoim wyborem i uzyskuje dostęp do odpowiedniej części stanu gry, po czym podejmuje szczegółowe decyzje dotyczące tego, których potworów wybrać i jakie uzbrojenie ustawić w labiryncie.

Podsumowanie i następne kroki

W przypadku hybrydowego podejścia, Utility AI z włączonymi w niego sieciami opartymi na uczeniu maszynowym przypomina hierarchiczną architekturę. Z kolei ona przypomina biologiczny mózg, w którym różne centra nerwowe odpowiadają za określone zadania.

Obecnie AI przeciwnika w Unleash jest bardzo trudne do pokonania: potrafią dostosować się do każdej sytuacji w grze, ale deweloperzy mogą zmieniać ich ustawienia według własnego uznania. Według autora artykułu, w miarę upływu czasu hybrydowe podejście powinno zyskać większą popularność i pojawić się w wielu innych grach. Być może pewnego dnia uda się wprowadzić do rozgrywki czystą sztuczną inteligencję opartą na uczeniu maszynowym. Jednak oczywiście, to jeszcze wymaga czasu. Na razie celem jest znalezienie takiej architektury, która sama dostosuje się do stojących przed nią zadań i znajdzie optymalne sposoby ich rozwiązania.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster