Vahvistusoppimisen hyödyntäminen tekoälyn kehityksessä
Ruoranen, Toni (2022)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2022052712575
https://urn.fi/URN:NBN:fi:amk-2022052712575
Tiivistelmä
Insinöörityön päätarkoituksena oli kehittää vahvistusoppimisen avulla uskottava ammuntapelin tekoäly Unreal Engine 5 -pelimoottorille hyödyntäen ML-Agents-työkalupakin säteellä havainnointimenetelmää. Tavoitteena oli parempi tarkkuus ja reagointinopeus lähietäisyyksillä ja huonompi kaukaisemmilla etäisyyksillä ihmispelaajien lailla. Tekoälyn kehitystä varten luotiin Unreal Engine 5 -pelimoottoriin hahmo, jota tekoäly pystyi hallitsemaan ja harjoitusnukkehahmo tekoälylle ammuttavaksi. Harjoitusympäristönä käytettiin neljästä seinästä ja lattiasta koostuvaa pientä neliötä. Vahvistusoppimiseen käytettiin MindMaker-työkalupakkia.
Ensimmäisenä insinöörityössä MindMaker-työkalupakki korjattiin yhteensopivaksi Unreal Engine 5 -pelimoottorin kanssa, sillä se oli suunniteltu käytettäväksi Unreal Engine 4 -pelimoottorilla. Sen jälkeen rakennettiin tekoälyn hahmon havainnointikykyä ja liikekykyä pelikentässä. Tekoälyn hahmon tärkeimpien ominaisuuksien valmistuttua kävi selväksi harvojen palkkioiden ja pienten erilaisten havaintojen määrä oppimisen rajoittamisessa. Siksi kenttä tehtiin neljällä seinällä pieneksi tekoälyn hahmon rajaamiseksi harjoitusnuken läheisyyteen ja harjoitusnukelle rakennettiin funktio satunnaisen syntymäpaikan saamiseksi jokaisesta osumasta.
Harva palkkiosignaali ratkaistiin ohjelmoimalla harjoitusnukke lähestymään tekoälyn hahmoa jatkuvasti, mikä johti todennäköisempään vahinko-osumaan ja sen oppimiseen, että nukkeen osumiset antavat palkinnon. Sitten muokattiin MindMaker-työkalupakin vahvistusoppimissovellusta tekemällä siitä toinen versio, jolla pystyi jatkamaan koulutusta jo koulutetusta tallennetusta tekoälystä.
Tuloksena oli erittäin nopeasti koulutettava tekoäly, joka oli nopea lähelle ampumisen osumisessa ja hidas kauemmas osumisessa. Ongelmana oli, että tekoäly oli liian nopea lähietäisyydellä tarkoilla osumilla ja liian hidas osumaan kauas ollakseen täysin tavoitteen täyttänyt tulos. Koulutetun tekoälyn lisäkoulutuksella saatiin silti tieto, että tällä koulutusympäristöllä tekoäly oppii aina ampumaan lähelle liian nopeasti oppiakseen sellaisen kauas ampumisen nopeuden, joka täyttäisi tavoitteen.
Ensimmäisenä insinöörityössä MindMaker-työkalupakki korjattiin yhteensopivaksi Unreal Engine 5 -pelimoottorin kanssa, sillä se oli suunniteltu käytettäväksi Unreal Engine 4 -pelimoottorilla. Sen jälkeen rakennettiin tekoälyn hahmon havainnointikykyä ja liikekykyä pelikentässä. Tekoälyn hahmon tärkeimpien ominaisuuksien valmistuttua kävi selväksi harvojen palkkioiden ja pienten erilaisten havaintojen määrä oppimisen rajoittamisessa. Siksi kenttä tehtiin neljällä seinällä pieneksi tekoälyn hahmon rajaamiseksi harjoitusnuken läheisyyteen ja harjoitusnukelle rakennettiin funktio satunnaisen syntymäpaikan saamiseksi jokaisesta osumasta.
Harva palkkiosignaali ratkaistiin ohjelmoimalla harjoitusnukke lähestymään tekoälyn hahmoa jatkuvasti, mikä johti todennäköisempään vahinko-osumaan ja sen oppimiseen, että nukkeen osumiset antavat palkinnon. Sitten muokattiin MindMaker-työkalupakin vahvistusoppimissovellusta tekemällä siitä toinen versio, jolla pystyi jatkamaan koulutusta jo koulutetusta tallennetusta tekoälystä.
Tuloksena oli erittäin nopeasti koulutettava tekoäly, joka oli nopea lähelle ampumisen osumisessa ja hidas kauemmas osumisessa. Ongelmana oli, että tekoäly oli liian nopea lähietäisyydellä tarkoilla osumilla ja liian hidas osumaan kauas ollakseen täysin tavoitteen täyttänyt tulos. Koulutetun tekoälyn lisäkoulutuksella saatiin silti tieto, että tällä koulutusympäristöllä tekoäly oppii aina ampumaan lähelle liian nopeasti oppiakseen sellaisen kauas ampumisen nopeuden, joka täyttäisi tavoitteen.