Hur hybrid gaming AI fungerar och dess fördelar

I fortsatt av en tidligere snakket tema i bloggen vÄr spillkunstig intelligens skal vi snakke om hvor relevant maskinlÊring er for dette, og i hvilken form. Om sine erfaringer og de lÞsningene valgt pÄ dette grunnlaget delte ekspert pÄ AI-spÞrsmÄl i Apex Game Tools, Jakob Rasmussen.

Hur hybrid gaming AI fungerar och dess fördelar

I de senere Är har det vÊrt mye diskusjon om at maskinlÊring vil endre spillindustrien radikalt, ettersom denne teknologien allerede har blitt banebrytende innen mange andre digitale applikasjoner. Men man mÄ ikke glemme at spill er langt mer komplekse enn en bilkjÞringssimulator, dronestyringsprogrammer eller ansiktsgjenkjenningsalgoritmer.

Fremdeles i spillindustrien brukes tradisjonelle metoder for AI, som metoden med endelige automater, atferdstrÊr og - i Þkende grad - nyttebasert AI (systemer basert pÄ nytte). Denne AI kalles ogsÄ design-basert (kunstnerisk designintelligens) eller ekspertverktÞy. Men det blir stadig mer Äpenbart - og fÞrst og fremst for spillerne - at disse systemene blir mindre egnet til Ä skape virkelig avanserte motstandere som kan imitere spillernes atferd. Dette gjelder spesielt kreative lÞsninger. Dette kan forklares med at utviklere av kunstig intelligens ikke klarer Ä ta hensyn til alle mulige taktikker og strategier for atferd og implementere dem vellykket i tradisjonelle AI-systemer. For spillere fÞrer dette ofte til at det blir kjedelig og forutsigbart Ä spille mot en motstander med en atferdslinje som er lett Ä huske.

Et slikt resultat kommer av mange grunner, men en av hovedÄrsakene er AI sin manglende evne til Ä lÊre. Derfor kommer man, nÄr man lager kunstig intelligens for motstanderen, automatisk til Ä tenke pÄ overgangen til maskinlÊring som har bevist seg vellykket i mange andre anvendelser. Men det er flere spesifikasjoner man bÞr ta hensyn til. Spill-AI mÄ kunne tilpasse seg enhver situasjon og bruke fordelene den gir, samt tilpasse seg forskjellige spillestiler hos motstandere - bÄde levende spillere og andre AI.

Hur lÀget ser ut nu

Det brittiska företaget DeepMind, som arbetar med utvecklingen av artificiell intelligens, har nyligen visat hur AI kan lĂ€ra sig sjĂ€lv att spela spel, förstĂ„ reglerna och hitta sĂ€tt att genomföra spelet eller vinna — Ă„tminstone hittills bara med enkla spel som tidiga spel. Atari — till exempel schack och det japanska logikspelet go. Resultaten som erhölls för dessa visar att artificiell intelligens kan bilda en adekvat bedömning av vad som hĂ€nder pĂ„ spelplanen. NĂ€r det gĂ€ller AI:s anpassning till olika motstĂ„ndarstilar Ă€r resultaten dock inte sĂ€rskilt imponerande.

Nu för tiden har neurala nĂ€tverk redan lĂ€rt sig att kĂ€nna igen bilder och köra bilar. Men dessa funktioner kan ocksĂ„ implementeras med relativt enkla arkitekturer, Ă€ven om de i slutĂ€ndan kan visa sig ganska djupa och omfattande. Till exempel har AI för bildigenkĂ€nning pĂ„ Facebook en djup av cirka 100 lager, vilket gör att den pĂ„minner om en biologisk hjĂ€rna — i termer av antalet och komplexiteten av kopplingar mellan neuroner som bildar ett stort nĂ€tverk.

Spel-AI

