Itseoppivan tekoälyn kouluttaminen geneettisellä algoritmilla
Särkiniemi, Eero (2020)
Särkiniemi, Eero
2020
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020051912213
https://urn.fi/URN:NBN:fi:amk-2020051912213
Tiivistelmä
Tämä opinnäytetyö käsittelee syväoppimista, joka on koneoppimisen osa-alue. Syväoppimista sovelletaan neuroverkkoihin. Neuroverkot ovat algoritmeja, jotka matkivat ihmisaivojen toimintaa. Neuroverkko muodostuu yksittäisistä neuroneista, jotka on asetettu tasoittain toistensa perään. Yksittäinen neuroni koostuu yhdestä tai useammasta sisääntulosta, vakiotermistä ja yhdestä ulostulosta. Sisääntuloilla ja vakiotermillä on painot, jotka toimivat näiden kertoimina. Neuronilla on myös aktivointifunktio, joka määrittää ulostulon arvon riippuen sisääntuloista.
Työhön toteutettiin yksinkertainen kaksiulotteinen peli. Neuroverkon päämäärä oli oppia pelaamaan kyseistä peliä. Neuroverkon koulutus tapahtui geneettisellä algoritmilla. Geneettinen algoritmi matkii Charles Darwinin evoluutioteorian perusteita.
Työssä perehdytään syväoppimisen, neuroverkkojen ja geneettisen algoritmin teoriaan ja toteutukseen sekä pelin toteutukseen. Työ on toteutettu Unity Engine -pelimoottoria käyttäen. Työn ohjelmointikielenä toimi C#-ohjelmointikieli.
Lopullisessa toteutuksessa tekoäly onnistui oppimaan pelin ja pelaamaan peliä onnistuneesti.
Työhön toteutettiin yksinkertainen kaksiulotteinen peli. Neuroverkon päämäärä oli oppia pelaamaan kyseistä peliä. Neuroverkon koulutus tapahtui geneettisellä algoritmilla. Geneettinen algoritmi matkii Charles Darwinin evoluutioteorian perusteita.
Työssä perehdytään syväoppimisen, neuroverkkojen ja geneettisen algoritmin teoriaan ja toteutukseen sekä pelin toteutukseen. Työ on toteutettu Unity Engine -pelimoottoria käyttäen. Työn ohjelmointikielenä toimi C#-ohjelmointikieli.
Lopullisessa toteutuksessa tekoäly onnistui oppimaan pelin ja pelaamaan peliä onnistuneesti.