Hvordan fungerer hybrid gaming AI, og hvad er fordelene?

I forlængelse af et emne, vi tidligere har taget op i vores blog om gaming kunstig intelligens vil vi tale om, hvorvidt maskinlæring kan anvendes dertil, og i hvilken form. Med sine erfaringer og de valg, han har truffet på den baggrund har delt AI-ekspert hos Apex Game Tools, Jakob Rasmussen.

Hvordan fungerer hybrid gaming AI, og hvad er fordelene?

I de seneste år har der været meget snak om, at maskinlæring vil ændre gamingindustrien radikalt, da denne teknologi allerede har vist sig at være banebrydende i mange andre digitale applikationer. Men man må ikke glemme, at spil er langt mere komplekse end en bilsimulator, et dronestyringsprogram eller ansigtsgenkendelsesalgoritmer på et billede.

Indtil videre er det stadig almindeligt at anvende traditionelle AI-metoder i gamingindustrien, såsom finite state machines, adfærdstræer og — i stigende grad på det seneste — Utility-based AI (nyttighedsbaserede systemer). Denne type AI kaldes også design-baseret (kunstig design-viden) eller ekspertssystemer. Men det bliver mere og mere tydeligt — især for spillerne — at disse systemer er mindre velegnede til at skabe virkelig avancerede modstandere, der kan efterligne spillerens adfærd. Dette gælder især for kreative løsninger. Dette kan forklares med, at udviklere af kunstig intelligens ikke kan tage højde for alle mulige taktikker og adfærdsstrategier og implementere dem effektivt i traditionelle AI-systemer. For spillere resulterer det ofte i, at det bliver kedeligt og forudsigeligt at spille mod en modstander, hvis adfærdsmønster er let at huske.

Der er mange grunde til dette resultat, men en af de vigtigste er AI's manglende evne til at lære. Derfor kommer tanken om at bruge maskinlæring, som har bevist sin værdi i mange andre applikationer, næsten automatisk op, når man skaber en kunstig intelligens modstander. Men der er flere nuancer, som man bør tage højde for. For det første skal gaming AI kunne tilpasse sig enhver situation og drage fordel af de muligheder, den giver, samt tilpasse sig forskellige spillestile fra modstandere — både menneskelige spillere og andre AI.

Hvordan står det til nu?

Det britiske firma DeepMind, der beskæftiger sig med udvikling af kunstig intelligens, har for nylig vist, hvordan AI kan lære at spille spil autonomt, forstå reglerne og finde måder at gennemføre eller vinde spillet — dog kun med eksempler som simple spil som de tidlige spil Atari — for eksempel skak og det japanske logikspil go. De resultater, der er opnået for dem, viser, at kunstig intelligens kan danne sig en passende vurdering af, hvad der sker på brættet. Når det kommer til AI's tilpasning til forskellige spillemønstre fra modstanderen, er resultaterne dog ikke så imponerende.

I vores tid har neurale netværk allerede lært at genkende billeder og køre biler. Men disse funktioner kan også implementeres ved hjælp af relativt simple arkitekturer, selvom de ender med at være ret dybe og omfattende. For eksempel har AI til billedgenkendelse på Facebook en dybde på cirka 100 lag, hvilket gør, at den minder om en biologisk hjerne — med hensyn til antallet og kompleksiteten af forbindelse mellem neuroner, der danner et stort netværk.

Spil AI

Når det kommer til anvendelsen af maskinlæring i spilindustrien, er der en række begrænsninger, der gør det svært at anvende denne type arkitektur. Disse omfatter systemkrav, især dem, der er relateret til CPU, som bestemmer computerens evne til at behandle komplekse spildesigns og dens egnethed til historiefortælling og gameplay.

Således viser det sig, at der i mange spil ikke er mulighed for at organisere det nødvendige hardware til implementeringen af komplekse AI-systemer, og slet ikke et klyngesystem af servere, som f.eks. eksisterer for billedgenkendelsesnetværkene i Facebook. Nogle gange skal flere AI'er endda fungere samtidigt — ikke kun på computere, men også på mobile enheder og mindre kraftfulde platforme. Alt dette stiller begrænsninger for størrelsen og kompleksiteten af maskinlæringsarkitekturen, da alle beregninger også skal udføres med en billedhastighed på omkring 1 eller 2 millisekunder. Selvfølgelig kan man bruge forskellige optimeringsteknologier og fordeling af belastningen mellem billederne, men man kan ikke helt undgå disse begrænsninger.

