Hogyan működik a hibrid játékos mesterséges intelligencia, és mik a előnyei?

Folytatva a korábban blogunkban felvetett témát a játékos mesterséges intelligenciáról beszéljünk arról, hogy mennyire alkalmazható a gépi tanulás, és milyen formában. Tapasztalatait és az ezek alapján hozott megoldásait megosztotta a mesterséges intelligencia szakértője az Apex Game Tools-nál, Jakob Rasmussen.

Hogyan működik a hibrid játékos mesterséges intelligencia, és mik a előnyei?

Az utóbbi években sok szó esett arról, hogy a gépi tanulás gyökeresen megváltoztatja a játékipart, hiszen ez a technológia már áttörést jelentett számos más digitális alkalmazásban. De nem szabad elfelejteni, hogy a játékok sokkal bonyolultabbak, mint egy autóvezető szimulátor, egy drón vezérlő program vagy a képen található arcok azonosításának algoritmusai.

Míg a játékipar továbbra is hagyományos mesterséges intelligencia módszereket használ, mint például a véges állapotú automaták, viselkedési fák és — az utóbbi időben egyre inkább — a hasznosság-alapú mesterséges intelligencia (Utility-based AI). Az ilyen AI-kat design-alapú (design-based) mesterséges intelligenciának vagy szakértői rendszereknek is nevezik. De egyre nyilvánvalóbbá válik — és elsősorban a játékosok számára —, hogy ezek a rendszerek egyre kevésbé alkalmasak igazán fejlett ellenfelek létrehozására, akik képesek utánozni a játékosok viselkedését. Különösen a kreatív megoldások terén. Ez magyarázható azzal, hogy a mesterséges intelligencia fejlesztői nem képesek figyelembe venni minden lehetséges taktikát és viselkedési stratégiát, és sikeresen megvalósítani azokat a hagyományos AI rendszerekben. A játékosok számára ez gyakran unalmassá és kiszámíthatóvá teszi a játékot egy olyan ellenféllel, akinek a viselkedése könnyen megjegyezhető.

Ez a sokféle okra vezethető vissza, de az egyik legfontosabb — az AI tanulási képtelensége. Ezért a mesterséges intelligencia ellenfelek létrehozásánál egyértelműen felvetődik a gépi tanulásra való áttérés, amely már sok más alkalmazásban jól bevált. De van néhány szempont, amit figyelembe kell venni. Így a játékos mesterséges intelligenciának képesnek kell lennie alkalmazkodni bármilyen helyzethez, és kihasználni az abból adódó lehetőségeket, valamint alkalmazkodnia kell az ellenfelek különböző játékstílusaihoz — élő játékosokhoz és más AI-hoz.

Hogyan állnak a dolgok most?

A brit DeepMind vállalat, amely mesterséges intelligencia fejlesztéssel foglalkozik, nemrégiben bemutatta, hogy az MI miként tud önállóan tanulni játékokat játszani, elsajátítva a szabályaikat és megtalálva a módját a játék teljesítésének vagy megnyerésének — igaz, egyelőre csak egyszerű játékok példáján, mint például a korai játékok. Atari — például a sakk és a japán logikai játék, a go. Az ezekre vonatkozó eredmények azt mutatják, hogy a mesterséges intelligencia képes megfelelő értékelést kialakítani a játéktéren zajló eseményekről. Ha az MI különböző ellenfelek játéksztyléjéhez való alkalmazkodásáról beszélünk, az eredmények eddig nem annyira meggyőzőek.

Napjainkban a neurális hálózatok már képesek a képek felismerésére és autók vezetésére. Ezek a funkciók azonban viszonylag egyszerű architektúrák segítségével is megvalósíthatók, még akkor is, ha a végső eredmények viszonylag mélyek és összetettek. Például a Facebook képfelismerő rendszere körülbelül 100 rétegből áll, ezért hasonlít a biológiai agyra — a neuronok közötti kapcsolatok mennyisége és bonyolultsága miatt, amelyek egy nagy hálózatot alkotnak.

Játék MI

A gépi tanulás alkalmazása a játékiparban számos korlátozással jár, amelyek miatt nem mindig lehet ezt a fajta architektúrát használni. Ezek közé tartoznak a rendszerspecifikációk, különösen a CPU-ra vonatkozó követelmények, amelyek meghatározzák a számítógép képességét a bonyolult játékszerkezet feldolgozására és a játék narratívájának és játékmenetének alkalmasságát.

Így tehát sok játék esetében nem áll rendelkezésre a komplex mesterséges intelligencia rendszerének megvalósításához szükséges hardver, és még egy szerverklaszter sem, mint például a Facebook képfelismerő hálózataihoz. Néha több mesterséges intelligenciának kell egyidejűleg működnie – nemcsak számítógépeken, hanem mobil eszközökön és más, kevésbé teljesítményes platformokon is. Mindez korlátozásokat jelent a gépi tanulás architektúrájának méretére és komplexitására, mivel az összes számítást 1 vagy 2 milliszekundum alatt kell elvégezni. Természetesen számos optimalizáló és terheléselosztó technológiát lehet használni a képkockák közötti terhelés elosztására, de a korlátozásoktól teljesen megszabadulni sem sikerül.

A játék bonyolultsága komoly problémákat okozhat a mesterséges intelligencia számára. Olyan játékokban, mint például a StarCraft II, a játékmechanika sokkal bonyolultabb, mint az Atari játékokban. Ezért ne várjunk el, hogy a megadott képkocka frekvenciájával és a már ismert rendszerkövetelményekkel a gépi tanulás képes lesz teljes mértékben megtanulni a játék állapotát és interakcióba lépni vele. Ahogy a játékos is gyakran ösztönösen cselekszik a játék korai szakaszaiban, úgy a mesterséges intelligenciának is meg kell tanulnia a játék állapotának elsődleges feldolgozását a további előrehaladás egyszerűsítése érdekében. Például az egyik legutolsó API a Starcraft II-hez a térképeken csak az a információ jelenik meg, amelyet a fejlesztők fontosnak tartottak: az egyik esetben a mesterséges intelligencia egy csökkentett nézetet használt az egész térképről, a másik esetben pedig úgy, mint a játékos, mozgathatta a kamerát, így a látása csak a képernyőn megjelenő információval korlátozódott.

Hogyan működik a hibrid játékos mesterséges intelligencia, és mik a előnyei?
A mesterséges intelligencia AlphaStar játékának vizualizációja a StarCraft II-ben: a képernyőképen a „nyers” észlelések, a neurális hálózat aktivitása, néhány lehetséges cselekvés és koordináták, valamint a mérkőzés várható kimenetele látható.

Ez különösen releváns szempont a játékok esetében. Gyakran a játékok mesterséges intelligenciájára nem alkalmazhatók a megszokott gépi tanulási problémamegoldási módszerek. Például általában nem kötelező nyernie vagy mindent megtennie a győzelemért, ahogy az az Atari játékok esetében volt. Gyakrabban az AI szerepe az, hogy izgalmasabbá tegye a játékot. Lehet, hogy szerepet kell játszania, és úgy kell viselkednie, ahogy a karaktere megköveteli. Így a játékos AI jobban összefonódik a játéktervezéssel és a történetmeséléssel, és rendelkeznie kell a megfelelő eszközökkel a viselkedésének irányításához a kitűzött cél eléréséhez. A tiszta gépi tanulás nem mindig megfelelő erre — ezért más megoldásokat kell keresni.

Gépi tanulás gyakorlati problémái

Ezek a problémák a gépi tanulás alapú mesterséges intelligencia fejlesztése során merültek fel a Unleash, ahol az AI-nak úgy kell viselkednie, mint a normál játékosok — azaz, ugyan olyan rugalmasnak és leleményesnek kell lennie.

A Starcraft II-höz hasonlóan az Unleashed sokkal összetettebb, mint a sakk és a go az Atari esetében. A játékmenet intuitív a megértéshez és könnyen elsajátítható, de ahhoz, hogy igazán sikeres legyen az ember, bizonyos meta-menedzsment készségekre van szükség. A játékosnak labirintusokat kell építenie, szörnyeket kell rászorítania az ellenfelekre, és stratégiát kell kidolgoznia a gazdaság, a támadás és a védelmi építkezések körül a játék során. Ehhez blöffölni és előre meg kell terveznie mások lépéseit, valamint kezelnie kell a pszichológiai meta-megközelítést — ez az, ami a pókert többé teszi, mint egy egyszerű statisztikai játék.

Hogyan működik a hibrid játékos mesterséges intelligencia, és mik a előnyei?
Képernyőkép az Unleashedből

A legmegfelelőbb architektúra keresése során először a játékba gyakorlatilag változatlan formában beépítették az olyan technológiákat, mint a neuroevolúció és a mélytanulás, és megvizsgálták, hogyan teljesítenek nyers formájukban, mint AI ellenfél.

Ez borzalmas volt.

Gyorsan nyilvánvalóvá vált, hogy az Unleashedben sok globális problémát kell megoldani, amelyekre nehéz gépi tanulást alkalmazni.

Az egyik dolog a hatékony labirintus építése. Akárcsak sok toronyvédős játékban, itt a játékosoknak labirintust kell építeniük a torony köré, amin keresztül a szörnyek áthatolnak. Őket pedig el kell távolítani a labirintusba elhelyezett fegyverek segítségével. Ideálisan a labirintusnak minél hosszabbnak kell lennie, hogy elegendő kárt tudjunk okozni a szörnyeknek, és ne engedjük őket elérni a tornyot. Néhány fegyverrel szemben a szörnyek sebezhetőbbek, mint másokkal, ezért érdemes azokat a labirintusban előbb elhelyezni, mint a többit. Az Unleash sajátossága, hogy nem létezik tökéletes labirintus: annyiféle szörny van a játékban, hogy valamilyen módon mindig akad olyan, aki akadálytalanul áthatol a labirintus egy részén. Bármely labirintust alkalmazkodni kell az új szörnyekhez, amelyeket más játékosok indítanak. Így nemcsak arra volt szükség, hogy az mesterséges intelligenciát megtanítsuk labirintusokat építeni - hanem arra is, hogy hatékony labirintusokat hozzon létre különböző forgatókönyvekhez, amelyekkel a játék korai és későbbi verzióiban is találkozhatunk.

Az MI-nek azt is meg kellett tanulnia, hogy kiszámolja, milyen szörnyek fognak megjelenni a labirintusban. Ez egyfajta fordított probléma a labirintus építésével szemben. Akárcsak sok más játékban, az Unleash-ben nem elegendő pusztán felhalmozni a sereget és küldeni azt az ellenséghez: szükség van a bejárat elhárításának lesésére is, és a sereget úgy kell struktúrálni, hogy a lehető leghatékonyabban sújtsa le az ellenség gyenge pontjait. A szörnyek hadseregének úgy kell kölcsönhatásba lépnie egymással, hogy a lehető legjobban átjussanak a labirintuson. Néha a szörnyeket meghatározott sorrendben kell kiadni, a funkcióik és szerepük függvényében. Ez is növeli a különböző kombinációk számát.

Végül, mivel a játékosnak egyszerre kell labirintusokat építenie és szörnyhadakat gyűjtenie, az AI-nak is meg kell tanulnia egyensúlyozni a támadás és védelem között. Fontos figyelembe venni, hogy minél nagyobb hadsereget épít a játékos, és minél több labirintust épít, annál több forrásra van szüksége ehhez. Ezért a támadási stratégia helyes kiválasztása rendkívül fontos a játék folyamatában és a győzelem elérésében egyaránt. Az AI-nak úgy kell kezelnem az erőforrásokat, hogy megerősített szörnyhadat hozzon létre, anélkül, hogy veszélybe sodorná a labirintus erejét. Maximalizálni a szörnyekbe való befektetést gazdaságilag kedvező lehet, de ez növeli a kockázatot, hogy a szörnyek elfoglalják a vetélytárs labirintusát. Ha viszont a labirintus védelmének megerősítésére tett fogadásokra támaszkodik, az súlyosan befolyásolhatja a gazdaságát. Ezen forgatókönyvek egyike sem vezet győzelemhez. Így az Unleashed-ben a problémák optimalizálása szélesebb körű, mint a sakk vagy a Starcraft esetében, és megköveteli azt, hogy valamit feláldozzon, és előre számoljon a nyereségével több lépésre.

Ahogy az AI-t oktatják, számos korábban figyelembe nem vett probléma merül fel. Kezdetben az AI gyakran elérte azt a fejlettségi szintet, ahol kezdte megérteni a játék egyes aspektusait - például, hogy melyik fegyver hatékony a labirintusban bizonyos típusú szörnyek ellen, vagy hogy mely szörnyek teljesítenek a legjobban a labirintus adott részein. De a tanulás lassú volt, és monoton stratégiák kidolgozásához vezetett.

A párhuzamos megközelítések szükségessége

Miközben az MI, amely gépi tanulásra épül, fejlődése lassú és nem különösebben sikeres volt, más tesztelési és fejlesztési szakaszokhoz jobb MI-re és megbízhatóbb versenytárs MI-re volt szükség. Az ő megvalósításukhoz Utility architektúrát használtak, amellyel speciális MI-ket lehetett létrehozni a játék tesztelésére és minőségellenőrzésére, belső játéktesztekkel, valamint a fegyverek és szörnyek kiegyensúlyozásával, valamint konkrét labirintusok és szörnyek létrehozásával. Az Unleash fejlesztése során azonban a készítők maguk is finomították készségeiket, és úgy döntöttek, hogy a megszerzett tudást a bonyolultabb Utility MIk létrehozására használják. Nyilvánvalóvá vált, hogy sok, a gépi tanulásra épülő mesterséges intelligencia rendszereknél felmerülő probléma könnyen megoldható Utility rendszerek segítségével, amelyekben beépített tudás áll rendelkezésre, és fordítva is.

Például hatékonyabb labirintusokat Utility MIk segítségével lehet építeni, amelyek tudásbázisra épülnek, amelyet belső tesztek eredményei alapján állítottak össze. Könnyen leírható és programozható a labirintus és a benne elhelyezett fegyverek elhelyezésének algoritmusa úgy, ahogyan az egy élő játékos számára a legegyszerűbb védekezni a konkrét szörnyekkel szemben. A szörnyhadsereg létrehozása az ellenfél tudásbázisának ismeretében azonban komoly kihívást jelentett ezeknek az MIknek, mivel a figyelembe veendő különféle feltételek és kombinációk száma a képzelet határait súrolta. Ezzel az architektúrával a megfelelő szörnykészletek keresése végtelen időt venne igénybe. Így adott korlátozások mellett a mélytanulás ideális megoldás lenne erre a feladatra.

Hibrid MI létrehozása

A hybrid system was developed by combining two approaches: machine learning and Utility-based methods. The idea was to use machine learning where a vast number of game states and combinations needed to be processed or where learning was required. For other tasks, where it was more beneficial to rely on the personal experience of developers, Utility systems were employed. This approach also allows for better control over AI behavior to ensure a more precise alignment with the intended objectives. For example, Utility AI can be used to maintain balance between offense and defense, thus creating varying levels of aggression, or different maze configurations for various AIs to shape their unique playstyles. It is also possible to assign specific value systems to neural networks to develop different preferences for selecting aerial or ground monsters, thereby adding individuality to individual AIs. There are many other options for implementing design solutions, all highlighting the strengths of either type of AI architecture.

The hybrid approach also addressed another question that arose for the development team during the creation of the AI for Unleash: whether to use a single global deep learning neural network to accommodate all inputs and outputs, or to design the AI with a hierarchical structure.

Hogyan működik a hibrid játékos mesterséges intelligencia, és mik a előnyei?
The two architectures used in Unleash: on the left is a large deep neural network with its own unified architecture, and on the right is a hierarchical system where each network has its own specific task.

Mégis szeretnénk egy közös megközelítést kialakítani a mesterséges intelligencia rendszeréhez, amelybe a fejlesztők nem építették bele a saját tapasztalataikat. Ám ahogy egyre több belépés történt a játékba, a neurális hálózat egyre nagyobbra nőtt. Ugyanakkor nem lehetett elkülöníteni az AI tanítását, és csak egy dologra képezni őket: védelemre vagy támadásra. Így aggodalmak merültek fel, hogy a közvetlenebb megközelítés jelentős számítási igényekhez vezetne.

Itt merült fel a hierarchikus architektúra ötlete, amelyben minden konkrét feladatot egy specializált neurális hálózat hajt végre. Ennek megfelelően a mesterséges intelligenciának először egy döntést kell hoznia az erőforrások támadásra (a szörnyhad nagyobbítása) és védelemre (labirintus építése) való elosztásáról. Amint ezt megteszi, a választásának megfelelően a következő réteghez lép, és hozzáfér a játék szükséges állapotához, majd részletes döntéseket hoz arról, hogy milyen szörnyeket válasszon és milyen fegyvert állítson be a labirintusban.

Következtetés és további lépések

A hibrid megközelítés, amely az Utility AI-t és az abban foglalt gépi tanulási hálózatokat tartalmazza, hierarchikus architektúrára emlékeztet. Ez pedig hasonlít a biológiai agyra, ahol különböző idegközpontok mindegyike saját feladatáért felelős.

Jelenleg az Unleash-ben lévő ellenséges AI-t nagyon nehéz legyőzni: képes alkalmazkodni a játék bármely helyzetéhez, de a fejlesztők bármikor változtathatják a beállításaikat. A cikk írója szerint idővel a hibrid megközelítés szélesebb körben elterjedhet és sok más játékban is megjelenhet. Talán egyszer sikerül tiszta formában a gépi tanuláson alapuló mesterséges intelligenciát bevezetni a játék folyamatába. De nyilvánvaló, hogy ez még időt igényel. Jelenleg a cél egy olyan architektúra megtalálása, amely önállóan alkalmazkodik a felmerülő feladatokhoz, és megtalálja az optimális megoldásokat.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster