Combining Reinforcement Learning and Unreal Engine's AI-tools to Create Intelligent Bots

Magomed Bakhmadov, Marius Fridheim · NORA - Norwegian Open Research Archives · 2020

Bacheloroppgaven er delt inn i en utviklings- og forskningsdel. I utviklingsdelen lager vi et system for Unreal Engine 4 som lar folk ta i bruk maskinlæring for å lage bots. Det er ingen støtte direkte i UE4 for maskinlæring, så vi måtte undersøke og eksperimentere for å finne ut hvordan vi ville få denne kombinasjonen til å fungere. Målet vårt er å gjøre dette så intuitivt som mulig, slik at enhver UE4-utvikler, selv med begrenset kunnskap om maskinlæring, kan bruke dette systemet. Den andre delen av oppgaven er å forske på hvordan vi kan lage forbindelsen mellom UE4 og et maskinlæringsbibliotek, og deretter hvordan vi kan lære opp agenter i en spillmotor som UE4. Vi løste utviklingsdelen av oppgaven vår ved å lage en plugin for UE4. Denne pluginen har en backend skrevet i Python som håndterer alle maskinlærings kalkulasjonene, mens frontend er en Blueprint-klasse som arver fra Controller-klassen i UE4. På denne måten kan vi bruke denne kontrolleren til å bygge på toppen av AIController-klassen i UE4 med ekstra støtte for maskinlæringsfunksjoner og justerbare variabler som kommuniserer med Python-backenden. Fordi vi har opprettet systemet vårt basert på arkitekturen i UE4, kan man ganske enkelt endre kontrolleren eller hjernen til en bot. For forskningsdelen brukte vi forskjellige typer inndata, og forskjellige miljøer for å teste hva som fungerte best i et slikt system. I tillegg prøvde vi å finne ut av den beste måten å trene en maskinlæringsagent i UE4. All denne forskningen er samlet i form av eksempler som viser frem forskjellige måter å bruke systemet på, som brukerne kan bruke som inspirasjon når de oppretter egne agenter. Resultatene våre viser at agentene er i stand til å lære fra forskjellige miljøer, og at det er potensiale for enda bedre resultater gjennom videre eksperimentering med tilstandsrepresentasjonen, justeringer av hyperparametere og Deep Q-Network (DQN) forbedringer. Agentene var i stand til å lære av å bruke bilder som inndata, men en tilstandspresentasjon av håndplukkede verdier ga de beste resultatene.

Read the paper · More papers on PaperTik