Utvärdering av maskinlärningstekniker för styrning av individer i stridande förband i datorspel O L O F B J Ö R K

Storlek: px
Starta visningen från sidan:

Download "Utvärdering av maskinlärningstekniker för styrning av individer i stridande förband i datorspel O L O F B J Ö R K"

Transkript

1 Utvärdering av maskinlärningstekniker för styrning av individer i stridande förband i datorspel O L O F B J Ö R K Examensarbete Stockholm, Sverige 2007

2 Utvärdering av maskinlärningstekniker för styrning av individer i stridande förband i datorspel O L O F B J Ö R K Examensarbete i datalogi om 20 poäng vid Programmet för datateknik Kungliga Tekniska Högskolan år 2007 Handledare på CSC var Anders Lansner Examinator var Anders Lansner TRITA-CSC-E 2007:065 ISRN-KTH/CSC/E--07/065--SE ISSN Kungliga tekniska högskolan Skolan för datavetenskap och kommunikation KTH CSC Stockholm URL:

3 Referat Datorspelstillverkare har på senare tid börjat upptäcka maskininlärningstekniker. I dagens komplexa spel försöker man ofta skapa artificiella intelligenser som spelaren ska uppleva som intelligenta. Ett vanligt problem är dock att spelare tenderar att hitta brister i den artificiella intelligensen och sedan utnyttja dessa, varvid illusionen av intelligens oftast försvinner. Genom att låta den artificiella intelligensen utvecklas under spelets gång, kan den återvinna spelarens förtroende. I detta arbete används övervakad och belöningsbaserad inlärning för att låta individerna i ett stridande förband välja hur de ska bete sig. Som funktionsapproximator har ett artificiellt neuronnät med ett gömt lager använts. För den belöningsbaserade inlärningen testades tre olika inlärningsalgoritmer: TD, SARSA och advantage learning. Alla tre gav fungerande resultat, men SARSA, som är den enklaste, var snabbast. Metoden torde kräva ett visst mått av handpåläggning för att kunna användas i kommersiella syften, då den ofta växlar mellan bra och dåliga strategier under inlärning.

4 The use of machine learning techniques to control individuals of fighting squads in computer games Abstract Computer game producers have started to use machine learning techniques to improve the artificial intelligence in their games during the past few years. In todays advanced games, the creators usually try to give the player the impression that the artificiall intelligence is truly intelligent. This builds immersion and lets the player become more attached to the game. One problem is that players have a tendency to find and exploit flaws in the artificial intelligence, which usually destroys the immersion. Allowing the artificial intelligence to adapt to the player, gives it the opportunity to regain that immersion. In this project, supervised learning with a teacher and reinforcement learning have been used to create a system that chooses the behaviour of individuals in a military squad. An artificial neural network with one hidden layer has been used to model the different functions. During the reinforcement learning phase of the project, TD, SARSA and Advantage Learning were used. While each of them managed to produce good policies, SARSA did it in the shortest time. Using the method in a commercial context would require some amount of smarts, since it has a tendency to switch between good and bad policies while improving.

5 Förord Det har varit en väldigt intressant och givande upplevelse att genomföra det här projektet, något som aldrig hade varit möjligt utan min projektpartner Ragnar Svensson som arbetade med den ordergivande delen av projektet och med vilken jag har bollat alla idéer och problem jag haft under projektets gång. Tack Ragnar. Projektet hade ej heller varit möjligt utan Avalanche studios, som lät oss arbeta direkt i deras spelmotor. Ett extra tack till alla som hjälpte oss med att få motorn att fungera och till vår handledare Linus Blomberg som såg till att allt flöt på. Även ett stort tack till Anders Lanser på CSC på KTH, som lät oss genomföra ett från början rätt luddigt projekt och hjälpte oss att avgränsa det. Utan er hade detta examensarbete aldrig färdigställts.

6 Innehåll Förord Förkortningar I Huvuddel 1 1 Inledning Bakgrund Finita tillståndsmaskiner Flockalgoritmer Planeringsalgoritmer Theory of Mind Övervakad inlärning Belöningsbaserad inlärning Flera lärande agenter Projekt Problemformulering Syfte Teori Övervakad inlärning Noder Inlärningsfunktion Belöningsbaserad inlärning Markovkedjor Markovianska beslutsprocesser Inlärning av policy Q-learning Utforska eller utnyttja Temporal differens Advantage Learning Funktionsapproximator

7 3 Metod Utvecklingsmiljö Avgränsningar Beteenden Order Indata Beslutsfattande Övervakad inlärning Träningsdata Träning av nät Val av beteende Belöningsbaserad inlärning Belöningsfunktion Indata Val av beteende Inlärningsproblem Visualisering Viktmatriser Belöning Resultat Övervakad inlärning Indatarum Gömda noder Överträning Belöningsbaserad inlärning Advantage learning Spaning Attack Förtränade nät Inlärningshastighet Prestanda Slutsatser Beteenden Övervakad inlärning Belöningsbaserad inlärning Problem Maskininlärning för kommersiella syften On-line träning i spel Rekommendationer Indataparametrar Utforska eller utnyttja

8 6.3 Diskreta eller kontinuerliga beteenden Belöningsbaserad inlärning med lärare Mer riktade beteenden Möjliga tillämpningar II Avslutande del 49 Litteraturförteckning 51 Bilagor 52 A Appendix 53

9 Figurer 4.1 Gömda noder mot antal epoker Överträning, rättklassning Överträning, medelvärde av kvadrerat fel Spaningsorder, direkt Spaningsorder, residualalgoritmer Viktmatris spaningsorder Attack, SARSA och Advantage Viktmatriser, förtränat nät mot brus Belöningar för förtränat nät mot brus

10 Tabeller 3.1 Belöningsfunktion attack Belöningsfunktion reträtt Belöningsfunktion spaning Belöningsfunktion gruppering Belöningsfunktion ingen order Indatarum Indatarum A.1 Utnoder med respektive beteenden A.2 Indatavektor

11 Förkortningar Förklaring till de förkortningar som används i rapporten. AI ANN DAI FPS GOAP HTN JC MAS MDP MLP SARSA SCG TD ToM Artificiell intelligens Artificiellt neuralt nätverk Distribuerad artificiell intelligens First Person Shooter Goal Oriented Action Planning Hierarchial Task Networks Just Cause, datorspel utvecklat av Avalanche Studios Multiagentsystem Markoviansk beslutsprocess Flerlagersperceptron State-Action-Reward-State-Action Scaled Conjugate Gradient Temporal differens Theory of Mind

12

13 Del I Huvuddel 1

14

15 Kapitel 1 Inledning Det finns situationer då man vill ge en autonom agent order. Det kan till exempel röra sig om en koordinator som har mer information än agenten själv, men som inte har intresse eller möjlighet att styra agenten i detalj. Det kan också handla om en blandad grupp av agenter och människor, eller en hierarkisk grupp av agenter. När en agent får en order tar den själv ställning till vad den ska göra, utifrån dess egen percepterade bild av omvärlden. Agenten blir alltså semi-autonom, ordern fungerar som en extra invariabel. Situationen är väldigt vanlig i datorspelssammanhang, där ofta flera agenter styrs mot ett gemensamt mål (vanligtvis att besegra en mänsklig spelare). Tanken är att agenten får en order och då analyserar situationen, det kan till exempel vara så att agenten besitter information som den som gav ordern inte har tillgång till. Därefter utför agenten den eller de handlingar den finner bäst lämpade för kombinationen av order och situation. En agent som denna kan implementeras på många olika sätt. En simpel variant är att låta varje order svara mot en handling, när agenten får en order utför den omedelbart motsvarande handling om den har möjlighet till detta. Den ordergivande enheten får då direkt kontroll över agenten, som nästan helt förlorar sin autonomitet. En annan variant är att agenten har en finit tillståndsmaskin, som specificerar agentens handlande beroende av vilket tillstånd den är i. Varje tillstånd har en policy för vilka handlingar som ska utföras. Ett exempel på ett tillstånd kan vara vakt, då kan agenten stå still och skjuta mot den närmsta fiende den kan se. Varje order kan då svara mot ett tillstånd, när agenten får en order byter den omedelbart till motsvarande tillstånd. Det går också att låta övergången mellan tillstånd vara beroende av både order och agentens percepterade bild av världen. Detta ökar agentens komplexitet och gör den mindre förutsägbar, framförallt om en betraktare inte känner till vilken order agenten agerar under. Även detta kan lösas på flera olika sätt, men i följande examensarbete är tanken att övergångarna mellan olika tillstånd ska styras av ett inlärt beslutsfattande. De metoder som kommer att testas är dels övervakad inlärning av en flerlagersper- 3

16 KAPITEL 1. INLEDNING ceptron (MLP) och sedan oövervakad inlärning med belöningsfunktion (reinforcement learning) och kontinuerlig q-funktion. 1.1 Bakgrund Artificiell intelligens finns på många olika nivåer i de flesta större datorspel. Exempel på lågnivå AI i spel är path finding och val av animationer för avatarer på skärmen. För att styra agenter i spel används flera olika tekniker. Vanligast är finita tillståndsmaskiner och varianter på dessa som använder fuzzy logik för att avgöra vad som ska göras [Sweetser(2002)]. Vissa spel kräver väldigt lite autonomt handlande från sina agenter och använder sig av skript för att beskriva agentens handlande i detalj. Andra agenter kan styras mer som dynamiska system med flockalgoritmer [Reynolds(1987)]. Även planeringsalgoritmer som Goal Oriented Action Planning(GOAP) och Hierarchial Task Networks(HTN) har börjat användas i spel. [Orkin(2004)] Vilken sorts artificiell intelligens som används har mycket att göra med vad som behövs för att ge spelaren en bra spelupplevelse. Om agenten bara ska gå mot spelaren för att spelarens avatar ska kunna hoppa och landa på den, finns det ingen riktig anledning att modellera agentens känsloliv och ge den förmåga att lära sig spelarens taktik för att överlista denne. Om agenten däremot ska förhandla med spelaren, eller överlista densamme i en first-person-shooter(fps), kan den behöva större resurser för att verka trovärdig Finita tillståndsmaskiner Används ofta i datorspel för att styra en agent som har flera avgränsade beteenden. En agent befinner sig alltid i exakt ett tillstånd och varje tillstånd modellerar ett beteende. Varje tillstånd har en policy för när agenten ska byta till ett annat tillstånd. Ett vanligt exempel i datorspel är en vakt som patrullerar tills den ser en fiende, då övergår den till att attackera fienden och när fienden inte längre kan uppfattas (då den antingen eliminerats, eller försvunnit från platsen) går den tillbaka till att patrullera[fu and Houlette(2004)]. En variant av finita tillståndsmaskiner är fuzzy tillståndsmaskiner. Dessa behandlar tillstånd på ungefär samma sätt som fuzzy logik använder sig av påståenden. En agent kan vara 20% i patrullerande tillstånd, 70% attackerande och 10% flyende. Fuzzy tillståndsmaskiner är vanligare i spel där spelarens avatar har mer komplicerade relationer till andra agenter. En agent kan då vara t.ex. 10% arg, 20% stressad, 50% vänlig och 20% osäker, dessa olika tillstånd får då tillsammans avgöra hur agenten reagerar på spelaren[buckland(2004)] Flockalgoritmer Flockalgoritmer och styrbeteenden skapar en reflexiv artificiell intelligens. Agenten avläser världen och försöker sedan röra sig efter enkla regler. Flockbeteenden 4

17 1.1. BAKGRUND som liknar de som återfinns hos fåglar och fiskar kan fås genom att låta agenten röra sig i samma riktning och hastighet som sina grannar i flocken, undvika grannar som kommer för nära och styra mot det som uppfattas som flockens centrum [Reynolds(1987)]. Liknande beteenden kan användas för att få agenten att undvika väggar, följa ett spår, eller försöka fånga en annan agent [Reynolds(1999)] Planeringsalgoritmer Istället för att modellera agenters mål indirekt, genom att till exempel bestämma att de ska attackera fiender de kan se, går det att bestämma agentens mål och sedan försöka hitta en plan som ska uppfylla detta mål. Varje mål har ett antal krav för att vara uppfyllt. Planeraren har till uppgift att försöka hitta en stig till målet genom en graf med handlingar som i GOAP, eller genom en graf med handlingar och delmål som i HTN [Russell and Norvig(2003), s.422]. Noderna i grafen har olika krav för att tillåta att en kant till noden traverseras, handlingen att skjuta med ett vapen kan t.ex. inte utföras om agenten inte har tillgång till vapnet i fråga, eller saknar rätt ammunition. Eftersom världen som agenten agerar i ofta är dynamisk och kan ändra sig under tiden att agenten utför planen, kan planen behöva planeras om flera gånger innan agenten faktiskt når målet.[buckland(2004)] Theory of Mind Theory of Mind (ToM) är en benämning av en kognitiv egenskap. De flesta människor har ToM, vilket innebär att man förstår att andra människor kan ha en egen världsuppfattning, egna tankar och egna intentioner. ToM är en så basal funktion för de flesta, att vi ger föremål, som inte alls har något eget sinne, egna tankar och intentioner. Ofta försöker vi dessutom att koppla ihop slumpmässigt beteende med någon form av bakomliggande intelligens. [Schwab(2004), s. 17] I datorspelssammanhang betyder detta att det kan vara relativt enkelt att skapa en illusion av intelligens, där det inte finns någon sådan. Om agenterna ser ut att kommunicera med varandra genom att ropa kommandon, kommer vissa spelare inte bara tro att det finns ett system för kommunikation mellan agenter, utan att det systemet faktiskt är de ropade kommandon spelaren själv hört.[orkin(2006)]. Genom ToM går det att öka spelarens inlevelse i spelet och på så sätt göra en artificiell intelligens mer trovärdig Övervakad inlärning Om man har tillgång till många exempel på konfigurationer av agenten och världen den existerar i och motsvarande handlingar som man vill att agenten ska utföra, kan man använda dessa för att få agenten att handla på samma sätt om den uppfattar världen på samma sätt eller liknande de exempel som använts. För att agenten ska kunna generalisera och agera tillfredsställande även i tidigare osedda situationer, bör man välja en representation av världen som är så generell som möjligt. 5

18 KAPITEL 1. INLEDNING Artificiella neurala nätverk (ANN) kan tränas att följa presenterade exempel och kan generalisera bra Belöningsbaserad inlärning Belöningsbaserad inlärning skiljer sig från övervakad inlärning genom att man inte har exempel som visar vilka handlingar som är bra i vissa situationer. Istället kan man utvärdera varje handling och ge en belöning eller bestraffning som är beroende av om den var bra eller dålig. Belöning och bestraffning kan ges manuellt av en användare, men vanligare är att en funktion automatiskt genererar belöningar och bestraffningar [Harmon and Harmon(1996)]. Ett exempel är en agent som ska hitta ut ur en labyrint, varje sekund den befinner sig i labyrinten får den en bestraffning och när den hittat ut slutar bestraffningen. Med en automatisk belöningsfunktion blir inlärningen oövervakad och kan ske både off-line dvs. agenten får träna innan den används på riktigt i spelet och on-line, vilket betyder att agenten lär sig under spelets gång Flera lärande agenter När flera agenter arbetar tillsammans mot ett mål, så kallade kooperativa system av flera agenter (MAS), kan man använda en lärande enhet som delas av alla agenter och som på så sätt försöker hitta en gemensam policy, eller så har man flera lärande enheter, ofta en för varje agent[panait and Luke(2005)]. De samarbetande agenterna bildar i båda fallen en distribuerad artificiell intelligens (DAI). 1.2 Projekt Detta examensarbete är en del i ett projekt om två examensarbeten. Det andra examensarbetet är utfört av Ragnar Svensson och finns beskrivet i detalj i [Svensson(2006)]. Projektet avser att undersöka hur en hierarkisk, lärande artificiell intelligens kan användas i datorspelssammanhang. Den hierarki vi valt att använda oss av består av två nivåer. På den övre nivån finns en ledare som ger order, och på den lägre nivån finns gruppmedlemmar som väljer sina beteenden utifrån given order. I detta examensarbete kommer fokus ligga på de individuella gruppmedlemmarna Problemformulering Projektet har som mål att undersöka hur agenter i ett MAS kan fås att agera samspelt med hjälp av maskininlärningstekniker. Varje agent är autonom, men kan få en order att förhålla sig till. Varje order innebär att agenten förutsätts uppfylla vissa givna mål, men det ska vara upp till varje agent individuellt att se till att målen blir uppfyllda. 6

19 1.2. PROJEKT Syfte Projektet avser att utvärdera huruvida övervakad och belöningsbaserad inlärning är användbara för grupper av stridande enheter i kommersiella datorspelssammanhang. Effektiviteten i utvecklingstid och exekveringstid ska undersökas, men även underhållningsvärdet. Kan maskininlärningstekniker lösa upp den i många falla rätt statiska artificiella intelligens som är vanligt förekommande i datorspel idag? och gör det i så fall att den blir roligare, eller tråkigare att spela mot? 7

20

21 Kapitel 2 Teori Här kommer den teori som ligger till grund för de olika delarna i projektet att presenteras. 2.1 Övervakad inlärning Att lära med en lärare är en form av övervakad inlärning. Den utgår från att den finns ett problem, till exempel att utifrån givna data göra ett val mellan ett antal fördefinierade klasser. Det lärande systemet som ska tränas försöker välja en klass och dess svar jämförs sedan med lärarens svar. Därefter modifieras systemet till att ge samma svar som läraren[haykin(1999), s.65]. Artificiella neurala nätverk är en sorts lärande system som kan lära en sådan klassning[mitchell(1997), s.81]. Om nätet bara har ett lager kan det bara klassa linjärt separerbara data, ett nät med flera lager kan dock utföra godtyckliga klassningar. Ett tvålagersnät består dels av ett gömt lager, vars aktivering aldrig observeras direkt och sedan ett utlager, vars aktivering är nätets svar på indata. Varje lager består av en mängd noder, som i det gömda lagret kopplar till nätets indata och i utlagret kopplar till det gömda lagret. Varje nod i ett lager har en koppling till varje nod/indata i föregående lager. Det gömda lagrets storlek kan bestämmas godtyckligt, men nätets förmåga att approximera en funktion eller göra korrekta klassningar, försämras när antalet gömda noder minskar. På samma sätt ökar risken att nätet blir övertränat och förlorar sin förmåga till att generalisera när antalet gömda noder ökar.[gurney(1997), s.91] För att göra en klassning av en indatavektor x till en klass, är det lämpligt att låta varje klass representeras av en nod i utlagret. Vid träning gäller då att det element i utdatavektorn y som svarar mot den korrekta klassen C k ska vara 1 och övriga 0 (2.1) [Haykin(1999), s.185]. y k = { 1 x Ck 0 x / C k (2.1) 9

22 KAPITEL 2. TEORI Noder Varje nod i nätet är uppbyggd på samma sätt. Den består dels av en vektor av vikter w, en för varje indata som kommer till noden och dels av en överföringsfunktion ϕ. För att kunna klassa alla möjliga funktioner har varje nod dessutom en vikt w 0 som alltid har ett som indata. Indata består av en vektor av skalärer x. Varje skalär multipliceras med sin respektive vikt och summeras. Summan går sedan genom överföringsfunktionen och resultatet blir aktiveringen från noden i fråga (2.2). Som överföringsfunktion används ofta mjukt trösklande funktioner. För att kunna träna nätets lager, måste överföringsfunktionen vara deriverbar. Två exempel på överföringsfunktioner är den logistiska fördelningsfunktionen (2.3) och hyperbolisk tangens (2.4)[Haykin(1999), s.168]. Linjära överföringsfunktioner kan användas, men är inte lämpliga i det gömda lagret, eftersom hela nätet då kan förenklas till ett enlagersnät. y(x) = ϕ(w T x + w 0 ) (2.2) Där y är aktiveringen ut från noden och ϕ är överföringsfunktion. ϕ(x) = ϕ är en logistisk fördelningsfunktion. α och β är konstanter e (αx β) (2.3) ϕ(x) = tanh(x) (2.4) ϕ är en överföringsfunktion byggd på hyperbolisk tangens Inlärningsfunktion För att ett nät ska kunna prestera väl, krävs att det tränas med exempel där svaret är givet. Ju bättre exemplen lyckas täcka indatarummet, desto bättre kommer nätet att prestera. Om exempel är motstridiga, det vill säga för samma indata så finns det två svar, går det inte att skapa en funktion som ger korrekt svar för alla exempel. En robust inlärningsfunktion hanterar dock detta, så att en lämplig kompromiss uppstår. Träning sker antingen sekventiellt eller satsvis. Sekventiell träning sker på följande vis: 1. Ett exempel presenteras för nätet. 2. Nätets svar jämförs med det korrekta svaret. 3. Nätets fel beräknas. 4. Inlärningsfunktionen uppdaterar nätets vikter baserat på felet. 5. Åter från 1. 10

23 2.1. ÖVERVAKAD INLÄRNING I sekventiell träning kan det vara lämpligt att exemplen kommer i blandad ordning, annars kan nätet börja pendla mellan olika lägen. Det går också att träna nätet satsvis, då presenterar man alla exempel och beräknar felet för vart och ett innan nätets vikter uppdateras. Backpropagation Om man bara har ett lager, så är det enkelt att härleda varifrån ett fel kommer och ändra vikterna därefter (2.8). I ett nät med gömda noder, är det dock svårare att hitta vilka vikter som ska ändras och hur. Utlagrets vikter ändras baserat på det gömda lagrets aktivering, det gömda lagrets vikter uppdateras genom att felet tillåts att propagera bakåt genom utlagrets noder (2.7). För att nätet ska kunna konvergera multipliceras uppdateringen med en inlärningsfaktor η, där 0 < η < 1. δ (o) k = (y k t k ) ϕ (y k ) (2.5) δ (o) k är det generaliserade felet för nod k i utlagret, t k är målvärdet som tränas mot och yk är aktiveringen i nod k före applicering av överföringsfunktion.[gurney(1997), s.67]. ( ) δ (h) j = v j,k δ (o) k ϕ (h j) (2.6) k δ (h) j är det generaliserade felet för nod j i gömda lagret och v j, k är vikten mellan nod j i gömda lagret till nod k i utlagret[gurney(1997), s.67]. w i,j = ηx i δ (h) j (2.7) w i,j är viktuppdateringen för vikten mellan indata i och nod j i det gömda lagret[gurney(1997), s.67]. v j,k = ηh j δ (o) k (2.8) v j,k är viktuppdateringen för vikten mellan nod j i det gömda lagret och nod k i utlagret[gurney(1997), s.67]. Backpropagation fungerar både sekventiellt och satsvis. Scaled conjugate gradient method Scaled conjugate gradient method (SCG) är en algoritm för att snabbt optimera vikter i nätet. Istället för att, som i backpropagation, sätta steglängd och eventuell momentumterm för hand, så använder SCG en metod för att beräkna den optimala steglängden i varje uppdatering. Algoritmen kräver fler beräkningar, eftersom steglängden beräknas som ett minimeringsproblem. Den konvergerar dock i gengäld på betydligt färre iterationer, vilket i praktiken gör den snabbare. [Möller(1993)] 11

24 KAPITEL 2. TEORI Viktavklingning För att undvika överträning och stora vikter som tvingar upp den trösklande funktionen och blir svåra att påverka, kan vikterna minskas med en liten faktor i varje iteration [Mitchell(1997), s.111]. För att hålla vikternas magnitud stor, krävs det då att det kommer exempel som visar att den måste vara stor, annars minskar den. w i,j = (1 ηγ)w i,j (2.9) Viktavklingningen för en vikt under en uppdatering av nätet. γ är viktavklingningsfaktor. 2.2 Belöningsbaserad inlärning Oövervakad inlärning löser ett inlärningsproblem utan att ha en expert som först visar hur något ska göras. Belöningsbaserad inlärning är ett mellanting mellan oövervakad och övervakad inlärning. Tekniken bygger på att det går att värdera en situation och ge belöning eller bestraffning utifrån denna värdering. Sedan optimeras agentens beteende för att uppnå så hög belöning och låg bestraffning som möjligt. Experten behöver själv inte veta hur problemet ska lösas, bara kunna värdera agentens beteende. Detta gör att experten ofta kan skapas med enkel logik Markovkedjor En Markovkedja är en mängd tillstånd s S och en funktion som ger sannolikheten för att ett tillstånd ska övergå i ett annat P (s, s ). Sannolikheten att ett tillstånd övergår i ett annat är enbart beroende av nuvarande tillstånd och helt oberoende av tidigare tillstånd och övergångar, detta kallas för att systemet har en Markovegenskap [Haykin(1999), s.548]. För att göra systemet belöningsbaserat läggs en belöningsfunktion R(s t, s t+1 ) till. R ger en belöning för övergången mellan två tillstånd. Eftersom det inte finns några möjliga val att göra i en Markov-kedja, går inlärningen oftast ut på att hitta värdefunktionen för den avskrivna summan av alla framtida belöningar från ett tillstånd. [ ] V (s t ) = E γ i R(s i, s i+1 ) (2.10) i=t Där 0 γ 1 är en avskrivningsfaktor och E är väntevärdet av alla möjliga framtida övergångar. Om något tillstånd har sannolikhet 1 att vara nästa tillstånd från sig själv, är det brukligt att denna övergång inte ger någon belöning och tillståndet brukar kallas för absorberande. Om belöningarna är begränsade och antingen γ < 1 eller att från varje tillstånd så är sannolikheten 1 att till slut hamna i ett absorberande tillstånd, så är V väldefinierad.[baird(1999a)] 12

25 2.2. BELÖNINGSBASERAD INLÄRNING Markovianska beslutsprocesser En Markoviansk beslutsprocess (MDP efter engelskans Markov decision process) liknar en Markov-kedja, men skiljer sig från denna genom att det innan varje övergång fattas ett beslut om en handling att utföra. Det finns en begränsad mängd handlingar a A att utföra i varje tillstånd. Varje par av s och a har en sannolikhet att resultera i en övergång till varje annat tillstånd. För sannolikhetsfunktionen P (s, a, s ) gäller att: P (s, a, s ) 0 s s S (2.11) s P (s, a, s ) = 1 s S (2.12) Även MDP har Markovegenskaper, så att P alltid enbart är beroende av s och a. [Haykin(1999), s.605] För en MDP kan en policyfunktion π läras, som väljer handling i varje tillstånd på ett sådant sätt att V maximeras. Om man hela tiden följer en given policy, kan en MDP reduceras till en Markov-kedja. [Baird(1999a)] V kan sägas ha konvergerat till den optimala V om Bellmanekvationen uppfyllts(2.13). [Mitchell(1997), s.386] V (s) = V (s) V (s) = E [ R(s, s ) + γv (s ) ] (2.13) Inlärning av policy En agent som befinner sig i en miljö som inte är fullt observerbar kan bilda sig en egen uppfattning om miljön och utifrån denna interna bild av sin omgivning utföra lämpliga handlingar. I det diskreta fallet gäller att S är mängden av alla tillstånd agenten kan skilja mellan och A är mängden av alla möjliga handlingar agenten kan utföra. I varje diskret tidssteg t känner agenten av omgivningen som ett tillstånd s t S och väljer ut en handling a t A som den utför. Omgivningen svarar genom att ge agenten en belöning r t = r(s t, a t ) och skapar nästa tillstånd s t+1 = δ(s t, a t ). Om omgivningen är stokastisk, eller inte fullt observerbar, är det möjligt att r och δ inte är deterministiska ur agentens perspektiv. Belöningsbaserad inlärning söker en policy-funktion π : S A. Det vill säga en funktion som givet ett tillstånd s S ger en handling a A. [Mitchell(1997), s.369] Den giriga varianten av π söker alltid maximera r t = r(s t, a t ), det vill säga den försöker alltid utföra den handling som just nu ger störst belöning. Det kan dock vara lämpligare att beräkna värdefunktionen V π (s t ) (2.14) som en funktion av 13

26 KAPITEL 2. TEORI kommande belöningar och på så sätt försöka nå största möjliga förväntade belöning i framtiden.[mitchell(1997), s ] V π (s t ) r t + γr t+1 + γ 2 r t (2.14) γ i r t+i i=0 Avskrivningskonstanten 0 γ < 1 kan sättas så att framtida belöningar blir mer eller mindre värda. Om γ = 0 har vi den giriga algoritmen. Den optimala policyn blir nu: π argmax V π (s), ( s) (2.15) π Värdefunktionen för den optimala policyn V är det maximala förväntade värdet i varje tillstånd. Utifrån V, r och δ kan istället π hittas enligt (2.16) Q-learning π (s) = argmax[r(s, a) + γv (δ(s, a))] (2.16) a Istället för att separera policy och värdefunktion, går det att beräkna båda samtidigt. Från (2.16) har vi att π alltid strävar efter att maximera V och r genom att välja a sådant att agenten hamnar i s med högt värde. Q-funktionen använder både tillstånd och handling för att hitta värdet av varje handling i varje tillstånd. Detta är väldigt praktiskt när δ(s, t) är okänd. Q(s, a) r(s, a) + γv (δ(s, a)) (2.17) Det går nu att skriva den optimala policyn som: π(s) = argmax Q(s, a) (2.18) a Förhållandet mellan Q och V är väldigt nära. Ur (2.16) tillsammans med (2.18) fås att: V (s) = max Q(s, a ) (2.19) a Vilket i sin tur gör att (2.17) kan skrivas om rekursivt och utan krav på en separat funktion för V. Q(s, a) = r(s, a) + γ max Q(δ(s, a), a ) (2.20) a 14

27 2.2. BELÖNINGSBASERAD INLÄRNING Med denna rekursiva definition av Q går det att beskriva algoritmen för att iterativt söka efter Q [Mitchell(1997), s.375]. 1. Sätt ˆQ(s, a) = 0 för alla kombinationer av a och s. 2. Observera nuvarande tillstånd s. 3. Välj en handling a och utför den. 4. Observera nästa tillstånd s. 5. Uppdatera: ˆQ(s, a) = r(s, a) + γ max a ˆQ(s, a ) 6. Sätt s = s. 7. Åter från 3. En lämplig fråga är huruvida ˆQ är garanterad att konvergera till Q. Konvergens är garanterad i det diskreta fallet om δ och r är deterministiska och r(s, a) < c där c är en godtycklig konstant, förutsatt att alla par av a och s testas ett oändligt antal gånger [Mitchell(1997), s.377] Utforska eller utnyttja I valet av a kan det under träning vara farligt att alltid följa π, eftersom agenten då inte kommer att testa alla par av a och s. Handlingar som tidigt får stora värden i ˆQ kommer att överanvändas, vilket resulterar att andra handlingar aldrig testas. Om handlingar istället väljs slumpmässigt så att alla möjliga par av a och s testas, kommer ˆQ få en långsammare konvergens eftersom sökningen inte fokuserar på mer intressanta handlingar. En variant är att låta valet av handling vara stokastiskt och använda värdet från Q i en sannolikhetsfunktion som i (2.21) [Mitchell(1997), s.379]. P (a i s) = k ˆQ(s,a i ) j k ˆQ(s,a (2.21) j ) Förhållandet mellan utforskning och utnyttjning sätts av konstanten k > 0. När k = 1 är valet helt slumpmässigt. k < 1 gör så att sämre val utforskas och k > 1 innebär att det som tidigare inlärts blir utnyttjat. Ett annat angreppssätt är att bestämma en sannolikhet ε med vilken en slumpmässig handling väljs och annars välja den som ger högst värde. [Russell and Norvig(2003), s. 774] { argmaxa Q(s, a) X ε π(s) = {a i i 1 n a Y < i n a } X < ε (2.22) 15

28 KAPITEL 2. TEORI Temporal differens Temporal differens inlärning (TD) är ett sätt att utnyttja att det finns två skattningar av värdet av ett tillstånd eller ett par av tillstånd och handling. Dels ett före handlingen utförts och dels ett efter. Sedan vägs de båda skattningarna samman för att få det nya värdet. Q (s, a) = r(s, a) + γ max Q(s, a ) Q(s, a) (2.23) a En variant av TD är SARSA, som istället för att välja det maximala Q-värdet i nästa steg istället väljer värdet för den handling som faktiskt utfördes[rummery and Niranjan(1994)]. Ekvationen ser då ut på följande sätt: Q (s, a) = r(s, a) + γq(s, a ) Q(s, a) (2.24) Eller omskriven som ett väntevärde: ( Q (s, a) = E r(s, a)γ ) P (a s )Q(s, a ) a (2.25) De ekvationer som presenterats här gäller för T D(0) och SARSA(0), de är varianter av T D(λ) och SARSA(λ) som går över flera än ett steg och har λ som avskrivningsfaktor Advantage Learning Genom att träna med små tidssteg, kan kontinuerlig tid användas för att ge snabbare inlärning. Advantage Learning [Harmon and Baird(1995)] bygger vidare på Advantage Updating [Baird(1993)] genom att använda en funktion där värdefunktionen fås ur (2.26) och övriga värden ur (2.27). V (s) = max A (s, a) (2.26) a A (s, a) = V (s) + E [ r(s, a)γ t V (s ) ] V (s) tk (2.27) Värdet för varje par av tillstånd och handlingar, representerar summan av värdefunktionen för tillståndet och den värdefördel som fås av att välja handlingen i det tillståndet, gentemot att välja den optimala handlingen. För alla sub-optimala handlingar kommer fördelen vara negativ. Tidssteget t kan tillåtas krympa och även ändras mellan olika uppdateringar. K är en tidskonstant som används för att skala differentieringen mellan det maximala värdet och övriga. 16

29 2.2. BELÖNINGSBASERAD INLÄRNING Funktionsapproximator För att använda belöningsbaserad inlärning, måste funktioner som π, V och Q kunna lagras på ett praktiskt sätt. När det handlar om ändliga och diskreta tillståndsrum, kan varje par av tillstånd och värde sparas i en tabell. Om tillståndsrummet är kontinuerligt, eller så stort att en tabell inte är möjlig, behövs ett alternativ. I dessa fall kan tabellen ersättas med ett neuralt nätverk [Harmon and Harmon(1996)]. För värdefunktionen kan då viktuppdateringen se ut på följande sätt om felgradienten följs direkt[baird(1999a)]: w d = η[r(s, s ) + γv (s ) V (s)] w V (s) (2.28) Om man använder SARSA i ett steg ser uppdateringregeln för nätets vikter ut på följande sätt: [Rummery and Niranjan(1994)] w d = η[r(s, s ) + γq(s, a ) Q(s, a)] w Q k (2.29) Med ett neuralt nätverk som funktionsapproximator blir konvergensen inte längre garanterad för till exempel Q-learning. Ett neuralt nätverk som tränas med backpropagation är garanterat konvergens till ett lokalt minimum för jämna funktioner, men många av de algoritmer som används för belöningsbaserad inlärning använder sig av max, vilket gör dem till icke-jämna. Det finns fall där systemen istället divergerar och ger större och större utslag för varje iteration. Från (2.13) vet vi vad som kännetecknar den konvergerade V, ur den ekvationen kommer Bellman-residualen som för en värdefunktion och ett tillstånd är differensen mellan högerled och vänsterled i Bellman-ekvationen. Baird [Baird(1999a)], [Baird(1999b)], [Baird(1995)] föreslår att istället för att vikterna ändras direkt i felgradientens riktning (2.28), ändras de i medelvärdet av den kvadrerade Bellman-residualens gradient (2.30). e = 1 n ( [ E R(s, s ) + γv (s ) ] V (s) ) 2 s Om e 0 så är V inte optimal och nätets vikter kan uppdateras på följande vis: (2.30) w rg = η ( r(s, s ) + γv (s ) V (s) ) ( w γv (s ) w V (s) ) (2.31) Baird menar också att uppdateringsregeln (2.31) garanterar konvergens. Ett problem är dock att konvergensen blir långsammare än när direkt gradientföljning används. Därför föreslår han en kombination av de båda: w r = (1 φ) w d + φ w rg (2.32) 17

30 KAPITEL 2. TEORI φ måste sättas på ett sådant sätt att divergens undviks, samtidigt som nätet lär sig så fort som möjligt. Detta fås genom att φ sätts så att w r blir ortogonal mot w r g. Gränsvärdet fås ur W r W rg > 0, där W står för den sammanlagda viktförändringen under en helt träningsepok. Gränsvärdet då de är ortogonala är: ((1 φ) W d + φ W rg ) W rg = 0 (2.33) φ = W rg W rg ( W d W rg ) W rg (2.34) Om (2.34) genererar φ > 1 bör φ sättas 1 och om φ < 0 bör φ sättas till 0. ε är en godtycklig, liten konstant som adderas för att vinkeln mellan den direkta viktförändringen och residualgradienten ska bli spetsig, vilket garanterar konvergens. Eftersom inlärningen i online-fallet ofta sker sekventiellt, behöver en total viktförändring skattas. Detta kan göras genom att på följande sätt spara två spårvärden för varje vikt: w d (1 µ)w d µ[r + γv (x ) V (x)][ w V (x)] (2.35) w rg (1 µ)w rg µ[r + γv (x ) V (x)][ w γv (x ) w V (x)] (2.36) Därefter kan φ skattas på följande sätt: w φ = w dw rg w (w + ε (2.37) d w rg )w rg Residualalgoritmer kan användas med andra inlärningsalgoritmer som Q-learning, SARSA och Advantage Learning. Bellman-ekvationerna för dessa ser ut som (2.38), (2.39) respektive (2.40). [Baird(1995)] [ ] Q(s, a) = E R(s, s ) + γ max Q(s, a ) (2.38) a Q SARSA (s, a) = E [ R(s, s ) + γq SARSA (s, a ) ] (2.39) [ ] ( A(s, a) = E R(s, s ) + γ tk max A(s, a 1 ) a tk ) max(s, a) (2.40) tk a 18

31 Kapitel 3 Metod Projektet utförs i två steg, först tränas ett neuronnät övervakat och sedan med belöningsbaserad inlärning. Under fasen av övervakad inlärning utvärderas vilka indata som är intressanta att använda och hur de ska representeras. Det nät som tränats övervakat kan sedan användas som grund för den belöningsbaserade träningen. Vilket indirekt betyder att inlärningsalgoritmen ges en färdig policy att förbättra. 3.1 Utvecklingsmiljö Vi gjorde implementationen dels i C++ och dels i Octave, en GNU-motsvarighet till Matlab. För den övervakade inlärningen samlades data in direkt i spelet Just Cause, datamängden behandlades sedan i Octave och tränades med neuronnätstoolboxen Netlab. De färdigtränade näten importerades till en egen neuronnätsimplementation i spelet. Den slutgiltiga belöningsbaserade inlärningen skedde sedan direkt i spelet. 3.2 Avgränsningar Agenterna detaljstyrs inte, istället väljs ett mer övergripande beteende ut. För att få en någorlunda hanterbar dimensionalitet så har indatarymden kraftigt förenklats. Den beteendeväljande artificiella intelligensen har till exempel ingen direkt uppfattning om världen runtomkring den, bara om agenter i dess närhet Beteenden Det finns en otalig mängd möjliga beteenden att låta agenterna välja mellan. I detta projekt har dock åtta diskreta beteenden valts ut. Den beteendeväljande enheten väljer alltid ut exakt ett beteende som agenten ska använda. De beteenden jag valt att använda är följande: Attack, agenten attackerar närmsta fiende. 19

32 KAPITEL 3. METOD Reträtt, agenten drar sig försiktigt undan från sin närmaste fiende samtidigt som den skjuter mot densamme. Ströva, agenten går runt på måfå. Fly, agenten flyr så fort den kan från sin närmsta fiende, om den inte ser någon fiende springer den vidare i samma riktning. Framryckning, agenten avancerar mot och attackerar närmaste fiende. Gömma sig, agenten hittar ett gömställe i närheten och rör sig dit. Sprid ut, agenten försöker ta sig bort från andra agenter i gruppen och skjuter samtidigt mot sin närmaste fiende. Gruppera, agenten försöker ta sig till gruppens medelpunkt och skjuter samtidigt mot sin närmaste fiende Order Den beteendeväljande enheten har alltid en order att gå efter, denna order kan vara av typen ingen order om order saknas. Följande order kommer att användas: Attack, gruppen ska attackera fiender. Gruppering, gruppen samlar sig. Reträtt, gruppen ska dra sig undan från fiender. Spaning, gruppen ska söka upp fiender, men inte nödvändigtvis anfalla dessa. Ingen order, agenten har inte fått någon order och agerar på egen hand Indata För att näten ska kunna generalisera väl samtidigt som tillräcklig information finns för effektiv beslutsfattning, krävs att indata representeras på ett smart sätt. Eftersom dimensionaliteten i ett datorspel som Just Cause är väldigt hög, är det viktigt att hitta en kompakt representation för att få ner beräkningsmängden. Ett högdimensionellt indatarum kräver dessutom fler exempel i övervakad inlärning eller fler belöningar i belöningsbaserad inlärning för att konvergera. Om indatarummet blir för litet, eller fel parametrar finns representerade, kan det bli svårt att hitta en fungerande policy. 20

33 3.3. BESLUTSFATTANDE 3.3 Beslutsfattande Det är viktigt att kunna göra en bedömning om när en övergång mellan två beteenden bör genomföras. Det naiva sättet är att välja beteende varje gång agenten uppdateras. Då riskerar man dock att få en agent som växlar mellan olika beteenden så ofta att den inte kan uppnå någonting. Man kan också tänka sig att växla enbart när det kommer en ny order. Detta skapar problem åt andra hållet, då en situation kan ha förändrats sedan ordern gavs (t.ex. kan en fiende ha besegrats, eller agenten blivit svårt skadad). För att kunna fatta beslut oftare i kritiska situationer används en potential som byggs upp av tiden och som ökar fortare när agenten nyligen blivit sårad. För att bestämma vilket beteende som ska användas har i det övervakade fallet en sannolikhetsfunktion som bygger på det normaliserade värdet av nätets svar för varje beteende. För den belöningsbaserade inlärningen användes både (2.21) och (2.22). Den senare har visat sig fungera bättre under inlärning, eftersom gruppen blir mer koordinerad, utan att förlora förmågan att utforska beteenden som bedömts vara sämre än det som anses optimalt just nu. 3.4 Övervakad inlärning Den övervakade inlärningen implementeras som en MLP och tränas med SCG. Varje order har ett eget nät, så att de inte ska störa varandra. Varje nät har ett gömt lager och en utnod för varje beteende. I gömda lagret används en hyperbolisk tangens (2.4) som aktiveringsfunktion och för utnoderna används en logistisk sigmoid (2.3). Valet av aktiveringsfunktion för det gömda lagret är gjort för att överenstämma med Netlabs aktiveringsfunktioner, då själva inlärningen sker i Octave med Netlab. För utlagret hade det varit möjligt med en linjär aktiveringsfunktion, men den logistiska sigmoiden har den fördelen att all utdata hamnar i intervallet 0 till 1. Detta passade när nätet skulle exekveras för att producera en sannolikhet för varje beteende Träningsdata Jag genererade själv träningsdata genom att välja beteende för en agent i spelet. Mina val sparades tillsammans med det aktuella tillståndet och användes som mönster och mål under träningen. När jag valde beteenden såg jag spelet ur en översiktsvy och de indata som sparades visades hela tiden på skärmen. Att jag visste mer om världen än agenten kan ses som ett misstag, men dels hade datainsamlingen varit för krävande om spelet varit ur agentens perspektiv och dels gav översikten mig ett övertag som gjorde att jag kunde göra bättre val av beteenden än annars. 21

34 KAPITEL 3. METOD Träning av nät När träningsdata vara genererad, lästes den in i Octave och användes för att träna nät i Netlab. Näten tränades med SCG och lämpligt antal iterationer och antal gömda noder testades. De färdiga näten sparades sedan och testades i Just Cause Val av beteende Det mest uppenbara sättet att välja ett beteende på är att helt enkelt ta det som gett störst utslag av nätet. Ett problem med det angreppssättet är att det i många situationer är flera beteenden som ger ungefär lika stort utslag. En anledning till detta är att träningsdata ofta är motsägelsefull, ena gången kanske anfall valts och den andra framryckning. Eftersom ett mål med den övervakade inlärningen är att få agenter som härmar mänskligt beteende, ville jag att agenterna också skulle vara lite oberäkneliga. Den sannolikhet med vilken varje beteende valdes var: P (a s) = y a a y (3.1) Där y a är nätets resultat för beteende a. 3.5 Belöningsbaserad inlärning Inlärningen genomfördes med belöningsbaserad inlärning. Q-funktionen i TD och SARSA och Advantage-funktionen i Advantage Learning modellerades på samma sätt i fallet med den övervakade inlärningen. Varje order har en egen belöningsfunktion och ett eget neuronnät. Det har föreslagits [Bakker(2004)] att använda ett nät till varje beteende, detta skulle dock resultera i 40 olika nät (fem olika order och åtta olika beteenden), vilket bedömdes som för omfattande. Det gömda lagret borde dessutom bli ungefär lika för alla beteenden, då varje order kretsar runt att uppfylla vissa krav. Viktavklingning användes för att undvika att nätens vikter blev onödigt stora, vilket kan resultera i ett nät som får svårt att ändra sig Belöningsfunktion Varje given order har en belöningsfunktion som återspeglar vad ordern vill åstadkomma, belöningsfunktioner för varje order återfinns i tabeller 3.1, 3.2, 3.3, 3.4 och 3.5. Återkommande i alla belöningsfunktioner är en bestraffning när agenten dör, detta för att agenterna ska ha möjlighet att finna strategier som även innebär att de överlever. 22

35 3.5. BELÖNINGSBASERAD INLÄRNING Händelse Belöning Fiende dör 10,0 Gruppmedlem dör -2,0 Agenten dör -4,0 Agenten träffar en fiende 5,0 Stort avstånd till närmaste fiende. -0,5/s Tabell 3.1. Belöningsfunktion för attackordern. Fokus är lagd på att agenten ska skjuta på fienden. För att göra agenten mer benägen att röra sig mot fienden än bort från den, så bestraffas agenten om dess närmaste fiende är långt bort (vilket även inträffar när agenten inte ser någon fiende). Agenten blir bestraffad när den dör och lite mindre bestraffad om en gruppmedlem dör, detta för att agenten inte ska agera alltför dumdristigt (det är trots allt sämre att kasta in en granat bland fienden om alla ens kamrater också står där). Händelse Belöning Agenten träffas -0,2 Agenten dör -5,0 Gruppmedlem dör -2,0 Stort avstånd till närmaste fiende. 1,0/s Stort avstånd till närmaste gruppmedlem. -1,0/s Agenten träffar en fiende 2,0 Tabell 3.2. Belöningsfunktion för reträttordern. När agenten får ordern reträtt är det meningen att den ska röra sig bort från fienden, därför får den belöning om fienden är långt bort. Agenten ska också undvika att bli träffad och att dö. Dessutom är det bra om andra gruppmedlemmar också överlever. För att agenten inte ska fly helt handlöst, får den en belöning för att träffa fiender, att döda fiender ger dock ingen extra bonus (även om det indirekt innebär att agentens egna chanser till överlevnad ökar). Agenten får dessutom en bestraffning om den separeras alltför mycket från sina gruppmedlemmar, detta för att förhindra att alla agenter springer åt varsitt håll. Händelse Belöning Agenten kan inte se någon fiende -2,5/s Agenten kan se fienden 2,0/s Stort avstånd till närmsta gruppmedlem 2,0/s Agenten dör -3,0 Tabell 3.3. Belöningsfunktion för spaningsordern. Under spaning är det meningen att agenten ska hitta fienden och inte släppa denna ur sikte. Som hjälp har agenten en belöning för att vara långt från andra gruppmedlemmar (detta gör att agenterna täcker en större yta och ökar deras chanser att hitta fienden, det gör också att agenterna har större chans att fånga upp eventuella flyende fiender). Agenten bör även se till att inte dö, då detta kan innebära att gruppen förlorar kontakten med fienden. 23

36 KAPITEL 3. METOD Händelse Belöning Agenten dör -3,0 Gruppmedlem dör -1,0 Stort avstånd till närmsta gruppmedlem -2,0/s Litet avstånd till närmsta gruppmedlem 3,0/s Tabell 3.4. Belöningsfunktion för grupperingsordern. Grupperingsordern syftar till att samla gruppens agenter, samtidigt som de ska undvika att bli dödade. Händelse Belöning Agenten träffas -0,1 Agenten dör -5,0 Gruppmedlem dör -1,0 Agenten träffar en fiende 2,0 En fiende dör 5,0 Tabell 3.5. Belöningsfunktion när ingen order är given. När ingen order ges, ska agenten mest försöka klara livhanken, det är dock bra om den även attackerar fiender. 3.6 Indata Ett första försök gjordes med indatarummet i tabell 3.6. Efter träning och testning med denna indatarymd visade det sig dock svårt att skilja på närvaro och frånvaro av fiende, då den informationen spridits ut på sex olika element. Just denna information är viktig i spelet då handlingar som attack, reträtt och framryckning saknar mening om det inte finns någon fiende synlig. För att göra denna information tydligare infördes fyra nya element till indatarummet vilket resulterade i rummet som finns beskrivet i tabell 3.7. Indata Antal parametrar Gruppmedlemmars positioner 6 Fienders positioner 6 Terrängmässiga fördelar 1 Hälsa 4 Agenten träffad 3 Annan medlem i gruppen träffad 3 Fiende träffad 3 Aktivt beteende 8 Summa: 34 Tabell 3.6. Det första indatarum som testades. 24

37 3.6. INDATA Indata Antal parametrar Gruppmedlemmars positioner 6 Fienders positioner 6 Terrängmässiga fördelar 1 Hälsa 4 Agenten träffad 3 Annan medlem i gruppen träffad 3 Fiende träffad 3 Aktivt beteende 8 Närvaro av annan gruppmedlem 1 Gruppen ser en fiende 1 Avstånd till närmaste gruppmedlem 1 Avstånd till närmaste fiende 1 Antal gruppmedlemmar agenten ej räknad 1 Antal synliga fiender 1 Summa: 40 Tabell 3.7. Det slutgiltiga indatarummet. Andra agenter Närvaro av andra agenter bör vara intressant ur beslutfattningssynpunkt. De agenter som kommer att tas hänsyn till är dels agenter i den egna gruppen och dels fientligt inställda agenter. Agenter som varken är fientliga eller allierade bedöms vara mindre viktiga för beslut på den här nivån. De scenarion som användts innehåller inga sådana agenter. Om scenarion med många neutrala agenter skulle användas, som t.ex. när poliser ska göra ingripanden i folkmassor, kunde det antagligen vara intressant. På en lägre nivå kan de dock ändå vara viktiga, så att de inte skadas av misstag. Allierade agenter som inte är en del av den egna gruppen sorteras också bort, dessa kan vara intressanta, men i de scenarion som använts har de inte förekommit. För att generalisera andra agenters positioner, kommer världen att delas in i två sektorer med agenten i centrum. Framför kommer skiljas från bakom och varje sektor kommer att delas in efter radiellt avstånd till agenten. De fyra avståndsindelningarna som är tänkta att användas för agenter i sektorn framför är: Nära, som är några meter i omfång och beskriver det område som en samlad grupp kommer befinna sig i och fiender som är i närstrid. Medel, som är avstånd mellan nära, till ett långt avstånd, inom detta avstånd kommer de flesta agenter föredra att strida. Långt, är avståndet mellan medel och slutet på agentens synfält. Bortom, är längre avstånd än agenten kan se. 25

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann 729G43 Artificiell intelligens / 2015 Maskininlärning 3 Marco Kuhlmann Förra gången: Perceptroninlärning Beslutsregel predicerat y-värde Exempel: AND Välj parametrar θ 0, θ 1, θ 2 sådana att perceptronen

Läs mer

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit.

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit. 2D1432 Artificiella Neuronnät och andra lärande system Lösningsförslag till Tentamen 2003-03-06 Inga hjälpmedel. Uppgift 1 Vilka av följande påståenden är sanna? Korrigera de som är fel. 1. Potentialen

Läs mer

GRIDWORLD OCH MDP PROJEKTRAPPORT 729G43 MICHAEL JONASSON

GRIDWORLD OCH MDP PROJEKTRAPPORT 729G43 MICHAEL JONASSON 2018 GRIDWORLD OCH MDP PROJEKTRAPPORT 729G43 MICHAEL JONASSON Innehåll Inledning & Bakgrund... 2 Förstärkt inlärning... 2 MDP... 2 Gridworld... 3 Nytta och policy... 4 Värdefunktion och Bellmanekvationer...

Läs mer

Artificiella Neuronnät

Artificiella Neuronnät Artificiella Neuronnät 2 3 4 2 (ANN) Inspirerade av hur nervsystemet fungerar Parallell bearbetning Vi begränsar oss här till en typ av ANN: Framåtkopplade nät med lagerstruktur 3 4 Fungerar i princip

Läs mer

Enlagersnät Flerlagersnät Generalisering. Artificiella Neuronnät

Enlagersnät Flerlagersnät Generalisering. Artificiella Neuronnät Artificiella Neuronnät 1 Karaktäristiska egenskaper Användningsområden Klassiska exempel Biologisk bakgrund 2 Begränsningar Träning av enlagersnät 3 Möjliga avbildningar Backprop algoritmen Praktiska problem

Läs mer

ARTIFICIELLA NEURALA NÄT. MARCO KUHLMANN Institutionen för datavetenskap

ARTIFICIELLA NEURALA NÄT. MARCO KUHLMANN Institutionen för datavetenskap ARTIFICIELLA NEURALA NÄT MARCO KUHLMANN Institutionen för datavetenskap Example Alt Bar Fri Hun Pat Price Rain Res Type Est WillWait 1 Yes No No Yes Some $$$ No Yes French 0 10 Yes 2 Yes No No Yes Full

Läs mer

de var svåra att implementera och var väldigt ineffektiva.

de var svåra att implementera och var väldigt ineffektiva. OBS! För flervalsfrågorna gäller att flera alternativ eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad. Totalt kan

Läs mer

729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap

729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap 729G43 Artificiell intelligens (2016) Maskininlärning 3 Marco Kuhlmann Institutionen för datavetenskap Modell med vektornotation parametervektor särdragsvektor Perceptron kombinerar linjär regression med

Läs mer

Självlärande Othello-spelare

Självlärande Othello-spelare Självlärande Othello-spelare Kan en dator lära sig att spela Othello? KLAS BJÖRKQVIST och JOHAN WESTER Examensarbete Stockholm, Sverige 2010 Självlärande Othello-spelare Kan en dator lära sig att spela

Läs mer

Pathfinding med reinforcement learning i delvis observerbara miljöer

Pathfinding med reinforcement learning i delvis observerbara miljöer Pathfinding med reinforcement learning i delvis observerbara miljöer Anne Engström Joel Lidin Gustav Molander Olle Månsson Noa Onoszko Hugo Ölund Institutionen för Matematiska vetenskaper CHALMERS TEKNISKA

Läs mer

Förstärkande inlärning med fokus på Q-learning

Förstärkande inlärning med fokus på Q-learning LINKÖPINGS UNIVERSITET 12 januari 2017 Förstärkande inlärning med fokus på Q-learning Artificiell Intelligens, 729G43 Sammanfattning Förstärkande inlärning innebär att vi människor lär oss genom att interagera

Läs mer

Självlärande Hare and Hounds-spelare med Q-learning. HARALD HARTWIG och MAX WESTERMARK

Självlärande Hare and Hounds-spelare med Q-learning. HARALD HARTWIG och MAX WESTERMARK Självlärande Hare and Hounds-spelare med Q-learning HARALD HARTWIG och MAX WESTERMARK Examensarbete Stockholm, Sverige 2011 Självlärande Hare and Hounds-spelare med Q-learning HARALD HARTWIG och MAX WESTERMARK

Läs mer

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs... OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Självinlärning av fyra-i-rad. JOHAN DALENIUS och BJÖRN LÖFROTH

Självinlärning av fyra-i-rad. JOHAN DALENIUS och BJÖRN LÖFROTH Självinlärning av fyra-i-rad JOHAN DALENIUS och BJÖRN LÖFROTH Examensarbete Stockholm, Sverige 2011 Självinlärning av fyra-i-rad JOHAN DALENIUS och BJÖRN LÖFROTH Examensarbete i datalogi om 15 högskolepoäng

Läs mer

med hjälp av Deep Reinforcement Learning

med hjälp av Deep Reinforcement Learning Agent som kan spela Atarispel bättre än människor med hjälp av Deep Reinforcement Learning Sofie Adolfsson, sofad117@student.liu.se Artificiell Intelligens Linköpings Universitet 2017-01-12 SofieAdolfsson

Läs mer

Själv-inlärning av fyra-i-rad

Själv-inlärning av fyra-i-rad Kungl. Tekniska Högskolan CSC Själv-inlärning av fyra-i-rad (Self-learning of the Connect 4 game) Författare: Björn Löfroth (bjorn.lofroth@gmail.com) 073-813 42 85 Forskarbacken 21 lgh 1201, 114 15 Stockholm

Läs mer

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs... OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05 1(15) Bilaga 1 2(15) Neuronnätslaboration Räknare Denna laboration riktar sig till gymnasieelever som går en teknisk utbildning och som helst har läst digitalteknik samt någon form av styrteknik eller

Läs mer

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Belöningsbaserad inlärning. Reinforcement Learning. Inlärningssituationen Belöningens roll Förenklande antaganden Centrala begrepp

Belöningsbaserad inlärning. Reinforcement Learning. Inlärningssituationen Belöningens roll Förenklande antaganden Centrala begrepp Belöningsbserd Inlärning Reinforcement Lerning 1 2 3 4 1 2 3 4 Belöningsbserd inlärning Reinforcement Lerning Inlärning v ett beteende utn tillgång till fcit. En belöning ger informtion om hur br det går

Läs mer

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp, Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Tentamen i Beräkningsvetenskap I/KF, 5. hp, 215-3-17 Skrivtid: 14 17 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat

Läs mer

Stokastiska processer med diskret tid

Stokastiska processer med diskret tid Stokastiska processer med diskret tid Vi tänker oss en följd av stokastiska variabler X 1, X 2, X 3,.... Talen 1, 2, 3,... räknar upp tidpunkter som förflutit från startpunkten 1. De stokastiska variablerna

Läs mer

Ordinära differentialekvationer,

Ordinära differentialekvationer, (ODE) Ordinära differentialekvationer, del 1 Beräkningsvetenskap II It is a truism that nothing is permanent except change. - George F. Simmons ODE:er är modeller som beskriver förändring, ofta i tiden

Läs mer

Självlärande Hare and Hounds spelare med Q-learning

Självlärande Hare and Hounds spelare med Q-learning Självlärande Hare and Hounds spelare med Q-learning Examensarbete inom datalogi - DD143X HARALD HARTWIG RINDÖGATAN 27, 11558 STOCKHOLM TEL.NR: 0737264340 MAX WESTERMARK

Läs mer

Linköpings universitet

Linköpings universitet Översikt Kognitionsvetenskaplig introduktionskurs Föreläsning 4 Informationsbearbetningsmodeller Vad är kognitionsvetenskap? Kort bakgrund/historik Representation och bearbetning av information Vetenskapliga

Läs mer

Fixpunktsiteration. Kapitel Fixpunktsekvation. 1. f(x) = x = g(x).

Fixpunktsiteration. Kapitel Fixpunktsekvation. 1. f(x) = x = g(x). Kapitel 5 Fixpunktsiteration 5.1 Fixpunktsekvation En algebraisk ekvation kan skrivas på följande två ekvivalenta sätt (vilket innebär att lösningarna är desamma). 1. f(x) = 0. En lösning x kallas en rot

Läs mer

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap 729G43 Artificiell intelligens (2016) Maskininlärning 2 Marco Kuhlmann Institutionen för datavetenskap Förra gången: Gradientsökning tangentens lutning i punkt θ steglängdsfaktor Översikt Introduktion

Läs mer

Konvergens för iterativa metoder

Konvergens för iterativa metoder Konvergens för iterativa metoder 1 Terminologi Iterativa metoder används för att lösa olinjära (och ibland linjära) ekvationssystem numeriskt. De utgår från en startgissning x 0 och ger sedan en följd

Läs mer

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar LUNDS TEKNISKA HÖGSKOLA MATEMATIKCENTRUM MATEMATISK STATISTIK DATORLABORATION 4 MATEMATISK STATISTIK, FÖR I/PI, FMS 121/2, HT-3 Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Läs mer

AI-Tekniker. För domänspecifika problemområden i StarCraft 2. Mattias Tiger Fredrik Präntare

AI-Tekniker. För domänspecifika problemområden i StarCraft 2. Mattias Tiger Fredrik Präntare AI-Tekniker För domänspecifika problemområden i StarCraft 2 Mattias Tiger Fredrik Präntare Introduktion och motivering Ni ska inför er individuella uppgift definiera ett problem och välja ut en eller flera

Läs mer

Sub-symbolisk kognition & Konnektionism. Kognitionsvetenskaplig Introduktionskurs (729G01) Mats Andrén,

Sub-symbolisk kognition & Konnektionism. Kognitionsvetenskaplig Introduktionskurs (729G01) Mats Andrén, Sub-symbolisk kognition & Konnektionism Kognitionsvetenskaplig Introduktionskurs (729G01) Mats Andrén, mats.andren@liu.se 1 Konnektionism Neutrala nät baseras på en (förenklad) modell av hur hjärnan fungerar.

Läs mer

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson 2010-11-19 Plot och rekursion I denna laboration skall du lära dig lite om hur plot i MatLab fungerar samt använda

Läs mer

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten. OS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad för att man skall

Läs mer

Neurala nätverk och språkigenkänning. Henrik Linnarsson. Linköping University

Neurala nätverk och språkigenkänning. Henrik Linnarsson. Linköping University Neurala nätverk och språk Henli807!1 Neurala nätverk och språkigenkänning Henrik Linnarsson Linköping University Neurala nätverk och språk Henli807!2 RNN, LSTM och språkigenkänning Inledning Idag är språkigenkänning

Läs mer

Regression med Genetiska Algoritmer

Regression med Genetiska Algoritmer Regression med Genetiska Algoritmer Projektarbete, Artificiell intelligens, 729G43 Jimmy Eriksson, jimer336 770529-5991 2014 Inledning Hur många kramar finns det i världen givet? Att kunna estimera givet

Läs mer

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning Matematik, KTH Bengt Ek november 207 Material till kursen SF679, Diskret matematik: Lite om kedjebråk 0 Inledning Talet π (kvoten mellan en cirkels omkrets och dess diameter) är inte ett rationellt tal

Läs mer

Implementation av Q-learning för fyra-i-rad. E DVIN EKBLAD och OSKAR WERKELIN AHLIN

Implementation av Q-learning för fyra-i-rad. E DVIN EKBLAD och OSKAR WERKELIN AHLIN Implementation av Q-learning för fyra-i-rad E DVIN EKBLAD och OSKAR WERKELIN AHLIN Examensarbete Stockholm, Sverige 2010 Implementation av Q-learning för fyra-i-rad E DVIN EKBLAD och OSKAR WERKELIN AHLIN

Läs mer

ANN fk. Örjan Ekeberg. Framåtkopplade Nät. återkopplade nät. Olika arkitekturer. BackPropagation through Time. Kalman-Filter tekniker

ANN fk. Örjan Ekeberg. Framåtkopplade Nät. återkopplade nät. Olika arkitekturer. BackPropagation through Time. Kalman-Filter tekniker Hantering av Tid Återkopplade Återkopplade Återkopplade t Återkopplade Återkopplade Temporala signaler är svåra Gör om temporal signal till spatial t 1 t 2 t 3 t 4 Återkopplade t Enklaste formen Neuronal

Läs mer

Kandidatuppsats. Jämförelse mellan neurala nätverk baserad AI och state-of-the-art AI i racing spel. Simon Karlsson, Christopher Jensen

Kandidatuppsats. Jämförelse mellan neurala nätverk baserad AI och state-of-the-art AI i racing spel. Simon Karlsson, Christopher Jensen Kandidatuppsats Jämförelse mellan neurala nätverk baserad AI och state-of-the-art AI i racing spel Simon Karlsson, Christopher Jensen Sammanfattning Denna rapport jämför prestandan mellan state-of-the-art

Läs mer

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20. Teorifrågor Störningsanalys 1. Värdet på x är uppmätt till 0.956 med ett absolutfel på högst 0.0005. Ge en övre gräns för absolutfelet i y = exp(x) + x 2. Motivera svaret. 2. Ekvationen log(x) x/50 = 0

Läs mer

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Inlärning utan övervakning

Inlärning utan övervakning Översikt Biologiska mekanismer bakom inlärning Inlärning utan övervakning Inlärning utan övervakning Hebbiansk modellinlärning Självorganisering Arbetsfördelning mellan noder i ett lager som utvecklas

Läs mer

Artificiell Intelligens Lektion 7

Artificiell Intelligens Lektion 7 Laboration 6 Artificiell Intelligens Lektion 7 Neurala nätverk (Lab 6) Probabilistiska resonemang Vad? Mönsterigenkänning Lära ett neuralt nätverk att känna igen siffror Varför? Få ökad förståelse för

Läs mer

TAMS79: Föreläsning 10 Markovkedjor

TAMS79: Föreläsning 10 Markovkedjor TAMS79: Föreläsning 0 Markovkedjor Johan Thim december 08 0. Markovkedjor Vi ska nu betrakta en speciell tidsdiskret diskret stokastisk process, nämligen Markovkedjan. Vi börjar med en definition Definition.

Läs mer

TDP005 Projekt: Objektorienterat system

TDP005 Projekt: Objektorienterat system . TDP005 Projekt: Objektorienterat system Kravspecifikation Författare, dylma900@student.liu.se, albve061@student.liu.se Höstterminen 2016 Version 1.1 2016-11-16 1 Revisionshistorik Ver. Revisionsbeskrivning

Läs mer

Visualisering av samverkan

Visualisering av samverkan Visualisering av samverkan 18 december 2017 En viktig aspekt i samverkan är att inte bara ha koll på vilka andra aktörer du själv samverkar med, utan även veta om vilka aktörer du inte samverkar med, men

Läs mer

Föreläsningsanteckningar F6

Föreläsningsanteckningar F6 Föreläsningsanteckningar F6 Martin Andersson & Patrik Falkman Kortaste vägen mellan en nod och alla andra noder Detta problem innebär att givet en graf G = (E,V) hitta den kortaste vägen över E från en

Läs mer

Stokastiska Processer och ARIMA. Patrik Zetterberg. 19 december 2012

Stokastiska Processer och ARIMA. Patrik Zetterberg. 19 december 2012 Föreläsning 7 Stokastiska Processer och ARIMA Patrik Zetterberg 19 december 2012 1 / 22 Stokastiska processer Stokastiska processer är ett samlingsnamn för Sannolikhetsmodeller för olika tidsförlopp. Stokastisk=slumpmässig

Läs mer

Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering

Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering Betrakta ett lagerhållningsproblem i flera tidsperioder. Vi har tillverkning och försäljning av produkter i varje tidsperiod. Dessutom kan vi lagra produkter mellan tidsperioder, för att utnyttja stordriftsfördelar

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Laboration 1. Linjär Algebra och Avbildningar Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion I denna övning skall

Läs mer

Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer

Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer Michael Hanke, Johan Karlander 2 april 2008 1 Beskrivning och mål Matematiska modeller inom vetenskap och teknik

Läs mer

Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl

Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl 1 Matematiska Institutionen KTH Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl 14.00-19.00. Examinator: Olof Heden Hjälpmedel: Inga hjälpmedel är tillåtna

Läs mer

Demonstration av laboration 2, SF1901

Demonstration av laboration 2, SF1901 KTH 29 November 2017 Laboration 2 Målet med dagens föreläsning är att repetera några viktiga begrepp från kursen och illustrera dem med hjälp av MATLAB. Laboration 2 har följande delar Fördelningsfunktion

Läs mer

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum Johan Helsing, 11 oktober 2018 FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum Inlämningsuppgift 3 Sista dag för inlämning: onsdag den 5 december. Syfte: att träna på att hitta lösningar

Läs mer

Experimentella metoder, FK3001. Datorövning: Finn ett samband

Experimentella metoder, FK3001. Datorövning: Finn ett samband Experimentella metoder, FK3001 Datorövning: Finn ett samband 1 Inledning Den här övningen går ut på att belysa hur man kan utnyttja dimensionsanalys tillsammans med mätningar för att bestämma fysikaliska

Läs mer

--x T Kx. Ka = f. K( a a i. = f f i. r i. = a a i. Ke i. a i 1. p i. Ka i. p i Kai α i

--x T Kx. Ka = f. K( a a i. = f f i. r i. = a a i. Ke i. a i 1. p i. Ka i. p i Kai α i CHALMERS FinitElementmetod M3 illämpad mekanik Föreläsning 18, 15/1 014 91. Lösningen till ekvationssystemet Gradient och konjugerad gradientmetod. a f (1) minimerar den kvadratiska funktionen Π( x) 1

Läs mer

Modeller och simulering av språkprocessning

Modeller och simulering av språkprocessning Modeller och simulering av språkprocessning Seriell processmodell + parallell processmodell Parallell modell med 2-vägsförbindelser Artificiellt neuralt nätverk (ANN) Interaktiv aktiverings-modell (IAM)

Läs mer

Q-learning för fyra i rad. OLLE HASSEL och PETTER JANSE

Q-learning för fyra i rad. OLLE HASSEL och PETTER JANSE Q-learning för fyra i rad OLLE HASSEL och PETTER JANSE Examensarbete Stockholm, Sverige 2011 Q-learning för fyra i rad OLLE HASSEL och PETTER JANSE Examensarbete i datalogi om 15 högskolepoäng vid Programmet

Läs mer

Monte Carlo-metoder. Bild från Monte Carlo

Monte Carlo-metoder. Bild från Monte Carlo Monte Carlo-metoder 0 Målen för föreläsningen På datorn Bild från Monte Carlo http://en.wikipedia.org/wiki/file:real_monte_carlo_casino.jpg 1 Begrepp En stokastisk metod ger olika resultat vid upprepning

Läs mer

Artificial Intelligence

Artificial Intelligence Omtentamen Artificial Intelligence Datum: 2013-01-08 Tid: 09.00 13.00 Ansvarig: Resultat: Hjälpmedel: Gränser: Cecilia Sönströd Redovisas inom tre veckor Inga G 10p, VG 16p, Max 20p Notera: Skriv läsbart!

Läs mer

Tentamen del 1 SF1511, , kl , Numeriska metoder och grundläggande programmering

Tentamen del 1 SF1511, , kl , Numeriska metoder och grundläggande programmering KTH Matematik Tentamen del SF5, 28-3-6, kl 8.-., Numeriska metoder och grundläggande programmering Namn:... Personnummer:... Program och årskurs:... Bonuspoäng. Ange dina bonuspoäng från kursomgången HT7-VT8

Läs mer

TMA226 datorlaboration

TMA226 datorlaboration TMA226 Matematisk fördjupning, Kf 2019 Tobias Gebäck Matematiska vetenskaper, Calmers & GU Syfte TMA226 datorlaboration Syftet med denna laboration är att du skall öva formuleringen av en Finita element-metod,

Läs mer

Föreläsning 5: Dynamisk programmering

Föreläsning 5: Dynamisk programmering Föreläsning 5: Dynamisk programmering Vi betraktar en typ av problem vi tidigare sett: Indata: En uppsättning intervall [s i,f i ] med vikt w i. Mål: Att hitta en uppsättning icke överlappande intervall

Läs mer

Stokastiska processer och simulering I 24 maj

Stokastiska processer och simulering I 24 maj STOCKHOLMS UNIVERSITET LÖSNINGAR MATEMATISKA INSTITUTIONEN Stokastiska processer och simulering I Avd. Matematisk statistik 24 maj 2016 Lösningar Stokastiska processer och simulering I 24 maj 2016 9 14

Läs mer

Lärande genom interaktion

Lärande genom interaktion Lärande genom interaktion Förstärk inlärning, specifikt Q-learning Ebba Algvere 729G43 Artificiell Intelligens Linköpings Universitet 2017 Abstract This report will provide the reader with an understanding

Läs mer

Optimering av en Yatzytur genom utvärdering av alla inom turen nåbara tillstånd

Optimering av en Yatzytur genom utvärdering av alla inom turen nåbara tillstånd Optimering av en Yatzytur genom utvärdering av alla inom turen nåbara tillstånd Arvid Fahlström Myrman 30 april 2014 1 Sammanfattning I denna rapport beskrivs en metod för att kunna optimera

Läs mer

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt.

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt. 1. Beräkna integralen medelpunkt i origo. SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen 218-3-14 D DEL A (x + x 2 + y 2 ) dx dy där D är en cirkelskiva med radie a och Lösningsförslag.

Läs mer

Laboration 3. Ergodicitet, symplektiska scheman och Monte Carlo-integration

Laboration 3. Ergodicitet, symplektiska scheman och Monte Carlo-integration Laboration 3 Ergodicitet, symplektiska scheman och Monte Carlo-integration Hela labben måste vara redovisad och godkänd senast 3 januari för att generera bonuspoäng till tentan. Kom väl förberedd och med

Läs mer

Reglerteori. Föreläsning 3. Torkel Glad

Reglerteori. Föreläsning 3. Torkel Glad Reglerteori. Föreläsning 3 Torkel Glad Föreläsning 1 Torkel Glad Januari 2018 2 Sammanfattning av föreläsning 2 Det mesta av teorin för envariabla linjära system generaliseras lätt till ervariabla (era

Läs mer

Tänk på följande saker när du skriver tentan:

Tänk på följande saker när du skriver tentan: Ämne: AI med inriktning mot kognition och design Kurskod: KOGB05 / TDBB21 Datum: 2005-04-01 Antal uppgifter: 12 Skrivtid: 09:00 15:00 Max poäng: 54 Betygsgränser: 27 x

Läs mer

HKGBB0, Artificiell intelligens

HKGBB0, Artificiell intelligens HKGBB0, Artificiell intelligens Kortfattade lösningsförslag till tentan 3 november 2005 Arne Jönsson 1. Vad karaktäriserar dagens AI-forskning jämfört med den AI-forskning som bedrevs perioden 1960-1985.

Läs mer

729G43 Artificiell intelligens / Maskininlärning 2. Marco Kuhlmann

729G43 Artificiell intelligens / Maskininlärning 2. Marco Kuhlmann 729G43 Artificiell intelligens / 2015 Maskininlärning 2 Marco Kuhlmann Förra gången: Linjär regression Gradientsökning Vandra ner i felets dal. Steg 0: Börja med ett godtyckligt värde för θ. Steg 1: Räkna

Läs mer

Markovprocesser SF1904

Markovprocesser SF1904 Markovprocesser SF1904 Johan Westerborn johawes@kth.se Föreläsning 2 Markovprocesser 4 April 2016 Johan Westerborn Markovprocesser (1) Föreläsning 2 Föreläsningsplan 1 Förra Föreläsningen 2 Absorption

Läs mer

Markovprocesser SF1904

Markovprocesser SF1904 Markovprocesser SF1904 Johan Westerborn johawes@kth.se Föreläsning 2 Markovprocesser 30 Mars 2015 Johan Westerborn Markovprocesser (1) Föreläsning 2 Föreläsningsplan 1 Förra Föreläsningen 2 Absorption

Läs mer

Självlärande Dots & Boxes-spelare

Självlärande Dots & Boxes-spelare Självlärande Dots & Boxes-spelare ANDREAS PETTERSSON Kandidatexamensarbete inom datalogi, grundnivå Kurs 143X Handledare: Johan Boye Examinator: Mads Dam andrepet@kth.se Vintrosagatan 5 124 73 Bandhagen

Läs mer

ARTIFICIELLA EKOSYSTEM SOM ARTIFICIELL INTELLIGENS I ACTIONROLLSPEL

ARTIFICIELLA EKOSYSTEM SOM ARTIFICIELL INTELLIGENS I ACTIONROLLSPEL ARTIFICIELLA EKOSYSTEM SOM ARTIFICIELL INTELLIGENS I ACTIONROLLSPEL En jämförelse av algoritmer och deras anpassning till realtids-spel ARTIFICIAL ECOSYSTEMS AS ARTIFICIAL INTELLIGENCE IN ACTION ROLE PLAYING

Läs mer

Exempel ode45 parametrar Miniprojekt 1 Rapport. Problemlösning. Anastasia Kruchinina. Uppsala Universitet. Januari 2016

Exempel ode45 parametrar Miniprojekt 1 Rapport. Problemlösning. Anastasia Kruchinina. Uppsala Universitet. Januari 2016 Problemlösning Anastasia Kruchinina Uppsala Universitet Januari 2016 Anastasia Kruchinina Problemlösning 1 / 16 Exempel ode45 parametrar Miniprojekt 1 Rapport Anastasia Kruchinina Problemlösning 2 / 16

Läs mer

CHALMERS Finit Elementmetod M3 Institutionen för tillämpad mekanik. Teorifrågor

CHALMERS Finit Elementmetod M3 Institutionen för tillämpad mekanik. Teorifrågor Teorifrågor : Visa att gradienten till en funktion pekar i den riktning derivatan är störst och att riktingen ortogonalt mot gradienten är tangent till funktionens nivåkurva. Visa hur derivatan i godtycklig

Läs mer

729G43 Artificiell intelligens / Maskininlärning 1. Marco Kuhlmann

729G43 Artificiell intelligens / Maskininlärning 1. Marco Kuhlmann 729G43 Artificiell intelligens / 2015 Maskininlärning 1 Marco Kuhlmann Introduktion Maskininlärning Tack vare maskininlärning kan AI-system idag bl.a. producera och förstå naturligt språk kontrollera maskiner,

Läs mer

Spekulativ exekvering i CPU pipelining

Spekulativ exekvering i CPU pipelining Spekulativ exekvering i CPU pipelining Max Faxälv Datum: 2018-12-05 1 Abstrakt Speculative execution is an optimisation technique used by modern-day CPU's to guess which path a computer code will take,

Läs mer

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Torsdag 28 maj 2010 kl

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Torsdag 28 maj 2010 kl Lösningsförslag till tentamen i SF86 Optimeringslära för T. Torsdag 28 maj 2 kl. 4. 9. Examinator: Per Enqvist, tel. 79 62 98. (a) Inför variablerna x = (x sr, x sm, x sp, x sa, x sd, x gr, x gm, x gp,

Läs mer

För teknologer inskrivna H06 eller tidigare. Skriv GAMMAL på omslaget till din anomyna tentamen så att jag kan sortera ut de gamla teknologerna.

För teknologer inskrivna H06 eller tidigare. Skriv GAMMAL på omslaget till din anomyna tentamen så att jag kan sortera ut de gamla teknologerna. Matematik Chalmers Tentamen i TMV225 Inledande matematik M, 2009 01 17, f V Telefon: Christoffer Cromvik, 0762 721860 Inga hjälpmedel. Kalkylator ej tillåten. Varje uppgift är värd 10 poäng, totalt 50

Läs mer

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Linjära system 7. (a) Falskt. Kondition är en egenskap hos problemet oberoende av precisionen i beräkningarna. (b) Falskt. Pivotering påverkar

Läs mer

1. (Dugga 1.1) (a) Bestäm v (3v 2u) om v = . (1p) and u =

1. (Dugga 1.1) (a) Bestäm v (3v 2u) om v = . (1p) and u = Kursen bedöms med betyg,, 5 eller underkänd, där 5 är högsta betyg. För godkänt betyg krävs minst poäng från uppgifterna -7. Var och en av dessa sju uppgifter kan ge maximalt poäng. För var och en av uppgifterna

Läs mer

Grafer och grannmatriser

Grafer och grannmatriser Föreläsning 2, Linjär algebra IT VT2008 Som avslutning på kursen ska vi knyta samman linjär algebra med grafteori och sannolikhetsteori från första kursen. Resultatet blir så kallade slumpvandringar på

Läs mer

Metriska rum, R och p-adiska tal

Metriska rum, R och p-adiska tal Metriska rum, R och p-adiska tal Tony Johansson 1MA239: Specialkurs i Matematik II Uppsala Universitet VT 2018 När vi säger avståndet mellan punkt X och punkt Y där X och Y är punkter i planet (säg) är

Läs mer

x 23 + y 160 = 1, 2 23 = ,

x 23 + y 160 = 1, 2 23 = , Matematiska Institutionen KTH Lösningar till några övningar, inför tentan moment B, på de avsnitt som inte omfattats av lappskrivningarna, Diskret matematik för D2 och F, vt08.. Ett RSA-krypto har n =

Läs mer

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor Johan Thim 22 augusti 2018 1 Vanliga symboler Lite logik Implikation: P Q. Detta betyder att om P är sant så är Q sant. Utläses P medför Q

Läs mer

LARS ULVELAND HOPFIELDNÄTVERK FÖR IGENKÄNNING AV DEGRADERADE BILDER OCH HANDSKRIVNA TECKEN

LARS ULVELAND HOPFIELDNÄTVERK FÖR IGENKÄNNING AV DEGRADERADE BILDER OCH HANDSKRIVNA TECKEN LARS ULVELAD HOPFIELDÄTVERK FÖR IGEKÄIG AV DEGRADERADE BILDER OCH HADSKRIVA TECKE E PROJEKTRAPPORT FÖR PROJEKTKURSE I BILDAALYS HT 02 Teori för Hopfieldnätverk Hopfieldmodellen är en typ av neuronnät,

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 10 Anton Grensjö grensjo@csc.kth.se 9 november 2017 1 Idag En konstruktionsreduktion Fler bevis av NP-fullständighet 2 Teori Repetition Ett problem tillhör

Läs mer

Föreläsning 5 Innehåll

Föreläsning 5 Innehåll Föreläsning 5 Innehåll Algoritmer och effektivitet Att bedöma och jämföra effektivitet för algoritmer Begreppet tidskomplexitet Datavetenskap (LTH) Föreläsning 5 VT 2019 1 / 39 Val av algoritm och datastruktur

Läs mer

Kognitionsvetenskapliga Programmet LiU. AI i spelet Magicka. Gruppbeteende/Grupprörelser. Jonathan Nilsson

Kognitionsvetenskapliga Programmet LiU. AI i spelet Magicka. Gruppbeteende/Grupprörelser. Jonathan Nilsson Kognitionsvetenskapliga Programmet LiU AI i spelet Magicka Gruppbeteende/Grupprörelser Jonathan Nilsson jonni544@student.liu.se 2011-09-01 2 Sammanfattning Den här fördjupningsuppgiften kommer handla om

Läs mer

Spelutveckling Spelbalans. Design och produktion

Spelutveckling Spelbalans. Design och produktion Spelutveckling Spelbalans Design och produktion Tre balanser Spelare spelare Rättvist multiplayer (inkluderar AI-spelare) Spelare gameplay Balansera utmaningar och stöd gentemot belöningar och straff Gameplay

Läs mer

Sammanfattning av föreläsning 11. Modellbygge & Simulering, TSRT62. Föreläsning 12. Simulering. Föreläsning 12. Numeriska metoder och Simulering

Sammanfattning av föreläsning 11. Modellbygge & Simulering, TSRT62. Föreläsning 12. Simulering. Föreläsning 12. Numeriska metoder och Simulering Sammanfattning av föreläsning 11 Modellbygge & Simulering, TSRT62 Föreläsning 12. Simulering Reglerteknik, ISY, Linköpings Universitet Index för en DAE Antalet derivationer som behövs för att lösa ut ż

Läs mer

Probabilistisk logik 1

Probabilistisk logik 1 729G43 Artificiell intelligens / 2016 Probabilistisk logik 1 Marco Kuhlmann Institutionen för datavetenskap Osäkerhet 1.01 Osäkerhet Agenter måste kunna hantera osäkerhet. Agentens miljö är ofta endast

Läs mer

1 Linjära ekvationssystem. 2 Vektorer

1 Linjära ekvationssystem. 2 Vektorer För. 1 1 Linjära ekvationssystem Gaußelimination - sriv om systemet för att få ett trappformat system genom att: byta ordningen mellan ekvationer eller obekanta; multiplicera en ekvation med en konstant

Läs mer