Spillets kompleksitet kan skabe alvorlige problemer for AI. For i spil som StarCraft II er spilmekanikken langt mere kompleks end i Atari-spil. Derfor kan man ikke forvente, at maskinlæring nødvendigvis vil kunne forstå hele spiltilstanden og interagere med den under forudsætning af en given billedhastighed og kendte systemkrav. Ligesom spilleren ofte styres af intuitionen i de tidlige spilfaser, skal AI også lære den primære behandling af spiltilstanden for at forenkle den videre progression. For eksempel, i et af de seneste API til Starcraft II på kortene vises kun den information, som udviklerne anså for vigtig: i det ene tilfælde brugte AI en reduceret visning af hele kortområdet, mens det i det andet tilfælde, ligesom spilleren, kunne bevæge kameraet, og hans opfattelse var så begrænset af informationen på skærmen.

Hvordan fungerer hybrid gaming AI, og hvad er fordelene?
Visualisering af AI AlphaStars spil mod en spiller i StarCraft II: på skærmbilledet vises 'rå' grundlæggende observationer, neurale netværksaktiviteter, nogle af dens mulige handlinger og koordinater, samt den forventede udfald af kampen.

Dette er særlig relevant i tilfælde af spil. Normalt kan de gængse metoder til problemløsning inden for maskinlæring ikke anvendes på spilkunstificialintelligens. For eksempel er det som regel ikke nødvendigt at vinde eller gøre alt for at sejre, som tilfældet var med Atari-spillene. Ofte er AI's rolle at gøre spilopplevelsen mere engagerende. Det kan være nødvendigt for det at spille en rolle og agere, som karakteren kræver. Derved er spils AI mere knyttet til spildesign og historiefortælling og skal have de nødvendige værktøjer til at styre sin adfærd for at nå det ønskede mål. Ren maskinlæring er ikke altid velegnet til dette — derfor er der behov for noget andet.

Praktiske problemer ved maskinlæring

Disse problemer opstod under udviklingen af kunstig intelligens baseret på maskinlæring til Unleash, hvor AI skal agere som almindelige spillere — det vil sige være lige så fleksible og opfindsomme.

Som med Starcraft II er Unleashed betydeligt mere komplekst end schack og Go for Atari. Spilmekanikken er intuitiv og nem at lære, men for virkelig at få succes er der brug for bestemte færdigheder i metakontrol. Spilleren skal konstruere labyrinter, sende monstre mod fjenderne og tænke sin strategi i økonomi, angreb og forsvar af bygninger gennem hele spillet. For dette skal man bluffe og forudberegne modstandernes træk samt styre psykologisk mål — det er netop dette, der gør poker til mere end bare et statistisk spil.

Hvordan fungerer hybrid gaming AI, og hvad er fordelene?
Screenshot fra Unleashed

I søgen efter den mest passende arkitektur til dette formål blev der først integreret teknologier som neuroevolution og dyb læring i spillet næsten uændret og testet, hvordan de fungerede i rå form som modstander-AI.

Det var forfærdeligt.

Det blev hurtigt klart, at Unleashed har mange globale udfordringer, som det er svært at tilpasse maskinlæring til.

En af dem er opbygningen af en effektiv labyrint. Som i mange spil, hvor målet er at beskytte et tårn, skal spillerne her bygge en labyrint omkring det, som monstre vil bryde igennem. Disse skal derefter elimineres ved hjælp af våben placeret i labyrinten. Ideelt set bør labyrinten være så lang som muligt for at kunne påføre monstrene tilstrækkelig skade og forhindre dem i at nå tårnet. Nogle typer våben er mere effektive mod visse monstre end andre, så det er en god idé at placere dem i labyrinten før de andre. Særegenheden ved Unleash er, at der ikke findes en perfekt labyrint: der er så mange typer monstre i spillet, at mindst én af dem vil kunne passere uhindret gennem en hvilken som helst del af labyrinten. Hver labyrint skal tilpasses de nye monstre, der sendes ind af de andre spillere. Derfor var det nødvendigt ikke bare at lære kunstig intelligens at bygge labyrinter — det var nødvendigt at lære den at skabe effektive labyrinter til forskellige scenarier, man kunne støde på både i den tidlige og sene version af spillet.

