Artificial Intelligence Solution for Gomoku Using Neural Networks
Moilanen, Mikko (2024)
Moilanen, Mikko
2024
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202405039138
https://urn.fi/URN:NBN:fi:amk-202405039138
Tiivistelmä
Tämän työn tarkoituksena oli luoda neuroverkoilla toimiva tekoälyratkaisu viiden suora -pelille. Tekoäly hyödynsi vahvistusoppimista, missä tekoälyä palkittiin hyvästä suorituksesta ja tekoäly pyrki maksimoimaan palkkion, mikä puolestaan johti toivottuihin oppimistuloksiin.
Opinnäytetyössä käytettiin ohjelmointikielenä Pythonia ja tekoälykirjastoksi valikoitui PyTorch. Tekoälyn neuroverkkorakennetta testattiin useilla eri kokoonpanoilla ennen kuin sopiva malli löytyi. Neuroverkon koko oli suppea, mutta se oli erittäin suorituskykyinen. Tekoälyä koulutettiin yhteensä 3000 kertaa siten, että se pelasi toista tätä työtä varten luotua tekoälyä vastaan. Tämä TestAI:ksi nimetty tekoäly ei hyödyntänyt neuroverkkoja vaan algoritmipohjaista ratkaisua ja pääasiallinen syy tämän tekoälyn käytölle oli se, että sen avulla oli mahdollista suorittaa suuria määriä testauksia lyhyessä ajassa. Ihmispelaajan kanssa kouluttaessa tuhansien pelikertojen pelaaminen useaan kertaan olisi vaatinut kohtuuttoman suuren aikapanostuksen. Tämän jälkeen tekoälyä koulutettiin vielä 1000 kierrosta siten, että se pelasi itse itseään vastaan.
Tekoälyn suorituskyky oli hyvä. Tekoäly pystyi yli 75 prosentin todennäköisyydellä ennustamaan oikean siirron ja voitti TestAI:n yli 80 prosenttia kerroista koulutuksen jälkeen. Tekoälyn suorituskykyä testattiin TestAI:ta vastaan, samoin kuin itseään vastaan ja myös ihmispelaajaa vastaan.
Työn tavoitteena oli luoda tekoäly, joka vastaa suorituskyvyllisesti arviolta hyvää perustasoa olevaa ihmispelaajaa ja suorituskykymittausten perusteella työ saavutti tämän tavoitteen.
Opinnäytetyössä käytettiin ohjelmointikielenä Pythonia ja tekoälykirjastoksi valikoitui PyTorch. Tekoälyn neuroverkkorakennetta testattiin useilla eri kokoonpanoilla ennen kuin sopiva malli löytyi. Neuroverkon koko oli suppea, mutta se oli erittäin suorituskykyinen. Tekoälyä koulutettiin yhteensä 3000 kertaa siten, että se pelasi toista tätä työtä varten luotua tekoälyä vastaan. Tämä TestAI:ksi nimetty tekoäly ei hyödyntänyt neuroverkkoja vaan algoritmipohjaista ratkaisua ja pääasiallinen syy tämän tekoälyn käytölle oli se, että sen avulla oli mahdollista suorittaa suuria määriä testauksia lyhyessä ajassa. Ihmispelaajan kanssa kouluttaessa tuhansien pelikertojen pelaaminen useaan kertaan olisi vaatinut kohtuuttoman suuren aikapanostuksen. Tämän jälkeen tekoälyä koulutettiin vielä 1000 kierrosta siten, että se pelasi itse itseään vastaan.
Tekoälyn suorituskyky oli hyvä. Tekoäly pystyi yli 75 prosentin todennäköisyydellä ennustamaan oikean siirron ja voitti TestAI:n yli 80 prosenttia kerroista koulutuksen jälkeen. Tekoälyn suorituskykyä testattiin TestAI:ta vastaan, samoin kuin itseään vastaan ja myös ihmispelaajaa vastaan.
Työn tavoitteena oli luoda tekoäly, joka vastaa suorituskyvyllisesti arviolta hyvää perustasoa olevaa ihmispelaajaa ja suorituskykymittausten perusteella työ saavutti tämän tavoitteen.