• No results found

Återskapa mänskligt beteende med artificiell intelligens i 2D top-down wave shooter spel Recreate human behaviour with artificial intelligence in 2D top-down wave shooter game

N/A
N/A
Protected

Academic year: 2021

Share "Återskapa mänskligt beteende med artificiell intelligens i 2D top-down wave shooter spel Recreate human behaviour with artificial intelligence in 2D top-down wave shooter game"

Copied!
59
0
0

Loading.... (view fulltext now)

Full text

(1)

Återskapa mänskligt beteende med artificiell intelligens i 2D top-down wave shooter spel

Recreate human behaviour with artificial intelligence in 2D

top-down wave shooter game

Examensarbete inom huvudområdet Informationsteknologi 30 högskolepoäng Grundnivå 30 högskolepoäng

Vårterminen 2020 Johannes Bjärehall Johan Hallberg

Handledare: Andreas Jonasson Examinator: Mikael Johannesson

(2)

Sammanfattning

Arbetet undersöker mänskligt beteende hos beteendeträd och LSTM nätverk. Ett spel

skapades som testades av personer i en undersökning där deltagarna fick spela tillsammans med vardera agent i slumpmässig ordning för att bedöma agenternas beteende. Resultatet från undersökningen visade att beteendeträdet var den mänskliga varianten enligt deltagarna oavsett ordning som testpersonerna spelade med vardera agent. Problemet med resultatet beror antagligen till störst del på att det inte fanns tillräckligt med tid och bristande CPU kraft för att utveckla LSTM agenten ytterligare. För att förbättra och arbeta vidare med arbetet kan mer tid läggas på att träna LSTM nätverket och finjustera beteendeträdet. För att förbättra testet borde riktig multiplayer funktionalitet implementeras som gör att det går att testa agenterna jämfört med riktiga mänskliga spelare.

Nyckelord:​ [AI, Mänskligt AI, Neurala nätverk, Beteendeträd. LSTM, ML-Agents]

(3)

Innehållsförteckning

Akronymer 5

1. Introduktion 1

2. Bakgrund och tidigare forskning 2

2.1. Artificiell intelligens 2

2.2. Beteendeträd 3

2.2.1 Nodstruktur 4

2.3. Neurala nätverk 6

2.3.1 Recurrent Neural Network 8

2.3.2 Long Short Term Memory 8

2.3.3 Reinforcement learning 10

2.4 Unity ML-Agents Toolkit 11

2.4.1 Generative Adversarial Imitation Learning 12

2.4.2 Beteendekloning 12

2.4.3 Proximal policy optimization 12

2.5 Mänsklig AI 12

2.6 Agent följeslagare 17

3.Problemformulering 18

3.1 Metod 19

3.1.1 Implementation av agenter 19

3.1.2 Datainsamling 20

3.1.3 Etiskt ställningstagande 21

4. Genomförande 23

4.1 Implementation av spellogik 23

4.1.1 Speltestning 25

4.2 Implementation av beteendeträd 25

4.2.1 Beteendeträd för val av fiende fokus 26

4.2.2 Beteendeträd för sikte 26

4.2.3 Beteendeträd för rörelse 27

4.3 Implementation av neuralt nätverk 30

4.3.1 Design av LSTM 31

4.3.2 Träning av LSTM 32

4.3.3 Belöning för agenten 32

4.3.4 Konfigurationsfil värden 33

5. Pilotstudie 34

5.1 Data från version ett 34

5.2 Data från version två 34

5.3 Sammanfattning 35

(4)

5.4 Ändringar inför studie 35

6.Utvärdering 36

6.1 Resultat från frågeformulär 37

6.1.1 Resultat från intervju frågor 37

6.1.2 Resultat från frågor i artefakten 43

6.1.3 Analys 44

6.2 Diskussion 45

6.2.1 Samhälleliga aspekter 47

6.2.2 Slutsats för diskussion 47

6.2.3 Felkällor 48

6.3 Slutsats 48

6.3.1 Framtida arbeten 48

Referenser 50

(5)

Akronymer

AI ​- Artificiell intelligens.

ANN ​- Artificiellt neuralt nätverk.

BC ​- Beteendekloning.

GPU ​- Graphics processing unit.

LSTM ​- Long Short Term Memory.

MMORPG ​-​ ​Massive multiplayer online role playing game.

PPO ​- proximal policy optimization.

RNN ​- Recurrent neuralt nätverk.

(6)

1. Introduktion

Enligt Hadeld-Menell, Andrus och Hadled (2019) är det svårt att skapa trovärdiga aktörer baserade på artificiell intelligens (AI) i spel. För att vara trovärdig behöver AIn agera på ett mänskligt och konsekvent sätt. Det betyder att en AI ska kunna agera trovärdigt i många situationer som till exempel när denna agerar som fiende eller följeslagare, det är då viktigt att AIn utför många handlingar som människor gör som kan uppfattas som uppenbara utan eftertanke. Många oskrivna sociala regler tas för givet av människor och de behöver

replikeras av modellen för att AIn ska interagera med människor på ett trovärdigt sätt och inte bryta illusionen av mänsklighet (Hadeld-Menell, Andrus & Hadeld 2019).

Studien lyfter fram frågorna:

● Kan en följeslagare styrd av ett LSTM nätverk eller ett beteendeträd uppfattas som mänsklig i ett 2D top-down wave shooter spel?

● Om det går vilken metod är då bäst på att efterlikna mänskligt beteende?

Svaret på frågorna kan hjälpa till med att utveckla mänskligt beteende hos datorstyrda agenter. Studien kan leda till att spelare engagerar sig mer med spel som involverar en eller flera datorstyrda agenter. För att svara på frågan utvecklades ett 2D wave shooter spel för att användas som träningsmiljö för agenterna.

En agent implementerades med ett beteendeträd som designades specifikt efter hur deltagare observerades interagera med spelet. Den andra agenten skulle först

implementeras med ett LSTM (Gers, Schmidhuber & Cummins 2000) utvecklat från grunden tillsammans med artifakten, det övergick till att använda Unitys ML-Agents LSTM i artefakten (Juliani, Berges, Vckay, Gao, Henry, Mattar & Lange 2018). Agenten tränades först upp med beteendekloning och GAIL som visade sig ge oanvändbara resultat vilket gjorde att agenten endast tränades med en typ av ​reinforcement learning​ som kallas ​proximal policy

optimization​ (PPO) för att få ett användbart resultat.

En pilotstudie utfördes med frivilliga deltagare som testade att spela med agenter som byggts med två olika varianter av AI. Deltagarna var inte medvetna om vilken variant de spelade med. Deltagare blev dessutom tillsagda att en av varianterna kontrollerades av en människa.

De fick under och efter testningens gång svara på frågeformulär som involverar frågor kring agentens beteende och prestation.

1

(7)

2. Bakgrund och tidigare forskning

2.1. Artificiell intelligens

Enligt Yannakakis och Togelius (2018) används AI i spel av en mängd diverse anledningar.

Kraven och målen på AIn är beroende på vilket syfte AIn har. En AI som ska ta rollen som spelarkaraktär behöver spela bra med målet att vinna spelsessionen genom att exempelvis få mest poäng eller slutföra ett race på kortast tid. En AI som ska kontrollera andra

karaktärer i spelet har målet att spela mänskligt och/eller komplext för att öka nöjet och inlevelsen hos spelaren. En AI som spelar mänskligt kan också användas i buggtesting eller balansering (Yannakakis & Togelius 2018).

Tidig användning av AI inom spel fokuserade huvudsakligen på agenter, enligt Millington och Fudge (2009). Med agenter menas i denna studie icke spelar karaktärer i spel och inte det underliggande beslutssystemet som i studien benämns som AI. Agenter kan agera som exempelvis fiender eller allierade. Tidig AI använde sig av relativt enkla beslutsystem såsom tillståndsmaskiner och vägsökning, metoder som fortfarande används idag.

Tillståndsmaskiner kan användas för att få komplext beteende hos agenter (Millington &

Funge 2009, Yannakakis & Togelius 2018). En tillståndsmaskin består utav olika tillstånd, där varje tillstånd involverar handlingar och regler för att ändra till ett annat tillstånd. En agent utför samma handling tills den byter tillstånd, tillstånden är sammankopplade med

övergångar. En övergång har olika krav kopplad till den och när kraven uppfylls byter agenten tillstånd. Rabin (2008) påstår att tekniken för tillståndsmaskiner övergick till beteendeträd som gav bättre stabilitet. Millington och Fudge (2009) delar in uppgifter som ska utföras av agenter inom spel i tre olika grupper: agenternas rörelse, strategitänkande och beslutsförmåga.