Desuden måtte AI'en lære at beregne, hvilke monstre der ville dukke op i labyrinten. Dette er en form for omvendt problemstilling i forhold til opbygningen af labyrinten. Som i mange andre spil er det ikke nok bare at opbygge en hær og sende den ind i fjendens lejr: det er også nødvendigt at spionere på fjendens forsvar og strukturere hæren på en måde, så den maksimalt effektivt kan ramme fjendens svage punkter. Monstrets hær skal interagere med hinanden for at kunne bryde bedst muligt igennem labyrinten. Nogle gange er det også nødvendigt at slippe monstrene løs i en bestemt rækkefølge afhængigt af deres funktioner og roller. Dette øger også antallet af forskellige kombinationer.

Endelig, da spilleren både skal bygge labyrinter og samle en horde af monstre, skal AI også lære at finde en balance mellem angreb og forsvar. Det er også vigtigt at overveje, at jo mere spilleren opbygger sin horde af monstre og jo mere han bygger labyrinten, desto flere ressourcer er der brug for. Derfor er en korrekt angrebsstrategi ekstremt vigtig for både økonomien i gameplayet og for at vinde. For at sikre konkurrencedygtighed skal AI være i stand til at forvalte ressourcer, så der kan skabes en stærk horde af monstre, uden at det går ud over labyrintens styrke. At investere maksimalt i monstre kan være økonomisk fordelagtigt, men det øger risikoen for, at modstanderens monstre vil indtage labyrinten. Hvis man i stedet fokuserer på at styrke labyrintens forsvar, kan det skade ens økonomi. Ingen af disse scenarier vil føre til sejr. Dermed viser optimeringsproblemet i Unleashed sig at være mere komplekst end i skak eller Starcraft, og indebærer behovet for at ofre noget og vurdere sin gevinst flere skridt frem.

Efterhånden som kunstig intelligens lærer, dukker der mange tidligere uovervejede problemer op. For eksempel nåede AI i starten ofte et udviklingsniveau, hvor den begyndte at forstå nogle aspekter af spillet — for eksempel hvilke våben i labyrinten der er effektive mod bestemte typer monstre, eller hvilke monstre der bedst kan navigere visse dele af labyrinten. Men læringsprocessen var langsom og førte til ensartede strategier.

Behovet for parallelle tilgange

Mens AI-træning baseret på maskinlæring langsomt og ikke særlig succesfuldt udviklede sig, blev der behov for bedre AI og mere pålidelige konkurrence-AI til andre test- og udviklingsfaser. Til deres implementering blev der anvendt Utility-arkitektur, som muliggør oprettelse af specialiserede AI til test og kvalitetskontrol af spil, interne tests og balance af våben og monstre, samt oprettelse af specifikke labyrinter og monstre. I udviklingsprocessen af Unleash finpudsede skaberne også deres færdigheder i gennemgangen, og besluttede derefter at anvende den erhvervede viden til at skabe en mere kompleks Utility-AI. Det blev klart, at mange af de problemer, der opstår i AI-systemer baseret på maskinlæring, kan løses nemt ved hjælp af Utility-systemer, der bruger den viden, de indeholder, og omvendt.

For eksempel er det mere effektivt at bygge labyrinter ved hjælp af Utility-AI, der er baseret på vidensbaser samlet fra interne tests. Det er let at beskrive og programmere en algoritme til at bygge labyrinter og placere våben i dem, så det ville være lettere for en levende spiller at forsvare et tårn mod specifikke monstre. Men oprettelsen af en hær af monstre baseret på viden om fjendens base viste sig at være en udfordrende opgave for sådanne AI, da mængden af forskellige betingelser og kombinationer, der skal tages i betragtning, var overvældende. Med denne type AI-arkitektur ville søgningen efter passende monsterkombinationer tage uendelig lang tid. Under givne begrænsninger ville dyb læring være den perfekte løsning til denne opgave.