NÀr det gÀller tillÀmpningen av maskininlÀrning inom spelindustrin finns det en rad begrÀnsningar som gör det svÄrt att anvÀnda denna typ av arkitektur. Dessa inkluderar systemkrav, sÀrskilt vad gÀller CPU, som avgör datorns förmÄga att hantera komplexa spelstrukturer och lÀmpligheten för spelberÀttande och gameplay.

Det visar sig att det i mĂ„nga spel inte finns möjlighet att organisera den nödvĂ€ndiga hĂ„rdvaran för att implementera ett komplext artificiellt intelligenssystem, och Ă€nnu mindre en kluster av servrar som finns, till exempel för bildigenkĂ€nningsnĂ€tverk pĂ„ Facebook. Ibland mĂ„ste flera AI till och med fungera samtidigt — inte bara pĂ„ datorer utan ocksĂ„ pĂ„ mobila enheter och andra mindre kraftfulla plattformar. Allt detta lĂ€gger begrĂ€nsningar pĂ„ storleken och komplexiteten hos maskininlĂ€rningsarkitekturen, eftersom alla berĂ€kningar dessutom mĂ„ste utföras inom en tidsram pĂ„ cirka 1 eller 2 millisekunder. SjĂ€lvklart kan olika optimeringsteknologier och belastningsfördelning mellan bildrutor anvĂ€ndas, men det gĂ„r fortfarande inte att helt bli av med dessa begrĂ€nsningar.

Komplexiteten i spelet kan ge allvarliga problem för AI. I spel som exempelvis StarCraft II Ă€r spelmekaniken mycket mer komplex Ă€n i Atari-spel. DĂ€rför bör man inte förvĂ€nta sig att maskininlĂ€rning, givet en viss bildfrekvens och kĂ€nda systemkrav, nödvĂ€ndigtvis kommer att klara av att förstĂ„ hela spelets tillstĂ„nd och interagera med det. Precis som en spelare ofta styrs av intuitionen i de tidiga fasarna av spelet, mĂ„ste AI ocksĂ„ lĂ€ra sig att initialt bearbeta spelstatusen för att förenkla den fortsatta progressionen. Till exempel, i en av de senaste API för Starcraft II pĂ„ kartorna visas endast den information som utvecklarna ansĂ„g vara viktig: i ett fall anvĂ€nde AI en nedskĂ€rd vy av hela kartterritoriet, i det andra — likt spelaren, kunde den flytta kameran, och dess uppfattning var dĂ„ begrĂ€nsad till informationen pĂ„ skĂ€rmen.

Hur hybrid gaming AI fungerar och dess fördelar
Visualisering av AI:n AlphaStar mot spelaren i StarCraft II: pÄ skÀrmdumpen visas "rÄ" ursprungliga observationer, aktiviteten hos det neurala nÀtverket, nÄgra av dess möjliga handlingar och koordinater, samt den förvÀntade utgÄngen av matchen.

Detta Ă€r en sĂ€rskilt relevant aspekt nĂ€r det gĂ€ller spel. Vanligtvis Ă€r traditionella metoder för maskininlĂ€rning inte tillĂ€mpliga pĂ„ spelens artificiella intelligens. Till exempel behöver den oftast inte vinna eller göra allt som krĂ€vs för att segra, som var fallet med Atari-spelen. Ofta bestĂ„r AI:ns roll av att göra spelet mer engagerande. Den kan behöva spela en roll och bete sig som karaktĂ€ren den representerar. SĂ„ledes Ă€r spel-AI mer kopplade till speldesign och berĂ€ttande och mĂ„ste ha de verktyg som krĂ€vs för att styra sitt beteende mot att nĂ„ ett specificerat mĂ„l. Ren maskininlĂ€rning Ă€r inte alltid tillrĂ€cklig för detta — vilket innebĂ€r att vi mĂ„ste leta efter nĂ„got annat.

Praktiska problem med maskininlÀrning

