28.8.2017 | Analytiikka

Neuroverkko oppii vaikka Väinämöiseksi

Analyytikon arkeen sopii jutustelu yhdestä jos toisestakin mielenkiintoisesta aihealueesta, Microsoft Excelin superhienosta 3D-karttasovelluksesta ei-Newtonilaisiin nesteisiin. Jätetään tällä kertaa geovisualisointi ja perunajauhot ja keskitytään ehkä vieläkin siistimpään aihealueeseen – neuroverkkoihin. Ne ovat tekoälyn kehityksen kannalta keskeisessä roolissa.

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:

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.

Tiina Kangasniemi

Tiina Kangasniemi

Tiina Kangasniemi on 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.

Lisää aiheesta