Oprettelse af hybride AI

Det blev besluttet at kombinere to tilgange for at skabe et hybrid system af kunstig intelligens baseret på maskinlæring og Utility. Ideen var, at hvor der var behov for at håndtere et stort antal kombinationer og spilstater, eller hvor det var nødvendigt at uddanne det, blev maskinlæring anvendt. Til andre opgaver, hvor det var bedre at stole på udviklernes personlige erfaring, blev Utility-systemer aktiveret. Fordelen ved denne tilgang er også, at man bedre kan kontrollere AI's adfærd for at sikre, at den præcist følger det ønskede mål. For eksempel kan Utility AI bruges til at sikre balance mellem angreb og forsvar, og dermed skabe forskellige niveauer af aggression, eller man kan skabe forskellige labyrintkonfigurationer til forskellige AI'er for at danne individuelle spillestile. Man kan også tildele neurale netværk bestemte værdier for at danne forskellige præferencer, når man vælger luft- eller jordmonstre, og derved give de enkelte AI'er personlighed. Der er også mange andre muligheder for at implementere designløsninger, og alle fremhæver styrkerne i de forskellige typer AI-arkitektur.

Den hybride tilgang var også et svar på et andet spørgsmål, der opstod for udviklingsteamet under udviklingen af kunstig intelligens til Unleash: Skal man anvende et enkelt globalt dybt neuralt netværk baseret på maskinlæring for at tage højde for alle input og output data, eller er det bedre at designe AI'en med en hierarkisk struktur?

Hvordan fungerer hybrid gaming AI, og hvad er fordelene?
De to arkitekturer, der blev brugt i Unleash: til venstre — et stort dybt neuralt netværk med sin egen enhedsarkitektur, til højre — et hierarkisk system, hvor hvert netværk har sin egen opgave.

Alligevel ville man gerne skabe en fælles tilgang til kunstig intelligens-systemet, hvor udviklerne ikke indbyggede deres egen erfaring i arkitekturen. Jo flere indgange der blev gennemført i spillet, jo større blev neuronet. Det var dog ikke muligt at adskille AI-træning og træne dem til noget enkelt: enten til forsvar eller angreb. Der opstod bekymringer om, at en mere generel tilgang ville føre til en betydelig stigning i antallet af beregninger.

Herfra kom ideen om at skabe en hierarkisk arkitektur, hvor hver specifik opgave blev udført af et specialiseret neuron. Ifølge denne idé skal den kunstige intelligens først træffe beslutning om ressourcedistribution mellem angreb (øge hæren af monstre) og forsvar (bygge en labyrint). Når den har gjort dette, bevæger den sig videre til næste lag i overensstemmelse med sit valg og får adgang til den nødvendige del af spiltilstanden, hvorefter den træffer detaljerede beslutninger om, hvilke monstre der skal vælges, og hvilket udstyr der skal installeres i labyrinten.

Konklusion og næste skridt

Med den hybride tilgang minder Utility AI med indbyggede netværk baseret på maskinlæring om en hierarkisk arkitektur. Og denne, i sin tur, ligner den biologiske hjerne, hvor forskellige nervecentre hver især har ansvar for deres egen opgave.

I øjeblikket er det meget svært at besejre AI-modstanderen i Unleash: de formår at tilpasse sig enhver situation i spillet, men udviklerne kan dog ændre deres indstillinger efter eget valg. Ifølge forfatteren af artiklen bør den hybride tilgang, over tid, få større udbredelse og blive implementeret i mange andre spil. Måske vil det en dag være muligt at introducere kunstig intelligens baseret på maskinlæring i sin reneste form i spilprocessen. Men det er indlysende, at der stadig vil være behov for tid for at realisere dette. Indtil da består målet i at finde en arkitektur, der selv tilpasser sig de opgaver, den står over for og finder optimale løsninger.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster