Julius Kallio - 22.8.2018

Neuroverkot analytiikan edistäjinä

Kuvia joudutaan toisinaan luokittelemaan silmämääräisesti erilaisten kriteerien perusteella. Tehtävänä voi olla esimerkiksi tunnistaa kuvissa olevat ihmiset, esineet ja asiat, laskea joidenkin kuvassa esiintyvien hahmojen lukumääriä, tai selvittää jonkin hahmon koko tai sijainti.

Luokittelu voi tapahtua vaikkapa sen perusteella, millainen tai minkä kokoinen esine kuvassa on, onko kuvassa paljon, vähän vai ei ollenkaan ihmisiä, tai sijaitseeko jokin hahmo reunassa vai keskellä. Jos kuvia on suuri määrä tai jos luokittelu pitää suorittaa suhteellisen usein uusille tuntemattomille kuville, alkaa tämä manuaalinen työ tuntua puuduttavalta. Lisäksi se vie paljon aikaa ja resursseja. Kustannustehokkuuden lisäämiseksi kuvien luokittelu kannattaisi automatisoida. Tämä ei kuitenkaan ole järkevää perinteisen ohjelmoinnin keinoin, koska menetelmän mallinnus on hidasta ja työlästä, ja todennäköisesti kuvien luokittelussa tapahtuisi liikaa virheitä.

Ratkaisu tilanteeseen löytyy koneoppimisen puolelta. Eräs erittäin näppärä menetelmä kuvien luokitteluun on konvolutiivinen neuroverkko (engl. convolutional neural network), joka tunnetaan yleisesti lyhenteellä CNN. Nimensä tämä neuroverkkojen erityistapaus on saanut matemaattisen konvoluution soveltamisesta laskennassaan. CNN on erittäin yleinen valinta juuri silloin kun käsiteltävä data on kuvadataa. Klassinen esimerkki sen sovelluksista on tilanne, jossa halutaan jakaa kuvat kahteen luokkaan sen perusteella, onko niissä kissa vai ei. Luokitteluongelma on kuitenkin usein selvästi kompleksisempi, ja eri luokkia voi olla paljon enemmän kuin vain kaksi.

Neuroverkko ei kysy ihmiseltä kriteerejä, joiden avulla luokittelu tapahtuu. Ohjatun oppimisen (engl. supervised learning) tapauksessa neuroverkko tarvitsee ainoastaan riittävän suuren opetusdatan eli kuvadatan, jonka ihminen on jo luokitellut. Se tutkii kuvia pikselitasolla ja kehittää laskennalliset parametrit, joiden avulla se oppii matkimaan ihmisen tapaa luokitella nämä kuvat. Kun sille lopulta näytetään uusia kuvia, joiden luokkia sille ei ole ennestään opetettu, niin se pystyy laskemiensa parametrien avulla päättelemään näiden kuvien luokat. Ohjattu oppiminen on yleinen periaate erityisesti CNN:n tapauksessa, mutta sille löytyy myös sellaisia sovelluksia, joissa käytetään esimerkiksi semiohjattua tai ohjaamatonta oppimista. Ohjaamattoman oppimisen tapauksessa ihminen ei ole luokitellut opetusdataa ollenkaan, jolloin neuroverkko luokittelee kuvat pelkästään niiden samankaltaisuuksien perusteella. Semiohjatussa oppimisessa puolestaan ihminen on luokitellut vain osan opetusdatasta, ja neuroverkko soveltaa sekä ohjatun että ohjaamattoman oppimisen periaatteita.