Dessa problem uppstod vid utvecklingen av artificiell intelligens baserad pĂ„ maskininlĂ€rning för Unleash, dĂ€r AI mĂ„ste bete sig som vanliga spelare — det vill sĂ€ga vara lika flexibla och fyndiga.

Precis som Starcraft II Ă€r Unleashed mycket mer komplex Ă€n schack och go för Atari. Spelet Ă€r intuitivt och lĂ€tt att förstĂ„, men för att verkligen lyckas krĂ€vs det specifika fĂ€rdigheter i meta-hantering. Spelaren mĂ„ste bygga labyrinter, skicka monster mot fiender och tĂ€nka igenom sin strategi kring ekonomi, anfall och försvar av byggnader under hela spelets gĂ„ng. För detta mĂ„ste hen bluffa och förutsĂ€ga motstĂ„ndarens drag samt hantera den psykologiska metan — det Ă€r just detta som gör poker till nĂ„got mer Ă€n bara ett statistiskt spel.

Hur hybrid gaming AI fungerar och dess fördelar
SkÀrmdump frÄn Unleashed

I jakten pÄ den mest lÀmpliga arkitekturen för dessa ÀndamÄl implementerades sÄdana teknologier som neuroevolution och djupinlÀrning i spelet nÀstan oförÀndrat och testades för att se hur de presterade i sitt rÄa skick som motstÄende AI.

Det var fruktansvÀrt.

Det blev snabbt uppenbart att Unleashed behövde lösa mÄnga globala problem som Àr svÄra att anpassa maskininlÀrning till.

En av dem Àr att bygga en effektiv labyrint. Precis som i mÄnga tornförsvarsspel mÄste spelarna hÀr skapa en labyrint runt tornet för att stoppa monster som försöker ta sig igenom. Spelarna mÄste eliminera dem med hjÀlp av vapen placerade runt om i labyrinten. Idealisk Àr labyrinten sÄ lÄng som möjligt, sÄ att spelarna hinner orsaka tillrÀckligt med skada innan monstren nÄr tornet. Vissa vapen Àr mer effektiva mot vissa typer av monster, sÄ de bör placeras i labyrinten före de andra för att förstÀrka effektiviteten. Det speciella med Unleash Àr att det inte finns nÄgot perfekt labyrint: i spelet finns det sÄ mÄnga typer av monster att nÄgon av dem förr eller senare kommer att ta sig igenom en del av labyrinten. Varje labyrint behöver anpassas efter nya monster som slÀpps av andra spelare. DÀrför var det nödvÀndigt att inte bara trÀna AI att bygga labyrinter - det krÀvdes ocksÄ att lÀra AI att skapa effektiva labyrinter för olika scenarier, oavsett om det Àr i spelets tidiga eller senare version.

AI behövde ocksÄ lÀra sig att berÀkna vilka monster som skulle dyka upp i labyrinten. Detta Àr en slags omvÀnd problemstÀllning i förhÄllande till byggandet av labyrinten. Precis som i mÄnga andra spel Àr det i Unleash inte tillrÀckligt att bara bygga upp en armé och skicka den mot fienden: det Àr ocksÄ viktigt att spionera pÄ fiendens försvar och strukturera sin armé för att slÄ mot fiendens svaga punkter sÄ effektivt som möjligt. Armén av monster mÄste interagera pÄ ett sÀtt sÄ att den framgÄngsrikt kan ta sig igenom labyrinten. Ibland Àr det ocksÄ nödvÀndigt att slÀppa ut monster i en viss ordning beroende pÄ deras funktioner och roller. Det hÀr ökar ocksÄ antalet olika kombinationer.

Slutligen, eftersom spelaren bÄde mÄste skapa labyrinter och samla en armé av monster, mÄste AI:n ocksÄ lÀra sig att hitta en balans mellan attack och försvar. Det Àr ocksÄ vÀrt att beakta att ju mer spelaren bygger upp sin armé av monster och ju mer han bygger labyrinten, desto mer resurser behöver han för detta. DÀrför Àr en korrekt angreppsstrategi extremt viktig bÄde för ekonomin under spelets gÄng och för att vinna. För att sÀkerstÀlla konkurrenskraft mÄste AI:n kunna fördela resurser sÄ att den kan skapa en kraftfull armé av monster utan att Àventyra labyrintens styrka. Att satsa allt pÄ monster kan vara ekonomiskt fördelaktigt, men detta ökar risken för att motstÄndarens monster tar över labyrinten. Om man istÀllet satsar pÄ att stÀrka labyrintens försvar kan detta skada ens ekonomi. Inga av dessa scenarier kommer att leda till seger. SÄledes visar sig optimeringsproblemet i Unleashed vara mer omfattande Àn i fallet med schack eller Starcraft, och inkluderar behovet av att offra nÄgot och berÀkna sin nytta flera steg framÄt.

I takt med att den artificiella intelligensen lĂ€r sig uppstĂ„r en mĂ€ngd tidigare oövervĂ€gda problem. Till exempel, i början nĂ„dde AI:n ofta en viss utvecklingsnivĂ„ dĂ€r den började förstĂ„ vissa aspekter av spelet — till exempel vilket vapen i labyrinten som Ă€r effektivt mot specifika typer av monster eller vilka monster som bĂ€st tar sig igenom vissa delar av labyrinten. Men lĂ€randet var lĂ„ngsamt och ledde till att enformiga strategier utvecklades.

Behovet av parallella tillvÀgagÄngssÀtt

Medan AI-utbildning, baserad pÄ maskininlÀrning, utvecklades lÄngsamt och inte sÀrskilt framgÄngsrikt, blev bÀttre AI och mer pÄlitliga konkurrerande AI nödvÀndiga för andra test- och utvecklingsfaser. För att genomföra detta anvÀndes Utility-arkitekturen, som gör det möjligt att skapa specialiserade AI för testning och kvalitetskontroll av spel, in-game-tester och balansering av vapen och fiender, samt för att skapa specifika labyrinter och monster. Under utvecklingen av Unleash finslipade skaparna sjÀlva sina fÀrdigheter i att navigera genom den, och beslutade sedan att anvÀnda den kunskap de fÄtt för att skapa en mer avancerad Utility AI. Det blev tydligt att mÄnga problem som uppstÄr i AI-system baserade pÄ maskininlÀrning enkelt kan lösas med hjÀlp av Utility-system som anvÀnder den kunskap de innehÄller, och vice versa.

Till exempel Àr det bÀttre att bygga mer effektiva labyrinter med hjÀlp av Utility AI, baserade pÄ kunskapsbaser skapade frÄn resultaten av interna tester. Det Àr lÀtt att beskriva och programmera en algoritm för att bygga en labyrint och placera vapen i den pÄ ett sÀtt som gör det enklare för en levande spelare att försvara sitt torn mot specifika monster. Men att skapa en armé av monster baserat pÄ kunskapsbasen om fienden visade sig vara en utmaning för sÄdana AI, eftersom antalet olika förhÄllanden och kombinationer som mÄste beaktas var övervÀldigande. Med den hÀr typen av AI-arkitektur skulle det ta oÀndligt lÄng tid att hitta lÀmpliga svÀrd av monster. DÀrför skulle djupinlÀrning vara den idealiska lösningen för denna uppgift, under givna begrÀnsningar.

Skapande av hybrida AI

