Dynaaminen muistiverkko keskustelubotin kehityksessä
Sykäri, Riku (2018)
Sykäri, Riku
Metropolia Ammattikorkeakoulu
2018
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2018120520337
https://urn.fi/URN:NBN:fi:amk-2018120520337
Tiivistelmä
Insinöörityössä tutkittiin koneoppimisen alan mahdollisuuksia tuottaa terapian kontekstissa dialogiin pystyvä keskustelubotti, joka kykenee matkimaan kognitiivisessa terapiassa käyvää ihmisasiakasta mobiilipelissä. Työn tavoitteena oli löytää lupaava neuroverkkoarkkitehtuuri, joka kelpaisi jatkokehityksen pohjaksi insinöörityön jälkeen. Jatkokehityksen tuloksena toteutetulta keskustelubotilta edellytettäisiin kykyä tunnistaa ja käyttää tunnesanastoa, muistaa käyttäjän esittämiä kysymyksiä ja vastata kysymyksiin sopivilla kokonaisilla lauseilla.
Työ toteutettiin PyCharm-ohjelmointiympäristössä Python-kielellä. Koodin pohjaksi valittiin GitHub-verkkosivustolta vuonna 2016 aloitettu koodiprojekti dynaamisesta muistiverkosta, jota on siitä lähtien päivitetty kesään 2018 asti. Dynaamiset muistiverkot ovat vuoden 2015 syksyllä julkaistu neuroverkkoarkkitehtuuri, joka on tuottanut erinomaisia tuloksia visuaalisissa ja tekstipohjaisissa kysymyksiin vastaus -tehtävissä.
Neuroverkon kouluttamiseen käytettiin Facebook Research -instituutin kehittämässä bAbI-projektissa tuotettua tietojoukkoa, joka sisältää 20 erilaista loogisen päättelyn tehtävää, jotka testaavat koneoppimisalgoritmin yleistä pätevyyttä kysymyksiin vastaamisessa. Kooditoteutuksen vaihtamisen jälkeen verkon koulutus sujui odotetusti, pois lukien näytönohjaimen poikkeuksellisen hitaat koulutussuoritukset.
Dynaamiset neuroverkot olivat työn tekijälle uusi arkkitehtuuri, joten iso osa työstä kului toistuvien neuroverkkojen teoreettisten käsitteiden omaksumiseen. Koulutustuloksien perusteella verkon perustoiminta on varmistettu, ja jatkoa ajatellen verkon pätevyyttä voi testata dialogiin perustuvalla tietojoukolla, mikä Unity-pelimoottoriin kiinnittämisen yhteydessä auttaisi selvittämään mallin soveltuvuuden pelikäyttöön.
Työ toteutettiin PyCharm-ohjelmointiympäristössä Python-kielellä. Koodin pohjaksi valittiin GitHub-verkkosivustolta vuonna 2016 aloitettu koodiprojekti dynaamisesta muistiverkosta, jota on siitä lähtien päivitetty kesään 2018 asti. Dynaamiset muistiverkot ovat vuoden 2015 syksyllä julkaistu neuroverkkoarkkitehtuuri, joka on tuottanut erinomaisia tuloksia visuaalisissa ja tekstipohjaisissa kysymyksiin vastaus -tehtävissä.
Neuroverkon kouluttamiseen käytettiin Facebook Research -instituutin kehittämässä bAbI-projektissa tuotettua tietojoukkoa, joka sisältää 20 erilaista loogisen päättelyn tehtävää, jotka testaavat koneoppimisalgoritmin yleistä pätevyyttä kysymyksiin vastaamisessa. Kooditoteutuksen vaihtamisen jälkeen verkon koulutus sujui odotetusti, pois lukien näytönohjaimen poikkeuksellisen hitaat koulutussuoritukset.
Dynaamiset neuroverkot olivat työn tekijälle uusi arkkitehtuuri, joten iso osa työstä kului toistuvien neuroverkkojen teoreettisten käsitteiden omaksumiseen. Koulutustuloksien perusteella verkon perustoiminta on varmistettu, ja jatkoa ajatellen verkon pätevyyttä voi testata dialogiin perustuvalla tietojoukolla, mikä Unity-pelimoottoriin kiinnittämisen yhteydessä auttaisi selvittämään mallin soveltuvuuden pelikäyttöön.