Kirjoittaja

Tiina Kangasniemi

RADLYn Senior Data Scientist, joka rakastaa kaikenkokoisten pulmien, arvoitusten ja bugien ratkomista. Maaseudun kasvatti intoilee koneoppimisesta ja isosta datasta, mutta pitää salaa myös Excel-ongelmien selvittelystä. Työajan ulkopuolella hyppysistä saattaa hyvinkin löytyä dekkari, ristikko tai sukkapuikot.

Monen tekoälyn sydämessä pyörii neuroverkko

Neuroverkot ovat matemaattisia malleja, joiden rakenne ja toiminta pohjautuvat aivojen toimintaan. Verkot koostuvat neuroneista ja niitä yhdistävistä synapseista, jotka opetetaan suoriutumaan halutusta tehtävästä opetusaineiston avulla. Prosessi jäljittelee ihmisen tapaa oppia: havaintoa seuraa tieto siitä, osuttiinko oikeaan. Tiedon perusteella neuronien välisiä painoja päivitetään. Näin verkko oppii hiljalleen suoriutumaan tehtävästä yhä paremmin.

Koska onnistuneen neuroverkon reseptiin riittää kattava opetusaineisto, hyvin valittu verkkorakenne ja toimiva opetusalgoritmi, neuroverkot ovat houkutteleva menetelmä moniin sovelluksiin. Ajatellaan esimerkiksi tekstiä tuottavaa algoritmia: suomen kieli vaatii koodiin melkoisen määrän taivutussääntöjä ja sijamuotoja, mutta neuroverkko kykenee oppimaan kielen monimutkaisetkin rakenteet lapsen tavoin esimerkin kautta. Kattavaa kirjastoa kaikista kielioppisäännöistä ei tarvita.

Neuroverkot ovat mahdollistaneet monia sovelluksia, joista ei perinteisin menetelmin olisi voitu edes haaveilla. Google-kääntäjänkin taustalla pyörii nykyisin neuroverkkoja käännöksiä parantamassa. Melko yleinen sovelluskohde on luokitin: jos opetusaineistoksi löytyy esimerkiksi suuri määrä valmiiksi luokiteltuja eläinkuvia, verkon voi opettaa tunnistamaan eläimiä uusista, ennen näkemättömistä kuvista. Muitakin sovelluskohteita löytyy. Kun esimerkiksi halutaan generoida uutta dataa tai ennustaa systeemin tulevaa tilaa historian avulla, voi RNN (Recurrent Neural Network) olla tilanteeseen sopiva verkkorakenne. RNN-verkko on erikoistunut ymmärtämään datan ajallista rakennetta; verkko osaa päätellä menneiden tapahtumien perusteella, mitä todennäköisesti tapahtuu seuraavaksi.

RNN-verkkoa voi käyttää generoimaan uutta aineistoa, joko satunnaisesti tyhjästä tai täydentämään käyttäjän inputtia. RNN-verkkoa voidaan siis opettaa generoimaan vaikkapa kuvia koirista, jos vain laadukasta opetusaineistoa on tarpeeksi tarjolla.

RNN-eeposgeneraattori

Koirakuvien luominen tyhjästä ei ole ihan triviaali tehtävä kehittyneellekään neuroverkolle. Sen sijaan tekstin generoimisen RNN-verkko oppii melko nopeasti. Opetusvaiheessa on hyvä olla melko paljon dataa ja aikaa, mutta jo yhden Kalevalan tekstimäärä riittää kohtalaisen eeposgeneraattorin opetukseen.

Kalevala-generaattori syntyy näin:

  • Ensin alustetaan verkko: päätetään, minkä kokoista verkkoa (kuinka paljon verkossa on neuroneita) halutaan lähteä opettamaan, ja määrätään erinäisiä parametreja, joilla säädellään verkon oppimisnopeutta ja -kykyä. Suuri ja monimutkainen verkko kykenee teoriassa oppimaan erittäin monimutkaisia rakenteita, mutta aineistoa ja aikaa tarvitaan huomattavasti enemmän hyvään lopputulokseen. Liian pieni verkko sen sijaan voidaan opettaa nopeasti, mutta se selviää vain yksinkertaisemmista tehtävistä.
  • Alustetulle verkolle syötetään opetusaineisto, jonka jälkeen opetusalgoritmi alkaa ruksuttaa: verkko laskee aineistosta, millaisia merkkejä siinä esiintyy ja alkaa iteratiivisesti kerätä informaatiota eri kirjainten välisistä yhteyksistä.
  • Opetuksen alkuvaiheessa verkon tuotokset ovat samaa luokkaa kuin näppäimistön päälle kellahtaneella kissalla, mutta hiljalleen verkko oppii, kuinka pitkiä kirjainjonoja sanat keskimäärin ovat ja milloin on rivinvaihdon tai välimerkin aika.
  • Opetuksen edetessä verkon muodostamat kirjainyhdistelmät alkavat muistuttaa oikeita sanoja ja sanat alkoivat muodostaa lauseita. Vuorokauden tekstiä pureskeltuaan verkko on jo oppinut kalevalaisen paatoksen ja tuotettu teksti näyttää ja kuulostaa melko uskottavalta. Vai mitä mieltä olet seuraavasta neuroverkon tuottamasta pätkästä:

Siitä vanha Väinämöinen

laulehista lietseheltä;

sanovi sanalla tuolla,

lausui tuolla lausehella:

”Mi sinullaki metinen päänsä,

polvet lun, pyhät m’ihin maltahista.

RNN-verkkoon pohjautuvan Kalevala-generaattorin luomuksilla voit viihdyttää itseäsi täällä.

 

Mikäli neuroverkot ja tekoälyn mahdollisuudet kiinnostavat, ota rohkeasti yhteyttä yksikön vetäjään: mikko.koski@dagmar.fi.

Julkaisemme jatkossa tasaiseen tahtiin lisää blogauksia analytiikkayksikön arjesta ja projekteista. Mikäli et malta odottaa, olet lämpimästi tervetullut tutustumaan yksikköömme Lönnrotinkadulle – tarjolla on kahvia, algoritmien twiikkausta ja taatusti loistavaa juttuseuraa.