SÄ det beslutades att kombinera tvÄ metoder och pÄ sÄ sÀtt skapa ett hybrid-system för artificiell intelligens baserat pÄ maskininlÀrning och Utility. Idén var att dÀr det var nödvÀndigt att bearbeta ett stort antal kombinationer och spelsituationer, eller dÀr det krÀvdes en viss trÀning, anvÀndes maskininlÀrning. För andra uppgifter, dÀr det Àr bÀttre att förlita sig pÄ utvecklarnas personliga erfarenhet, anvÀndes Utility-system. Fördelen med denna metod Àr att man vid behov kan bÀttre kontrollera AI:ns beteende för att sÀkerstÀlla dess exakta efterföljande av det givna mÄlet. Till exempel kan man anvÀnda Utility AI för att sÀkerstÀlla balans mellan anfall och försvar och pÄ sÄ sÀtt skapa olika nivÄer av aggressivitet, eller sÄ kan man skapa olika labyrinkonfigurationer för olika AI för att forma individuella spelstilar. Man kan ocksÄ ge neuronnÀt vissa vÀrdesystem för att forma olika preferenser i valet av flygande eller markbaserade monster och pÄ sÄ sÀtt ocksÄ ge vissa AI en personlig prÀgel. Det finns mÄnga andra alternativ för att realisera projektlösningar, och alla dessa framhÀver styrkorna hos de olika typerna av AI-arkitektur.

Den hybrida metoden var ocksÄ svaret pÄ en annan frÄga som stÀlldes till utvecklarteamet under utvecklingen av AI för Unleash: Ska man anvÀnda ett enhetligt globalt djupt neuronnÀt baserat pÄ maskininlÀrning för att ta hÀnsyn till alla in- och utdata, eller Àr det bÀttre att utforma AI med en hierarkisk struktur?

Hur hybrid gaming AI fungerar och dess fördelar
De tvĂ„ arkitekturer som anvĂ€ndes i Unleash: till vĂ€nster — ett stort djupt neuronnĂ€t med sin egen enhetliga arkitektur, till höger — ett hierarkiskt system dĂ€r varje nĂ€tverk har sin egen uppgift.

Och ÀndÄ skulle jag vilja skapa en gemensam strategi för artificiell intelligens, dÀr utvecklarna inte skulle ha infört sin egen erfarenhet i arkitekturen. Ju fler ingÄngar som genomfördes i spelet, desto mer vÀxte neuronnÀtverket. Samtidigt kunde man inte separera trÀningen av AI och lÀra dem nÄgot enskilt: antingen försvar eller anfall. Det fanns farhÄgor om att en mer generell ansats skulle leda till en betydande ökning av antalet berÀkningar.

HÀrifrÄn uppstod idén om att skapa en hierarkisk arkitektur dÀr varje specifik uppgift utfördes av ett specialiserat neuronnÀt. Enligt denna idé mÄste den artificiella intelligensen först fatta beslut om resursfördelning för anfall (ökning av monsterarmén) och försvar (byggande av labyrinter). NÀr den har gjort detta gÄr den vidare till nÀsta lager enligt sitt val och fÄr tillgÄng till den nödvÀndiga delen av spelets tillstÄnd, varefter den fattar detaljerade beslut om vilka monster som ska vÀljas och vilken typ av vapen som ska installeras i labyrinten.

Slutsats och nÀsta steg

Med en hybridmetod pÄminner Utility AI med inbyggda maskininlÀrningsnÀt om en hierarkisk arkitektur. Den liknar i sin tur den biologiska hjÀrnan, dÀr olika nervcentraler ansvarar för sina specifika uppgifter.

För nÀrvarande Àr det mycket svÄrt att besegra AI-motstÄndaren i Unleash: de kan anpassa sig till vilken situation som helst i spelet, men utvecklarna kan Àndra deras instÀllningar efter eget skön. Enligt artikelförfattaren bör den hybridmetoden över tid bli mer spridd och dyka upp i mÄnga andra spel. Kanske kommer det en dag att vara möjligt att införa ren maskininlÀrningsbaserad artificiell intelligens i spelprocessen. Men uppenbarligen kommer det fortfarande att ta tid. Under tiden Àr mÄlet att hitta en sÄdan arkitektur som kan anpassa sig till de uppgifter som stÀlls framför den och hitta optimala sÀtt att lösa dem.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster