Hyppää sisältöön
    • Suomeksi
    • På svenska
    • In English
  • Suomi
  • Svenska
  • English
  • Kirjaudu
Hakuohjeet
JavaScript is disabled for your browser. Some features of this site may not work without it.
Näytä viite 
  •   Ammattikorkeakoulut
  • Metropolia Ammattikorkeakoulu
  • Opinnäytetyöt
  • Näytä viite
  •   Ammattikorkeakoulut
  • Metropolia Ammattikorkeakoulu
  • Opinnäytetyöt
  • Näytä viite

Vahvistumisoppimisen käyttö peleissä

Tuononen, Harri (2019)

Avaa tiedosto
Tuononen_Harri.pdf (1.264Mt)
Lataukset: 


Tuononen, Harri
2019
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Näytä kaikki kuvailutiedot
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2019053113674
Tiivistelmä
Insinöörityössä kehitettiin Unreal Engine 4 -pelimoottorilla peli, jossa tekoäly oppii pelaamaan vahvistusoppimisen avulla. Pelissä vahvistusoppimista käyttävän agentin on väisteltävä panoksia mahdollisimman pitkään. Tavoitteena oli selvittää, minkälainen prosessi on luoda vahvistusoppimisprojekti ja mitkä ovat sen suurimmat haasteet. Sen lisäksi työssä pohdittiin, onko vahvistusoppiminen hyvä työväline pelien tekoälyn kehityksessä.

Vahvistusoppimisalgoritmi toteutettiin Python-ohjelmointikielellä. Peliä pelaavan agentin opettamista varten luotiin Pythonin TensorFlow-kirjastolla neuroverkko, joka käyttää apunaan Q-oppimista.

Vahvistusoppimisalgoritmin oppimista optimoitiin erilaisten hyperparametrien sekä neuroverkon neuronien ja kerroksien lukumäärän säätämisellä. Algoritmia suoritettiin tietyillä arvoilla, ja tuloksia verrattiin toisiinsa. Algoritmin laatua mitattiin pisimmän pelin kestolla ja sadan viimeisen pelin kestojen keskiarvolla.

Erilaisista haasteista huolimatta agentti oppi pelaamaan peliä. Tulokset eivät olleet täysin toistuvia, mutta selvästi algoritmin laatu kasvoi ajan myötä. Satunnaisuuden oletettiin johtuvan tappavasta kolmikosta (engl. the Deadly Triad), jossa funktion approksimointi, agentin opettaminen satunnaisilla kokemuksilla ja Q-oppimisen Q-arvojen arviointi johtavat algoritmin heikkenemiseen tietyn pisteen jälkeen. Pelissä oli aluksi tarkoitus myös vahvistusoppimista käyttävän agentin pystyä ampumaan. Agentilla oli vaikeuksia yhdistää viiveellä tuleva palkkio oikeaan toimintoon. Tätä ongelmaa kutsutaan ansionosoitusongelmaksi (engl. credit assignment problem), jota ei insinöörityössä saatu ratkaistua.

Tekoälyn kehittäminen vahvistusoppimisella vaatii paljon testaamista. Sen lisäksi lopullinen algoritmi ei välttämättä ole sopiva pelejä varten. Pelien tekoäly on tarkoitus säätää haastavaksi, mutta ei täysin ylivoimaiseksi, mikä voi vahvistusoppimisen avulla olla hyvin hankalaa. Toisaalta pelin tekoälyn ei tarvitse olla pelaajan vastus, vaan pelin voi rakentaa vahvistusoppimisen oppimiskyvyn ympärille.
 
The purpose of the final year project was to develop a game in which the AI is trained to dodge projectiles with reinforced learning. The thesis also aimed to examine the challenges of creating a reinforced learning algorithm. The last part of the thesis contemplates whether reinforced learning is a good way to develop AI for games.

The project was done with the well-known game engine Unreal Engine 4. A neural network and Q-learning were used to train the reinforcement learning agent.

The bulk of the project was done testing and optimizing different hyperparameters. In addition, different configurations of hidden layers and neurons were tested. The quality of the algorithm was measured using values such as longest duration of a game and the average length of the 100 last games.

The results were not completely reproducible. The reason for this was determined to be caused by the combination of Q-learning, neural network and experience replay. The agent learned to play the game successfully, even if the results started to decline after extended training. The game was meant to include the agent also having the ability to shoot, but due to the problem of delayed reward, it was not achieved.

Reinforcement learning requires a lot of testing, and in the end a high-quality game AI is not guaranteed. However, there is potential in using the learning capabilities of reinforced learning in a game.
 
Kokoelmat
  • Opinnäytetyöt
Ammattikorkeakoulujen opinnäytetyöt ja julkaisut
Yhteydenotto | Tietoa käyttöoikeuksista | Tietosuojailmoitus | Saavutettavuusseloste
 

Selaa kokoelmaa

NimekkeetTekijätJulkaisuajatKoulutusalatAsiasanatUusimmatKokoelmat

Henkilökunnalle

Ammattikorkeakoulujen opinnäytetyöt ja julkaisut
Yhteydenotto | Tietoa käyttöoikeuksista | Tietosuojailmoitus | Saavutettavuusseloste