Rörelsen hos agenter är deras förmåga att förflytta sig till önskad position och kan bestå av allt från enkelt beteende där agenten rör sig en raksträcka mot sitt mål till mer komplexa beteenden som att undvika hinder eller röra sig genom komplex geometri. Med strategi menas en AI som inte enbart koordinerar en agent utan en grupp av agenter för att hjälpa dem att arbeta tillsammans med eller emot spelaren. Beslutsförmågan bestämmer agentens val av handling som ska utföras i olika situationer. Exempel på detta är att förflytta sig till spelaren och sedan attackera när agenten är tillräckligt nära. Ett mer komplicerat beteende kan exempelvis vara att kedja ihop drag i ett kortspel för bästa resultat, som i Hearthstone skapat av Blizzard Entertainment (2014), se figur 1. Spelarna i Hearthstone försöker besegra varandra genom att spela kort. Korten kostar en resurs som spelarna har begränsad mängd av.

2

(8)

Figur 1​ - ​Spelplanen i en match av Hearthstone, samt indikationer av viktiga element på spelplanen (Hearthstone Wiki 2013).

2.2. Beteendeträd

Coppin (2004) säger artificiell intelligens handlar om att skapa intelligent beteende hos maskiner som efterliknar människors beteende genom att exempelvis navigera, känna igen olika objekt och utföra specifika uppgifter. Coppin påstår att definitionen av AI förändrats sen Alan Turing (1950) påstod att det grundläggande målet med digitala datorer var att de skulle kunna utföra samma uppgifter som en mänsklig räknare vars yrke var att utföra beräkningar och kalkylationer. Coppin menar att AI innefattar att en maskin kan utföra uppgifter baserat på mänskligt intelligens för att lösa komplexa problem och inte enbart beräkningar och kalkylationer (Coppin 2004).

Beteendeträd är en teknik som involverar att dela in beteenden i en trädstruktur för att strukturera en agents beteende, se figur 2. (Rabin 2008, Flores & Tomai 2014). Strukturen beskriver vilket beteende som leder till nästa och hur de olika beteendena relaterar till

varandra. Yannakakis och Togelius (2018) förklarar att beteendeträd liknar tillståndsmaskiner i att de är enkla att designa och testa vilket har gjort dem populära att använda till agenter i spel. Styrkan av beteendeträd i jämförelse med tillståndsmaskiner är deras modularitet som kan ge komplext beteende bestående av enkla handlingar.

3

(9)

Figur 2 ​- ​En visuell representation av en trädstruktur. En punkt i trädet kallas för löv eller nod, varje nod har kopplingar till noder under sig som definieras som barn till den överstånden noden. Strukturen börjar högst upp på noden som kallas för rotnod och växer

sedan nedåt som grenar på ett träd. En nod utan barn kallas för lövnod.

2.2.1 Nodstruktur

Beteendeträd är ett riktat rotat träd (Colledanchise & Ögren 2018, Evensen, Stien & Bentsen 2018). Interna noder kallas för kontrollflödesnoder (eng. control flow nodes) och lövnoderna kallas utförningsnoder (task nodes). Kontrollflödesnoderna innehåller fyra olika typer av noder: sekvensnod (sequence node), selektionsnod (selection node), parallellnod (parallel node) och dekoratörnod (decorator node). Alla noder förutom rotnoden returnerar ett tillstånd när de har exekverat. Tillståndet som returneras och vilken nodvariant som används

bestämmer exekverings ordning och beteende. De tillstånden som noderna kan returnera är pågående (running), framgång (success) och misslyckande (failure). Pågående returneras om de specificerade målet inte har uppnåtts ännu, framgång returneras om målet uppnåtts och misslyckad ifall målet inte kan uppnås (Colledanchise & Ögren 2018, Evensen, Stien &

Bentsen 2018).

Sekvensnoder är en typ av kontrollflödesnod som exekverar dess barn i riktningen vänster till höger tills ett barn returnerar misslyckande eller pågående, varpå den returnerar resultatet uppåt i hierarkin. Sekvensnoden returnerar bara tillbaka framgång om alla barn returnerade framgång (Colledanchise & Ögren 2018, Evensen, Stien & Bentsen 2018).

En selektionsnod exekverar på dess barn i riktningen vänster till höger tills ett av barnen returnerar framgång eller pågående, varpå den returnerar värdet upp i hierarkin. En

selektionsnod returnerar bara misslyckande om alla barn misslyckas. Om en selektionsnod 4

(10)

får ett resultat av framgång eller pågående från ett av sina barn exekveras inte ytterligare barn i dess hierarki (Colledanchise & Ögren 2018, Evensen, Stien & Bentsen 2018).

Parallellnoder exekverar alla dess barn samtidigt. Den returnerar framgång om M barn returnerar framgång och returnerar misslyckande om N - M + 1 returnerar misslyckande. N betecknar antal barn som parallellnoden har och M är en användardefinierad gräns som är mindre eller lika med N. I alla andra tillfällen förutom de två returnerar den pågående (Colledanchise & Ögren 2018, Evensen, Stien & Bentsen 2018).

En dekoratörnod är en nod som endast har ett barn. Noden modifierar resultatet den får från sitt barn via en förbestämd regel och returnerar det modifierade värdet till sin förälder. Som exempel kan den invertera resultatet eller returnera ett misslyckande om dess barn inte har returnerat att den lyckats efter ett fördefinierat antal försök (Colledanchise & Ögren 2018, Evensen, Stien & Bentsen 2018).

Utförningsnoder kan antingen vara en handlingsnod eller en vilkorsnod. En handlingsnod utför en handling när den kallas. Den returnerar framgång om den lyckas utföra handlingen och misslyckande om den inte lyckas. Om handlingsnoden inte är klar med handlingen returnerar den pågående (Colledanchise & Ögren 2018, Evensen, Stien & Bentsen 2018).

När en villkorsnod kallas undersöker den ett påstående. Om påståendet stämmer returnerar den framgång och om påståendet är falskt returnerar den misslyckande. En villkorsvariabel kan aldrig returnera pågående (Colledanchise & Ögren 2018, Evensen, Stien & Bentsen 2018).

Tabell 1 ​- Nodtyperna i ett beteendeträd, vilka symboler som betecknar dem, samt deras individuella krav för att uppfylla de olika tillstånden (Colledanchise & Ögren 2018).

Nod typ Symbol Framgång Misslyckande Pågående Selektionsnod ? Ett barn lyckas Alla barn

misslyckas

Ett barn returnerar pågående Sekvensnoden → Alla barn lyckas Ett barn

misslyckas

Ett barn returnerar pågående

Parallellnod ⇉ M eller mer

barn lyckas

Mer än N - M misslyckas

Annars

Dekoratörnod ♢ Speciell Speciell Speciell

Handlingsnod text När handlingen är utförd

Om handlingen inte kan utföras

Medans handling utförs

Villkorsnod text Om sann Om falsk Aldrig

5

(11)

Isla (2005) förklarar att den artificiella intelligensen i Halo 2 (Bungie 2004) hyllades för sin komplexitet. De använde beteendeträd för att få agenter som agerade på ett trovärdigt sätt med komplexa och varierade beteenden. De uppnår det genom att ha många olika beteende.

Nyckelordet är då kvantitet men de behöver fortfarande behålla den artificiella intelligensens integritet så att illusionen av dess trovärdighet inte förstörs (Isla 2005).

2.3. Neurala nätverk

Yannakakis och Togelius (2018) förklarar att neurala nätverk är en maskininlärningsmetod inspirerad av den biologiska hjärnans struktur. Ett neuralt nätverk består av neuroner som är sammankopplade i en nätverkstopologi, se figur 3. Nätverket har inmatningsnoder som genom nätverkstopologin resulterar i utmatningsdata till sista lagret i topologin.

Utmatningsdatan kan i sin tur analyseras och användas för olika områden. Utmatningsvärdet kalkyleras genom att varje koppling till neuronerna har en vikt som multipliceras med

inmatningsvärdet. Varje kopplings värde till en given nod multipliceras med kopplingens vikt och summeras sedan för att bearbetas genom en aktiveringsfunktion för att få en neurons aktiveringsvärde. Aktiveringsfunktioner är matematiska funktioner som normaliserar värden.

Genom att använda neuroners aktiveringsvärde kommer nätverket aldrig ha för stora positiva eller negativa värden. Det begränsade utmatningsvärdet användas som inmatningsvärde till nästa nod (Yannakakis & Togelius 2018). Sibi, Allwyn och Siddarth (2013) beskriver att två av de mest använda aktiveringsfunktionerna är sigmoid och tanh funktionen. Sigmoid funktionen beskrivs matematisk av formeln 1.1, det betyder att stora positiva tal närmar sig ett och stora negativa tal närmar sig noll. Tanh beskrivs av den matematiska formeln 1.2 vilket betyder att stora positiva tal närmar sig ett och stora negativa tal närmar sig minus ett

( ​

Sibi, Allwyn & Siddarth 2013​

) ​

.

y = 1+e1−x

(1.1)

y = e − ee + exx −x−x

(1.2)

Figur 3 ​- ​En visuell representation av ett neuralt nätverk med ett gömt lager. Inkluderat i bilden är inmatningslagret (input), ett gömt lager (hidden) och utmatningslagret (output).

Varje lager består av noder och varje nod har en koppling till varje annan nod i nästa lager (Glosser.ca 2013).

6

(12)

Enligt Yannakakis och Togelius (2018) kan utmatningsdatan från neurala nätverk användas för att lösa problem inom flera områden. Exempel på områden inkluderar robot och

agentstyrning, tal och textigenkänning, hälsovård, finans och bildigenkänning. Ett problem presenteras till nätverket i form av inmatningsdata och den resulterade utmatningsdatan används för att lösa problemet.

Nilsen (2015) beskriver att en vanlig metod för att justera vikterna i ett neural nätverk är backpropagation vilket är den ledande träningsmetoden för övervakat lärande.

Backpropagation baseras på att nätverket får exempeldata att bearbeta. När datan har bearbetas evalueras den mot det korrekta svaret och en felmarginal beräknas. Med hjälp av felmarginalen kan backpropagation algoritmen jobba baklänges genom nätverkstopologin för att justera vikterna hos noderna. Processen repeteras tills nätverket har minsta möjliga felmarginal. Panchal, Ganatra, Shah och Panchal (2011) menar att överanpassning

(overfitting) eller överträning (over-training) är ett problem med backpropagation som gör det svårt att träna upp ett generellt neuralt nätverk. Överanpassning uppstår när ett neuralt nätverk har för många noder och börjar spara specifika lösningar istället för att ett generellt mönster. Resultatet gör att neurala nätverket inte kan användas för att lösa problemet utifrån alla okända utgångsvariabler. Om problemet uppstår ska träningen avslutas och nätverkets storlek minskas. Gömda noder eller gömda lager tas bort för att minimera chansen för överanpassning (Panchal, Ganatra, Shah & Panchal 2011).

Handprogrammerad AI har i tester visat sig varit mindre intressanta och mänskliga än andra typer av AI som neurala nätverk. Det kan ses i en undersökning av Soni och Hingston (2008) där de jämför neurala nätverk med en handprogrammerad tillståndsmaskin. Berner et al.

(2019) förklarar att neurala nätverk har bevisat presterat bättre än en mänsklig aktör i spel såsom Backgammon, Schack och Go. Berner et al. (2019) beskriver deras neurala nätverk AlphaGo Five och hur den lyckades bemästra många utav de bästa spelarna i Dota 2.

AlphaGo Five använde vissa strategier som professionella spelare använde. Skillnaden var att AlphaGo Five var mer effektiv och gjorde mer riskfyllda val som i slutändan gav den en vinst i 99.4% av alla matcher mot mänskliga motståndare. I en studie av Pfau, Smeddinck och Malaka (2018) undersökte olika metoder kring hur mänskligt beteende kunde imiteras av AI. Studien ställer frågan om hur djupinlärning kan balansera AI för mänskliga motståndare.

De konstaterar att djupinlärning gav bäst resultat när det gäller att direkt imitera mänskligt spelbeteende. Det framgick även att i 13.2% av fallen kunde metoden användas för att beskriva en annan spelares beteende som den inte ursprungligen tränades på. Deng & Dong (2014) förklarar att djupinlärning är ett område inom maskininlärning som försöker

efterlikna den mänskliga hjärnans uppsättning av neuroner, se figur 4.

7

(13)

Figur 4​ - Ett venndiagram som visar olika sektorer inom artificiell intelligens. Den inkluderar beskrivningar av artificiell intelligens, maskininlärning och djupinlärning (Avimanyu786 2019).

2.3.1 Recurrent Neural Network

Hagan, Demuth, Beale & Jesús (2014) samt Graves (2012) beskriver normala artificiella neurala nätverk (ANN) som framåtmatande nätverk. De skickar enbart data framåt i nätverket tills det når utmatningsnoderna. Efter att datan har nått sista lagret i nätverket är processen klar och utmaningsdatan används inte igen för återkommande inmatningar.

Recurrent Neural Networks ​(RNN) fungerar annorlunda från normala ANN. RNN ger respons till tidigare lager. Ett ANN har enbart kopplingar framåt medans ett RNN har ytterligare kopplingar bakåt. Utmatningasdata från nätverket blir senare en del av inmatningsdatan till samma nätverket. Beräkningen av inmatning till utmatning inom nätverket i tidssteget t beror på resultatet av utmatningen från beräkningen i tidssteget t-1. Tidssteget t+1 beror därför på resultatet från tidigare tidssteg t. Konsekvensen av att utmatningen beror på nuvarande inmatningar samt utmatningen av tidigare tidssteg är att nätverket får ett korttidsminne.

RNN kan utnyttja korttidsminnet för att visa tidsrelaterade beteenden och konsekvent mer komplicerade beteende som inte går att uppnå med enbart ANN (Hagan, Demuth, Beale &

Jesús 2014, Graves 2012). Coppin (2004) ger exempel på problem RNN kan lösa men vilket normala ANN är inkapabla till. Exempelvis kan ett RNN användas för att förutspå vad vädret kommer vara nästa dag baserat på vädret under tidigare dagar eller värdet av ett aktiekapital baserat på värdet under tidigare dagar.

2.3.2 Long Short Term Memory

Ett Long Short Term Memory (LSTM) är en utveckling av RNN originellt skapat av

Schmidhuber (1997) för att lösa ett problem som kallas för “explosive or vanishing gradient”.

Resultatet av det är att nätverket blir svårt att träna och tar lång tid att felsöka (Hochreiter, Bengio, Frasconi & Schmidhuber 2001). Gers, Schmidhuber och Cummins (2000) upptäckte

8

(14)

senare att LSTM hade problem med situationer där träningen inte uppdelades i sekvenser med tydliga slut. Problemet resulterade i att värdena inom det gömda lagret växte utan begränsning. Det åtgärdades med tillägget av något som de kallar en glömport (forget gate).

Gers, Schmidhuber och Cummins (2000) beskriver att ett LSTM nätverk använder

minnesblock i dess gömda lager. Ett minnesblock består av åtminstone en minnescell och tre olika multiplikativa portar: en inmatningsport (input), utmatningsport (output) och en glömport.

Portarna tillåter minnescellerna att spara information över längre tidsperioder samt väljer vilken information som läggs till eller tas bort. Portarna består av ett neuralt nätverks lager som använder aktiveringsfunktionen sigmoid och en punktvis multiplikationsoperation. Lagret returnerar ett värde mellan noll och ett där värdet bestämmer hur mycket som släpps

igenom, noll betyder att inget får släppas igenom och ett betyder att allt släpps igenom (Gers, Schmidhuber & Cummins 2000).

Den första porten, glömporten, reglerar vad som ska sparas i minnescellen baserat på utmaningsdatan från det tidigare tidssteget och inmatningsdata från det nuvarande

tidssteget. Den andra porten, inmatingsporten, består av två neurala nätverks lager. Ett lager med aktiveringsfunktionen sigmoid och ett lager med aktiveringsfunktionen tanh.

Inmatningsdatan multipliceras med utmaningsdatan från det tidigare tidssteget och bearbetas av en sigmoid och tanh funktion. Resultatet av funktionerna multipliceras sedan med

varandra och produkten av beräkningen adderas sedan med värdet från glömporten för att få det nya värdet i minnescellen. Den sista porten, utmaningsporten beräknar utmaningsdatan som nätverket får. Inmatingsvärdet multipliceras med föregående tidssteg utmaningsvärde och passeras genom en sigmoid funktion. Resultatet av denna beräkning multipliceras med värdet i minnescellen som bearbetas av en tanh funktion vilket blir det slutliga

utmatningsvärdet för nätverket. För en visuell representation se figur 5 (Gers, Schmidhuber &

Cummins 2000).

Gers, Schmidhuber och Cummins (2000) beskriver processen matematiskt med följande formler:

σ(W x U h b )

ft= f t + f t−1+ f

σ(W x U h b ) i

t

=

i t

+

i t−1

+

i

σ(W x U h b ) o

t

=

o t

+

o t−1

+

o

f i ∘τ(W x U h b )

c

t

=

t

° c

t−1

+

t c t

+

c t−1

+

c

o )

h

t

=

t

° τ(c

t

, och beskriver värdet för glömporten , inmatningsporten och utmatningsporten

ft it ot ft it

. är värdet minnescellen får och är det slutliga utmaningsvärdet för nätverket. tecknet

ot ct ht σ

betyder att en sigmoid funktion ska användas och betyder att en tanh funktion skaτ användas. visar det nuvarande tidssteget.t W U, och representerar respektive vikt ochb bias matris för vardera port (Gers, Schmidhuber & Cummins 2000). Gers, Schmidhuber och Cummins förtydligar i studien att inom minnesblocket benämner x inmatningen till blocket och

9

(15)

h benämner utmatningen. Värdet av minnescellen visas med c. Suffixen t visar vilket tidssteg som används. Minnesblocket innehåller också tre stycken viktmatriser: W, U och b. W

appliceras till inmatningen, U appliceras på utmatningen och b till bias. Som i vanliga ANN har varje lager egna vikter och ​biases​. De betecknas med suffixerna: f, i, o och c. Som exempel appliceras W​i , U​i och b​i på inmatningsporten.

Figur 5 ​- ​En visuell representation av ett LSTM block. Input xt är inmatningsdatan i

nuvarande tidssteg, ht är utmatningsdatan och ht-1 är utmatningsdatan från tidigare tidssteg.

ct är minnescellens värde i nuvarande tidssteg och ct-1 är minnescellens värde från förra tidssteget. σ betyder att en sigmoid funktion används och tanh betyder att en tanh funktion användas. x betyder kryssprodukten och + betyder addition (Chevalier 2018).

2.3.3 Reinforcement learning

Reinforcement learning​ är en maskininlärningsmetod som kan användas med neurala nätverk (Szepesvari 2010). ​Reinforcement learning​ kräver en agent och en miljö som agenten kan observera och påverka tillståndet i. ​Reinforcement learning​ består av fyra ytligare komponenter: en belöningssignal, en policy, en värdefunktion och en modell (Sutton

& Barto 2018).

För att träna nätverk med ​reinforcement learning​ används en belöningssignal. Signalen används för att bedöma om agenten presterat bra eller dåligt genom att ändra ett internt värde hos agenten. Genom att observera och interagera med miljön försöker agenten att maximera det interna värdet under träningsperioden. Belöningssignalen agenten får baseras på den nuvarande miljön och vad agenten gjort det tidssteget (Sutton & Barto 2018).

10

(16)

En policy bestämmer hur nätverket ska agera i olika situationer och belöningssignalen bestämmer hur policyn sig själv utvecklas. Värdefunktion beräknar den potentiella mängden belöning som agenten kan samlas in ifrån den nuvarande situationen. Agenten använder information i samband med sin policy för att bestämma vilken handling den ska vidta.

Belöningssignalen hjälper agenten med korttidsplanering och värdefunktionen hjälper agenten med långtidsplanering. Långtidsplaneringen inkluderar inte endast nuvarande situation och belöningen som kan fås just nu, utan innefattar även potentiella framtida situationer med tillhörande belöningar (Sutton & Barto 2018).

Agentens modell tillåter agenten att räkna ut hur miljön kommer att ändras i relation till nuvarande situationen och agentens nuvarande handling. Genom att räkna ut framtida tillstånd av miljön kan modellen planera i förväg och agera därefter (Sutton & Barto 2018).

För att ​reinforcement learning​ ska hitta en optimal policy som leder till stora belöningar behöver agenten kunna utnyttja det den kan och vet. Agenten behöver också utforska nya handlingar som den inte har provat tidigare för att potentiellt hitta bättre sätt att maximera dess belöning (Sutton & Barto 2018).

2.4 Unity ML-Agents Toolkit

ML-Agents är ett verktyg skapat av Unity Technologies (Juliani et al. 2018). ML-Agents är deras egen skapade verktyg för att enkelt och smidigt inkorporera maskininlärning i spel och simulationer skapade i Unity. ML-Agents ger tillgång till ​reinforcement learning,

imiteringsträning (eng. imitation learning), neuroevolution (eng. neuro evolution), LSTM och andra metoder. Verktyget och träningen kontrolleras med en Python API baserad på

Tenserflow som är ett bibliotek för maskininlärning med öppen källkod (Tenserflow 2015).

För användning av ML-Agents behövs en scen i Unity konverteras till en inlärningsmiljö. En inlärningsmiljö består av en agent, en akademi och en hjärna. Agenten samlar information om miljön och agerar beroende på den informationen. En hjärna förser en policy samt är ansvarig för beslutsgörande till sina sammankopplade agenter. Akademin är ansvarade för koordinering av miljö simulationen genom att till exempel hålla reda på vilket tidssteg som simulationen är på och definiera parametrar för att starta om simulationen. Användaren av verktyget behöver själv definiera i agentens kod vilka observationer i miljön den ska göra, vilka handlingar den ska kunna göra beroende på de observationerna samt när och hur mycket den blir belönad (Juliani et al. 2018).

För att ge exempel på hur en inlärningsmiljö skapad med ML-Agents verktyget innehåller den också en samling av flera exempel miljöer som visar upp olika inlärningsmetoder och

inställningar (Juliani et al. 2018). För att bestämma andra inställningar som exempelvis vilka belöningsignaler som ska ges, vilka inlärningsmetoder som ska användas och storleken på nätverket används en konfigureringsfil som användaren sedan hänvisar till genom ett Python APIn när användaren startar träningen. Verktyget inkluderar också exempel på inställningar för varje exempel miljö för att ge en idé på lämpliga inställningar (Juliani et al. 2018).

11

(17)

2.4.1 Generative Adversarial Imitation Learning

Inom imiteringsinlärning har ML-Agents två algoritmer, Beteendekloning (BC) och

​Generative Adversarial Imitation Learning​” (GAIL). Imitationsinlärning kan använda båda algoritmerna samtidigt för att träna agenter (Juliani et al. 2018). GAIL är en övervakad inlärningsmetod skapad av Ho och Ermon (2016). Med GAIL tränas ytterligare ett neuralt nätverk som kallas diskriminatorn. Diskriminatorns jobb är att skilja på om utmatningar ifrån nätverket som ska imiteras är från agenten eller inspelad demonstrationsdata. Den kan sedan belöna agenten beroende på hur nära utmatningen efterliknar demonstrationen.

Agenten tränas till att maximerar hur mycket den belönas men diskriminatorn blir också bättre på att urskilja mellan agenten och demonstrationen. Det betyder att desto bättre agenten blir på att imitera demonstrationen desto närmare behöver agenten imitera den för att få en stor belöning.

2.4.2 Beteendekloning

BC är en inlärningsmetod baserad på imitering som helt tränar agenten till att imitera en inspelad demonstration istället för att att maximera en belöning som GAIL. Metoden behöver en inspelad demonstration för att träna sig. Oftast är detta i formen av en serie av data.

Datan består av ett tillstånd och en handling, där tillståndet beskriver den nuvarande situationen demonstrationen befann sig i och handlingen beskriver hur demonstrationen agerade. BC metoden försöker sedan att nå liknande handlingar i liknande tillstånd (Bratko, Urbančič &​Sammut 1995).

2.4.3 Proximal policy optimization

En av reinforcement learning metoderna som ML-Agents använder är proximal policy optimization (PPO). Metoden baseras på att en gradient beräknas på policyn över en bestämd mängd tidssteg. Beräkningen görs med hjälp av en ​stochastic gradient ascent algoritm som vanligtvis betecknas med följande formel:

[□ logπ (a |s )A ] gˆ = E ˆ

t

θ θ t t

ˆ

t

är den stokastiska policyn och​ är estimationen av värdefunktionen på ett givet tidssteg.

πθ

A

t

indikerar medelvärdet på datan under den bestämda mängden tidssteg i en algoritm som

varierar mellan att optimera sitt nuvarande beteende och utforska nya beteenden (Schulman, Wolski, Dhariwal, Radford & Klimov 2017).

2.5 Mänsklig AI

Yannakakis & Togelius (2018) förklarar att artificiell Intelligens är en viktig del av speldesign och spelares nöje. Under senare år har artificiell intelligens gjort framsteg både på grund av ökat intresse och tillgång till bättre hårdvara. Genom åren har ett stort mål inom forskning av artificiell intelligens varit att skapa AI som kan utföra uppgifter lika bra eller bättre än människor. Det är något som forskning har lyckats med i flera mindre sektorer. Forskningen

12

(18)

har vidareutvecklas till uppgifter som är enkla för människor fast svåra för AI, speciellt för metoder som tillståndsmaskiner och beteendeträd. En studie av Hadfield-Menell, Andrus och Hadfield (2019) talar om värdet av vad de kallar “silly rules”, oskrivna regler och beteende inom grupper av människor som inte har specifika anledningar eller ingen direkt positiv effekt. Silly rules kan vara ett medvetet eller omedvetet val som människor gör. Studien förklarar att det är viktigt att studera och implementera silly rules i AI som ska samarbeta med människor för att förbättra samarbetet och förståelse med människor. Eftersom många av dessa regler är undermedvetna eller reflexiva hos människor är det svårt att identifiera beteenden samt att förklara hur dessa beteenden ska implementeras (Hadfield-Menell, Andrus och Hadfield 2019).

Arrabales, Ledezma och Sanchis (2009) beskriver att det är problematisk att skapa mänskligt beteende hos agenter i spel, speciellt eftersom spelens komplexitet har ökat. Tidigare spel som Pac-man och Space Invaders behövde inte använda komplicerade metoder för AI.

Studien förklarar att komplext beteende behövs för att efterlikna mänskligt beteende och den slutliga produkten resulterar ofta i besvikelse jämfört med en mänsklig spelare. Den förklarar även att de tror att anledningen till att nuvarande AI har problem med mänskligt beteende är för att AI inte besitter tillräckligt kognitiv kraft. Studien argumenterar för en kognitiv modell som modellerar det mänskliga undermedvetna för att göra AI mer mänskligt. En nyare studie av Berner et al. (2019) beskriver att de lyckas få delvis mänskligt spelbeteenden för sitt neurala nätverk OpenAI Five i spelet Dota 2. Dota 2 spelas av två lag på en rektangulär bana där varje lag har en bas på motsatta hörn av spelplanen som ansluts med tre filer, se figur 6.

Ett lag består av fem spelare som kontrollerar olika karaktärer med unika förmågor. Målet med spelet är att förstöra motståndarlagets bas.

Figur 6 ​- ​En visuell representation av spelplanen som Dota 2 spelas på. På motsatta hörn av spelplanen ligger vardera lags bas som har tre filer ansluta mellan sig. Varje fil har hinder i form av torn som markeras med de röda och blå prickarna. Varje lag har lika många hinder

13

(19)

på vardera sida av spelplanen. Mellan filerna finns djungeln, om lagen besegrar fienden i djungel kan de få guld och uppgraderingar (Raizin 2019).

Berner et al. (2019) förklarar att OpenAI Five använde vissa mänskliga spelstrategier.

Studien tydliggör att skillnaden var att OpenAI Five förflyttade spelkaraktärer mellan olika positioner på spelplanen oftare. OpenAI Five använde även resurser mer aggressivt än mänskliga spelare då de mänskliga spelarna brukade spara resurserna i hopp om att ett tillfälle där resurserna behövs mer skulle dyka upp (Berner et al. 2019).

Lidén (2004) förklarar att en agent som spelar för bra eller på orealistiska sätt inte är underhållande att spela mot eller att vara allierad med. En motståndare som alltid vinner är frustrerande att spela mot och en allierad som alltid vinner minskar intresset. Potisartra och Kotrajaras (2010) beskriver att spelare finner det mer intressant om agenter spelar på

samma nivå som spelaren. Conroy, Wyeth och Johnson (2011) förklara att spelaren upplever orealistiskt övermänskliga förmågor och beteende från agenter som fusk och frustrerande om det inte presenteras på ett sådant vis att övernaturliga förmågor förväntas av den.

Beteende som kan anses likna fusk inkluderar att kunna veta var spelaren och resurser är utan att behöva se dem i strategispel eller snabba reaktionstider och hög precision i ett ​first person shooter​ (FPS). Soni & Hingston (2008) samt Livingstone (2006) förklarar att det är viktigt att en agent inte är för enkla att besegra. En agent med enkla beteende är inte intressant. En agent behöver också vara tillräckligt oförutsägbara för att behålla spelarens intresse. Om en AI är förutsägbar är den öppen för utnyttjande av spelaren.

Pfau, Smeddinck och Rainer (2018) diskuterar i en studie relevansen med mänskligt

beteende hos agenter i ​massive multiplayer online role playing games​ (MMORPG). I studien konstaterar de att spelare som spelar mot en agent spelar i snitt betydligt mindre timmar i veckan än personen som spelar mot andra mänskliga motståndare. Längden en spelare engagerar sig i att spela mot datorstyrda agenter skulle öka om dessa agenter upplevs spela mänskligt och på samma nivå som den mänskliga individen (Pfau, Smeddinck och Rainer 2018).

Tester från Soni och Hingston (2008) visar att spelare finner mer nöje i att spela mot agenter som besitter mänskligt beteende än agenter som inte gör det. De testade det genom att skapa tre olika typer av agenter, en handprogrammerad och två neurala nätverk. Den handprogrammerade varianten använde det redan existerade standard beslutssystemet i spelet som de använde som testmiljö. Båda agenterna som styrdes av neurala nätverk var styrda med hjälp av varsitt ANN. Det ena nätverket innehöll dock mer noder som beskrev dess nuvarande beteende och uppmuntrade mer byten av beteende i jämförelse med det andra nätverket. Soni och Hingston hoppades att det neurala nätverket som innehöll fler noder skulle vara mindre förutsägbart och därmed mer mänsklig. De lät deltagare spela mot agenterna som sedan fick svara på vilka de tyckte var mest mänskliga och intressanta att spela mot. Testerna visade överlag att de tyckte att de neurala nätverken var både mer mänskliga och intressantare att spela mot, vilket tyder på en korrelation mellan mänskligt beteende och nöje (Soni & Hingston 2008).

Livingstone (2006) presenterar tre olika kategorier av kriterier för att bedöma trovärdigheten 14

(20)

av AI i spel som han kallar “The PAR AI Believability Criteria” se Tabell 2. Kriterierna presenterade i tabellen är indelade i tre kategorier och detaljerna av kraven för att uppfylla dessa kategorierna varierar på genre av spel som agenten implementeras i. Kravet för planering är exempelvis inte desamma för en FPS och ett ​real-time strategy​ (RTS) spel.

15

(21)

Tabell 2 ​The​ ​PAR AI Believability Criteria.

En tabell som beskriver olika kriterier och vad de innebär. Kriterierna borde uppfyllas av en agent för att bete sig mänskligt (Livingstone 2006).

AI borde

Planera (1.1) Demonstrera någon form av strategisk/taktisk planering (1.2) Kunna koordinera handlingar med spelare eller annan agent

(1.3) Inte upprepade gånger försöka en tidigare misslyckad plan eller handling Agera (2.1) Agera med mänsklig reaktionstid och förmåga

Reagera (3.1) Reagera till spelarens närvaro och handlingar lämpligt (3.2) Reagera till ändringar i den lokala miljön

(3.3) Reagera till närvarande fiender och allierade

Livingstone (2006) förklarar att “Planera” syftar på en agents förmåga att tänka framåt och förbereda för framtida händelser som att planera ett bakhåll mot spelaren eller andra agenter. Planering syftar också på agenten ska kunna koordinera med andra agenter eller spelaren. Det kan exempelvis betyda att slåss som ett team eller att koordinera på ett sådant sätt att agenterna inte söker igenom samma områden ifall de letar efter något. Det sista exemplet på planering är en agents förmåga att lära sig av sina misstag, så att en agent inte försöker upprepa tidigare misslyckade handlingar och exempelvis hamnar i en oändlig loop där samma beteende upprepas för evigt (Livingstone 2006).

Yannakakis och Togelius (2018) påstår att koordination är problematisk att utföra med avseende på spelarsamarbete. Det är enklare att göra en agent som kan koordinera med andra agenter baserat på en strategisk AI som inte kontrollerar en individuell agent utan hjälper till att koordinera en grupp med agenter. Enligt en studie av Kambhampati (2019) utvecklar två människor som arbetar tillsammans en modell av varandras mål och förmågor, vilket användes för att förbättra arbetsprestandan. Studien föreslår att en AI som samarbetar med en människa också behöver integrera denna mentala modellen för att dess handlingar ska vara förståeliga för en människa. Den artificiella intelligensen behöver inte bara planera baserat på sina egna förmågor och förståelse på världstillstånd utan behöver också ta hänsyn till spelarens mål, förmågor och spelarens modell av agenten (Kambhampati 2019).

Kategorin “agera” som Livingstone (2006) presenterar beskriver en agents förmågor och hur bra de är på spelet överlag. Till exempel borde en agent i de flesta tillfällen ha reaktionstider och sikte liknande de hos en riktig människa. Den sista kategorin “reagera” involverar agentens medvetande om dess omgivning, hur väl den reagerar till ändring i den lokala miljön, om den reagerar till allierade eller fiender och om den reagerar väl till handlingarna av spelaren. Kriterierna i ​The PAR AI Believability Criteria​ är förslag och behöver nödvändigtvis inte följas för att skapa en trovärdig karaktär om det finns passande narrativa anledningar till det. Exempelvis behöver inte karaktärer ha mänskliga förmågor om karaktären inte ska upplevas som mänsklig (Livingstone 2006).

16

(22)

2.6 Agent följeslagare

Yildirim och Stene (2008) beskriver att det är viktigt för följeslagare att bete sig på ett mänskligt sätt. Eftersom den ska spendera stora delar av spelets tid tillsammans med spelaren är det viktigt att dess närvaro ger en positiv känsla. En studie av Emmerich, Ring och Masuch (2018) visar att spelare föredrar följeslagare som bland annat:

● Har sina egna mål och planer.

● Reagerar realistiskt till miljön de är i och ändringar till den.

● Agerar oberoende från spelare.

● Tar eget initiativ och interagerar med världen och spelarkaraktären.

● Har liknande förmågor som spelaren.

Yildirim och Stene (2008) förkortar ner punkterna till två viktiga kriterier: det är viktigt att följeslagaren är kompetent och självgående.

På samma sätt som människor bildar mentala modeller av varandra behöver följeslagare också bilda en modell av spelaren som den samarbetar med. Tremblay, Dragert och Verbrugge (2014) beskriver att enkla följeslagare som inte bildar en sådan modell kan misslyckas med att följa spelarens avsikt och därmed utföra dåligt samarbete vilket kan leda till frustration för spelaren. Om agenten inte lyckas samarbeta på ett sätt som spelaren förväntar sig kan spelarens inlevelse och förtroende för agenten förstöras. När spelaren tappar förtroende för agenten kan spelaren istället börja använda icke optimala taktiker som att lämna följeslagaren bakom (Tremblay, Dragert & Verbrugge 2014).

Tremblay (2013) förklarar att när en följeslagare ingår i strid är det viktigt att följeslagaren agerar med handlingar som reflekterar spelarens mål och taktiker. Som exempel borde inte agenten visa extremt aggressivt beteende om spelaren försöker strida på avstånd eller om spelaren försöker retirera. För att agenten ska kunna adaptera till spelarens förväntningar föreslår Tremblay att agenten ska innefatta en modell av spelaren som består av två primära typer av information om spelaren. Passiv information om spelaren, exempelvis spelarens förmågor, chansen av handlingar från spelaren men även aktiv information om spelaren som vad deras nuvarande mål är. Denna information kan användas av agenten för att bestämma vilka handlingar den borde ta för att samarbeta med spelaren på bästa sätt. Detta kan

inkludera om den ska dela resurser med spelaren, hur den ska röra sig och vilken stridstaktik den borde använda (Tremblay 2013).

17

(23)

3.Problemformulering

Syftet med studien var att undersöka om det går att skapa agenter som upplevs som mänskliga aktörer i ett 2D “top-down” wave shooter spel genom att låta deltagare spela tillsammans med agenterna för att evaluera agenternas mänskliga förmåga. Frågan undersöktes med hjälp av en agent kontrollerad av ett LSTM nätverk tränat med

reinforcement learning​ och en agent kontrollerad av ett beteendeträd. Resultatet av de två metoderna evaluerades baserat på deltagarnas uppfattning för att konstatera vilken som var bäst på att efterlikna mänskligt beteende.

Studien ställde och försöka svara på frågorna:

● Kan en följeslagare styrd av ett LSTM nätverk eller ett beteendeträd uppfattas som mänsklig i ett 2D top-down wave shooter spel?

● Om det går vilken metod är då bäst på att efterlikna mänskligt beteende?

Studien inspirerades av turingtestet, mer specifikt t1 testet som Livingstone (2006)

beskriver. T1 testet innebär att en artificiell intelligens och en människa utför en handling och en tredje deltagare bedömer vilken som är människan. Till skillnad från det normala

turingtestet får varken den artificiella intelligensen eller människan kommunicera med den tredje deltagaren. I undersökningen fick deltagaren endast observera och inte kommunicera.

Deltagarna fick spela med de olika agenterna och sedan bedöma vilken de trodde var en människa. Om majoriteten av deltagarna ansåg att en specifik agent var mänsklig drogs slutsatsen att den metoden var bäst, med avseende på hur metoderna implementerades.

En agent kontrollerades av ett beteendeträd som evaluerades med ett bestämt tidssteg i spelet. I varje tidssteg evaluerar beteendeträdets noder i trädstrukturen för att bestämma vilket beteende som ska utföras. Beteendeträdet evaluerar noderna i riktningen vänster till höger. Beteendeträdets handlingar designades efter observationer av hur människor spelar spelet. Handlingarna associerade med noderna simulerade aggressiva beteenden hos agenten som att attackera fiender, samarbetsinriktade handlingar som att hjälpa sin medspelare och passiva beteenden som att fördriva tiden när inget annat finns att göra.

Beteendeträdet designades på ett sådant vis att agenten aldrig är helt inaktiv.

Det neurala nätverket som kontrollerade den ena agenten baseras på ett LSTM.

Inmatningsdatan till nätverket bestod av information om agentens omgivning och tillstånd, till exempel vilket vapen agenten använder, mängd ammunition agenten har, hur

mycket hälsa agenter har, var närmsta fiende är och vilket orientering agenten har relaterat till fienden. Inmatningsdatan presenterades i form av ett värde som normaliserades och användas som en separat inmatingsnod. Nätverket hade lika många utmaningsnoder som det fanns kontroller till spelet förutom för rörelse och rotation. Dessa utmatningsvärden bestämde hur agenten ska röra sig vertikalt, horisontellt och vilken riktning agenten ska rotera. De andra utmatningsvärdena bestämde om agenten skulle utföra en handling eller inte.

18

(24)

Informationen som gavs av denna fråga var viktig eftersom mänskligt beteende hos en agent kan användas för en mängd områden. Som exempel kan en mänsklig agent användas för testning av spel för att både hitta buggar samt att hitta en passande svårighetsgrad för en given design av en bana. Mänsklig beteende hos AI kan också användas för att ge passade förmågor till fiender och allierade. Utöver det finns det bevis för att spelare hade

visat större engagemang över tid om agenterna använt mer utmanande beteende och

anpassats till spelarens kompetens istället för att ha bestämda svårighetsgrader som inte går att justera.

3.1 Metod

För att testa beteendet hos agenterna utvecklades ett spel där två spelare spelar med varandra. Spelet utvecklades i en 2D miljö med ett “top-down” perspektiv.

Spelarnas uppgift i spelet var att överleva i två och en halv minut där de fick kämpa mot fienden som försöker besegra dem. Spelarna blev besegrade om deras hälsa nådde värdet noll. Under spelets gång kunde spelarna plocka upp olika objekt i form av vapen, ammunition till vapen och hälsa. De olika vapen som spelarna plockade upp kunde användas för att lättare besegra fienden. När en fiende blev besegrad fanns det en chans att ett av de specificerade objekten dök upp på spelplanen där fienden tidigare befann sig. Vapen hade begränsat med ammunition vilket tvingade spelarna att plocka upp ammunition när det tog slut.

Det fanns två olika typer av fiender med varierad svårighetsgrad. En fiende slogs på nära avstånd, rörde sig snabbare och gjorde mindre skada. Den andra fienden slogs på avstånd, gjorde mer skada och rörde sig långsammare. Spelarna kunde samarbeta genom att dela med sig av ammunition och vapen för att besegra fienderna. Testmiljön valdes på grund av att en 2D miljö medförde lägre utvecklingstid och gjorde att spelet var enklare att utveckla än om spelet hade utvecklats i en 3D miljö. 2D miljön medförde fortfarande tillräckligt hög komplexitet för att träna upp en agent vilket gjorde att frågeställningen gick att undersöka med spelet som skapades.

I testmiljö behövde agenten lära sig följande:

● Navigera i miljön.

● Samla resurser och verktyg när det är lämpligt.

● Reagera till fiender och besegra dem med hjälp av de vapen som finns tillgängliga.

● Förstå att 0 hälsa resulterar i förlust samt undvika det tillståndet.

● Samarbete med den andra spelaren för att avklara gemensamma mål.

● Optimera och planera kring medspelare och tillgängliga resurser.

3.1.1 Implementation av agenter

Ena spelaren i artefakten kontrollerades av en mänsklig deltagare och den andra spelaren kontrollerades av en av två olika agenter. En variant var styrd av ett beteendeträd,

handprogrammerad för att efterlikna mänskligt beteende. Beteendeträdet valdes på grund av att de medför komplext beteende och jämfört med tillståndsmaskiner är stabilare (Isla 2005, Rabin 2008, Yannakakis & Togelius 2018). Den andra var styrd av ett RNN, mer specifikt ett LSTM nätverk tränad med ​reinforcement learning​. Valet gjordes på grund av att RNN har

19

(25)

visats ge bra resultat när det kommer till att imitera mänskliga spelare (Lipton & Elkan 2016, Hermans & Schrauwen 2013). Kambhampati (2019) föreslår att agenter borde ha en mental modell av medspelare. LSTM nätverk kan anses som en passande metod för att uppnå denna modell. Med hjälp av agenterna utfördes en studie på frivilliga deltagare där de fick spela med båda varianterna utan att vara medvetna om vilken de spelade med för att minimera partiskhet. Deltagarna blev tillsagda att en av agenterna var en riktig människa för att de inte ska misstänka att båda varianterna är datorstyrda agenter. Mellan varje omgång fyllde deltagarna i ett frågeformulär och efter testet fyllde deltagare i ett frågeformulär som involverade mer ingående frågor. I sista formuläret gavs en chans att jämföra båda

varianterna mot varandra.

3.1.2 Datainsamling

Deltagarna fick svara på generella frågor som involverar frågor om hur mycket

erfarenhet de har med datorspel. Anledningen till det var för att kunna gruppera deltagare baserat på erfarenhet för att bedöma om erfarenhet gav bättre igenkänning av mänskligt AI.

Utöver det innehöll frågeformuläret frågor kring deltagarnas intresse/utbildning för att bedöma om detta vägde in i bedömningen av mänskligt AI. Efter varje spelrunda fick

deltagarna svara på ett frågeformulär som involverar frågor kring den artificiella intelligensen de spelade med. Det är viktigt att frågorna inte avslöjade syftet med studien då deltagarna var ovetande kring vilken variant som testades. Efter båda omgångarna fick deltagare svara på ett mer ingående frågeformulär för att sammanfatta testet som helhet. Frågeformuläret mellan varje runda innehöll följande frågor:

● Visade följeslagaren mänskliga reflexer och beteende? I så fall hur?

● Visade följeslagaren potential till att planera? I så fall hur?

● Visade följeslagaren realistisk reaktion till miljön? I så fall hur?

● Hur mänsklig på en skala 1-5 var följeslagaren?

Frågorna valdes till stor del baserat på The PAR AI Believability Criteria tabellen. Frågorna var också öppna och frågar efter fri text istället för enbart en skala. Eftersom deltagarna nödvändigtvis inte har spelat med båda agenterna vid tillfället då de svarar på

frågorna gör det jämförelse svår. Livingstone (2006) menar också att trovärdigheten av agenter är en subjektiv fråga och att mäta trovärdighet på en skala är inte ett bra sätt då objektivitet är något som eftersträvades. Subjektiviteten undveks genom att bedömning baserad på fri text istället för en skala, anledningen till det var för att få en mer objektiv och genomtänkt bedömning (Namee 2004). Till exempel betyder inte nödvändigtvis varje nummer på en skala samma sak för alla deltagare, fri text lät istället deltagarna utveckla på deras tankar kring agenterna. Livingstone föreslår även att en direkt jämförelse mellan två olika varianter av AI är ett mer objektivt sätt att mäta trovärdighet.

Efter testerna hade prövat att spela med båda varianterna av AI och svarat på det tidigare frågeformulären fick deltagarna svara på ett större frågeformulär. Formuläret involverade frågor som jämför de olika varianterna av AI. Frågeformuläret fungerade även som en intervju där en diskussion fördes med deltagarna. Frågeformuläret innehöll följande frågor:

● Står du fast vid ditt beslut från tidigare frågeblanketter eller skulle du vilja ändra ditt svar?

● Vilken variant upplevde du som roligast?

20

(26)

● Vilken variant upplevde du som mest oförutsägbar?

● Vilken variant upplevde du som mest intelligent?

● Vilken variant upplevde du som mest hjälpsam?

● Vilken variant tror du var människan?

● Vilka beteenden ledde till att den mer mänskliga varianten uppfattades som mer mänsklig.

● Vad saknades från de mindre mänskliga varianten för att du skulle betrakta den som mänsklig?

Istället för att enbart fråga direkt hur trovärdig eller mänsklig en agent var, bestod frågeformuläret av frågor som uppmanar deltagaren att ge detaljerade beskrivningar av specifika kvaliteter hos agentens beteende. I slutet av testet fick deltagaren svara på en serier av frågor där de direkt jämförde det två olika agenternas mänsklighet och

kvaliteter. Uppställningen av frågeformulären var konstruerat på det viset eftersom att frågor om en agents beteende och jämförelser mellan agenter kan ge mer användbar data och mer detaljerad information (Namee 2004).

3.1.3 Etiskt ställningstagande

Eftersom studien involverade aspekter kring att automatisera och efterlikna mänskligt beteende i olika delar av spel väckte de frågan om att ersätta människor med maskiner.

Studien undersökte om det går att skapa mänskligt beteende hos LSTM neurala nätverk och beteendeträd i spel. Studien begränsades av att det endast går att applicera i spel för att förbättra de datorstyrda agenter som redan existerar i spel. Studien kan bidra till att fler liknande undersökningar utförs som inte är relaterade till spel men då är inte denna studien mindre aktuell eftersom det handlar specifikt om spel och människor beteende i spel. På grund av nämnda skäl var riskerna för att resultatet av studien ersätta människor med maskiner låg.

Under speltestningen fick deltagare minimal information om agenterna de spelade med. Deltagare fick även veta att en av agenterna är en riktig människa som de

spelar med, det var en lögn. Att ljuga för testare om vad de testar var nödvändigt för att minimera partiskhet. Det gav också högre probabilitet att deltagarna inte märker att det var två datorstyrda agenter de spelade med. Lögnen inom testningen anses vara acceptabel då det

följer riktlinjerna satta av det Amerikanska Psykologförbundet (Amerikanska Psykologförbundet 2017). Dessa riktlinjer är:

● Vinsten av information måste uppväga riskerna till deltagarna.

● Lögnerna gömmer inte möjliga risken om fara till deltagarnas fysiska och psykologiska hälsa.

● Alla lögner som är del av testningen förklaras så snabbt som möjligt till deltagarna.

Helst direkt efter testningen.

Lögnen hjälpte resultatet att vara relevant då agenten som betedde sig mest mänskligt antogs vara den riktiga människan. Lögnen ansågs ofarlig då den inte ledde till att deltagarna ställdes in situationer där de var tvungna att göra val som kan skada deras fysiska och psykologiska hälsa. Efter testet fick deltagarna veta att det var en lögn och anledningen till

21

(27)

varför lögnen användes samt vad som egentligen undersöktes. Vetenskapsrådet (2009) har liknande riktlinjer om detta för svensk forskning, i fall där förhandsinformation om forskningen skulle affektera resultatet är det okej att ge alternativ information om sanningen ges till deltagaren snabbt efter att testet var klart.

22

(28)

4. Genomförande

4.1 Implementation av spellogik

Spelet planerades till att vara enkelt att utveckla eftersom arbetet skulle utföras på fyra månader. Många val gjordes därför med denna tidsram i åtanke. Det som hållit minimal standard är först och främst grafik och design. Eftersom studien inte involverar att undersöka vardera område kommer det heller inte påverka resultatet då agenterna inte påverkas av hur miljön ser ut grafiskt eller hur den designats. Spelmiljön skapades fortfarande för att en mänsklig spelare skulle kunna spela spelet eftersom det är en viktig del av undersökningen.

Miljön bedömd utifrån ett spelperspektiv skulle anses vara en enkel demo. Spelet har sprites och 2D grafik med ett pixelerat utseende. Spelaren spelar spelet med en vy som efterliknar en satellit vy, även kallat top-down, se figur 7. Spelet går ut på att överleva faser med fiender som försöker besegra spelarna genom att minska spelarnas hälsa till 0, när spelarna överlevt en bestämd mängd faser utan att båda spelarnas hälsa nått 0 har de vunnit.

Figur 7 -​ ​En skärmdump från det utvecklade 2D top-down wave shooter spelet som beskrivs i sektion 4.1. En spelare och en agent (den längst till vänster) slåss mot fiender som indikeras av figurera som är röda och lila, Det finns även en resurs i form av en kulspruta på

marken.

Spelarna är limiterade till en bestämd rektangulär yta där de ska försvara sig från fiender som attackerar från alla håll. Det finns två varianter av fiender, en fiende som slåss på nära avstånd och en som kan skjuta projektiler från avstånd. Fiender som slåss på nära avstånd har dubbelt med hälsa jämfört med fiender som skjuter på avstånd. De har även högre hastighet och lägre skada eftersom de inte går att undvika dess slag från de fiender som

23

(29)

slåss på nära avstånd. Om en spelare blir besegrad av en fiende får den andra medspelaren en chans att hjälpa dem. Genom att röra sig nära kan en spelare återställa en besegrad medspelare tillbaka till fullt liv vilket tillåter dem att fortsätta spela.

För att spelarna ska klara av att försvara sig får de tillgång till hjälpmedel under spelets gång.

Tillgängliga hjälpmedel i spelet är vapen, hälsa och ammunition. Varje fiende har en chans att ge tillgång till hjälpmedel efter den blivit besegrad, och detta är enda sättet spelaren kan få tillgång till dessa hjälpmedel. Chansen att få olika hjälpmedel är störst för hälsa, därefter ammunition och minst chans är det att få ett vapen. Det finns tre olika vapen spelare får tillgång till som har olika chans att fås, en pistol, en kulsprutepistol och en automatkarbin.

Pistolen har spelarna alltid tillgång till för att garantera att spelarna alltid kan försvara sig.

Den har oändligt med ammunition och kan inte hittas genom att besegra fiender som resterande hjälpmedel. Vapnet gör också minst skada på fienden och har minst skott i

magasinet samt skjuter långsamt. Kulsprutepistolen är det vapen som har högst chans att fås från besegrade fiender av alla vapen och göra mer skada än pistolen men inte mer skada än automatkarbinen. Kulsprutepistolen skjuter snabbast och har mest ammunition i magasinet av alla vapen men har stört rekyl vilket gör det svårare att träffa fiender på avstånd. Det sista och mest sällsynta vapnet är automatkarbinen som gör mest skada och har minst rekyl.

Automatkarbinen skjuter långsammare och har mindre ammunition i magasinet jämfört med kulsprutepistolen. Däremot skjuter automatkarbinen snabbare och har mer ammunition i magasinet jämfört med pistolen.

När spelaren plockar upp hälsa återställs deras hälsa till sitt maximala värde. Samma gäller för ammunition, det nuvarande vapnet får då maximal ammunition. Det går inte att plocka upp ammunition för vapen spelaren inte använder utan det är direkt relaterat till vapnet som används. Om spelaren plockar upp ammunition när spelaren använder pistolen händer ingenting eftersom pistolen har oändligt med skott. Ammunition är universell till alla vapen och spelare kan välja att dela med sig av det de har för sitt vapen till medspelaren om medspelaren skulle behöva ammunition. Det är ingen visuell skillnad på ammunition som framkommer från när fiender besegras och det som ges av spelare. Ammunition som ges av spelare får dock en hastighet åt hållet som spelaren siktar vilket får uppkomsten av

ammunitionen att skilja sig från hur den uppstår annars.

Många av valen för spelmekaniker och hur de fungerar är designat med agenterna i tankarna för att uppmuntra samspel mellan inte bara agenten och spelaren, men också agenten och spelets design. Som exempel dyker inte ammunition upp tillräckligt ofta för att en spelare inte ska få slut på ammunition, vilket ger agenten en chans att släppa sitt vapen för att använda pistolen ifall agenten har slut på ammunition. Eller om spelaren har slut på ammunition ger det agenten en chans att dela sin egen ammunition med spelaren. Andra spelmekanismer som förmågan att hjälpa besegrade medspelare ger ytterligare chans för agenten att reagera på sin medspelares tillstånd. Eladhari, Sullivan, Smith och McCoy (2011) föreslår att

spelmekanismerna och agenter borde designas med varandra i tankarna, annars kan agentens beteende sakna kontext och komplexitet.

24

(30)

4.1.1 Speltestning

För att få en grundläggande idé av hur en spelare beter sig i spelet utfördes speltestning.

Datan som samlades in hjälpte till i att designa beteendeträdet och delar av det neurala nätverket. En lista av märkvärdiga beteenden antecknades.

● Spelarna försöker hålla ett konsekvent avstånd från fienderna.

● Om fienden kan skjuta eller om det är för många fiender försöker spelaren att cirkulera kring dem.

● Spelarna försöker att prioritera en fiende men byter om det blir för svårt att döda den eller om spelarkaraktären är under hot.

● Spelarna prioriterar att döda fiender som kan attackera från avstånd.

● Spelarna undviker kanterna av spelmiljön.

● Om för många fiender existerar slutar spelarna att försöka fokusera fiender och byter ofta fokus mellan olika fiender.

● Spelarna sätter sig i stor risk för att byta vapen från pistolen. Spelarna går nära stora grupper av fiender för att byta vapen.

● Spelarna sparar resurser i spelmiljön tills det behövs.

● Spelarna attackerar fiender konstant och slutar sällan att skjuta.

● Vid lugna tillfällen försöker spelarna att underhålla sig själv genom att:

○ Skjuter åt slumpmässiga håll.

○ Vandrar spelmiljön.

○ Snurrar och roterar deras sikte exalterat.

○ Plockar upp och släpper vapen upprepade gånger.

4.2 Implementation av beteendeträd

Nodvarianterna i beteendeträdet skapades genom att först skapa en icke definierad generell nodklass som innehåller alla variabler och funktioner som alla barn klasser kommer använda.

Som exempel delar alla noder en “​evaluate​” funktion som kallar på sig själv för alla nodens barn. När ​evaluate​ når de sista barnet i sin hierarki returnerar den värdet som de barnet evalueras till vilket kan vara framgång eller misslyckande. Tillståndet som returneras beror på resultatet av alla dess barn och vilken nod typ den själv är. I vanliga beteendeträd kan noder också returnera pågående (Simpson 2014). Pågående används inte i

implementationen av beteendeträdet eftersom noderna evalueras varje ​frame för att minimera reaktionstiden på specifika val inom rörelse för agenten.

Agentens beteende är indelat i tre olika beteendeträd som hanterar olika delar av beteendet.

Ett beteendeträd hanterar vilken fiende som agenten fokuserar på. Ett annat beteendeträd kontrollerar agentens sikte och när den skjuter. Det sista, största och mest komplicerade beteendeträdet kontrollerar agentens rörelse, upp plockningen av resurser och samarbete med medspelaren. Agenten har tre olika beteendeträd för att kunna simulera olika

reaktionstider för olika beteenden. Som exempel är det viktigt att agenten agerar snabbt i sin rörelse för att undvika fiender samt förflytta sig till sitt mål utan problem. Övermänskliga reaktionstider inom val av fiende och skjutning uppfattas som orealistiskt av spelare (Livingstone 2006) vilket är anledningen till att de andra beteendena inte evalueras varje frame​. Hade beteendeträdet implementerat pågående tillståndet skulle inte flera olika

25

References

Related documents

Environmental change can affect food webs by altering the transfer of ener- gy (i.e. bottom-up processes), the strength of trophic interactions (i.e. top- down control) and

Not counting the African Union (AU), which comprises all African states except Marocco, Africa’s current integration landscape contains an array of intergovernmental

• …the construction industry should initially focus on product modularity – a “bottom-up” product

Although the research about AI in Swedish companies is sparse, there is some research on the topic of data analytics, which can be used to understand some foundational factors to

electronics and Electrical circuits). Immediately after the enquiry four groups of students were randomely selected and interviewed about the enquiry and the courses. The enquiry

Sen följs det upp, vi följer alltid upp när vi får ett ärende så tar vi först ett samtal med barnen sen efter en till två veckor så tar vi ett nytt samtal för att se ifall det

Responses for roll, vertical acceleration and wave added resistance has been calculated with two different methods; idealized method utilizing a Bretschneider spectrum

Figure 7.11: The kinetic energy of a fluid in a pillar of water experiment with 2000 particles in (a) and 1000 particles in (b), simulated with the Clavet method.. (a) The first