Luokittelutarkkuus voi olla jo yhden opetuskerran jälkeen hyvä, mutta sitä voi silti tarvittaessa parantaa monilla eri menetelmillä. Neuroverkkoon voi rakentaa niin monta kerrosta kuin tarve vaatii eli opettamisen voi tarvittaessa viedä todella syvälle tasolle, jolloin on mahdollista luokitella hyvällä tarkkuudella sellaisiakin kuvia, joiden kanssa ihminen tekee herkästi virheitä. Myös neuroverkon hyperparametreilla on iso vaikutus sen oppimiskykyyn, joten ne tulee valita huolellisesti. Näiden lisäksi neuroverkon tarkkuus riippuu siitä, kuinka suurella datamäärällä se on opetettu, ja kuinka monimuotoista tämä opetusdata on; jos kissa on opetusdatan jokaisessa kissakuvassa valkoinen tai sijaitsee aina vasemmassa reunassa, niin neuroverkko luokittelee todennäköisesti väärin sellaiset kuvat, joissa kissa onkin musta tai sijaitsee kuvan oikeassa reunassa. Samoin jos ne kuvat, joissa ei ole kissaa ollenkaan, ovat keskenään liian samankaltaisia, voi neuroverkko oppia luokittelemaan kaikki niistä eroavat kuvat kissakuviksi riippumatta siitä, onko niissä kissaa vai ei. Tällaisissa tilanteissa neuroverkko ei ole oppinut ratkaisemaan oikeaa ongelmaa. Olennaista on myös se, millä työkaluilla neuroverkko on toteutettu. Kaiken tekeminen itse on työlästä ja virhealtista puuhaa, kun taas avoimen lähdekoodin kuvaluokitteluratkaisujen hyödyntäminen on yleensä nopeaa ja tehokasta.

Neuroverkko voidaan aluksi viedä valvottuun ympäristöön toimimaan. Sitten voidaan seurata, millaisia virheitä se tekee, ja opettaa sitä lisää näillä virheellisesti luokitelluilla kuvilla, jotka ihminen on jälkikäteen luokitellut oikealla tavalla. Lopulta neuroverkosta tulee niin tarkka, että se tekee virheitä enää hyvin harvoin, eikä sitä tarvitse enää aktiivisesti valvoa tai opettaa uudelleen. Ihminen saa keskittyä vaativampiin työtehtäviinsä ja antaa neuroverkon huolehtia rutiininomaisesta kuvien luokittelusta. Lopputuloksena syntyvän neuroverkon ei kuitenkaan tarvitse olla vain apuväline, joka antaa kuville oikeita tunnisteita tai siirtää niitä oikeisiin kansioihin, vaan sen avulla voi tarvittaessa tehdä myös videoanalytiikkaa. Mahdollisia sovelluskohteita on niin paljon, että vain mielikuvitus on rajana: neuroverkko voi esimerkiksi etsiä lääketieteellisistä kuvista syöpäsoluja, laskea parkkihallissa olevien autojen lukumäärän, tunnistaa auton rekisterikilvestä maan, johon auto on rekisteröity, tai paikantaa reaaliaikaisesta videokuvasta savua, ajoneuvoja, ihmisiä ja jopa ihmisten tunnetiloja.

Neuroverkko ei ole pelkästään kuvien ja videoiden analysointiin tarkoitettu algoritmi, vaan sillä voi analysoida melkeinpä millaista dataa tahansa. Eräs neuroverkkojen erityistapaus nimeltä takaisinkytkeytyvä neuroverkko (eng. recurrent neural network), joka tunnetaan lyhenteellä RNN, on suosittu työkalu signaalidatan käsittelyssä. Se sopii loistavasti myös kirjoitetun tekstin sekä tallennetun äänen analysointiin. RNN:n avulla voidaan esimerkiksi ennustaa eri koneiden tuottamasta aikasarjadatasta alkavia vikoja tai häiriötilanteita, tunnistaa puhutun tai kirjallisen asiakaspalautteen kieli tai sävy ja havaita kiinnostavia tai poikkeuksellisia ääniä eri tilojen tai alueiden äänitallenteista.

Edellä mainitut esimerkit kuvastavat laskennallisesti melko monimutkaisia tilanteita. Joskus dataa saattaakin olla suuri määrä kerättynä, tai sitä olisi mahdollista alkaa kerätä, mutta ei ole kuitenkaan tietoa siitä, millaisia edistyksellisiä ratkaisuja tämän datan avulla pystyttäisiin kehittämään. Tällöin olisi erittäin hyödyllistä kutsua paikalle datan mahdollisuuksiin erikoistunut asiantuntija, joka pystyy tunnistamaan eri datalähteet, datan mahdolliset käyttökohteet ja suunnittelemaan sekä toteuttamaan liiketoimintaa tehostavan dataratkaisun. Hyödynnetäänkö teillä jo sellaista?


FM Julius Kallio toimii Insta DefSec Oy:n Advanced Analytics -tiimissä Data Scientistina. Hän auttaa yrityksiä ja organisaatioita datan mahdollisuuksien tunnistamisessa ja hyödyntämisessä.


Kommentointi

Nimi:
Kommentti: