Koneoppiminen liiketoiminnan ongelmien ratkaisemisen työkaluna

Aikaisemmassa blogitekstissäni kirjoitin siitä, mitä tekoäly ja koneoppiminen tarkoittavat ja minkälaisten ongelmien ratkaisemiseksi ne ovat oikeita työkaluja. Jos et ole lukenut edellistä blogitekstiäni, suosittelen lukemaan sen ensin, jotta meillä on yhteneväinen käsitys terminologiasta. Tässä tekstissä pohdin, mitä pitää ottaa huomioon, kun liiketoiminnan ongelmia ratkotaan koneoppimisen avulla.

Ongelman määrittely ja mittarit koneoppimismallin hyvyydelle

Jos koneoppiminen on oikea ratkaisu ongelmaan, on tärkeää määritellä, miten koulutettavan mallin hyvyyttä halutaan mitata. Esimerkiksi lääketieteellisissä luokitteluongelmissa on erityisen tärkeää ottaa huomioon väärät positiiviset ja väärät negatiiviset tulokset. Mietitään käytännön esimerkkinä mallia, joka ennustaa magneettikuvien perusteella, onko potilaalla syöpä. On haitallista jättää tutkimatta ihminen, jonka malli väittää olevan terve mutta joka on todellisuudessa sairas. Sen sijaan on vähemmän haitallista tutkia ihminen, joka osoittautuukin terveeksi, vaikka malli väittää hänen olevan sairas. Tällöin mallia halutaan sakottaa enemmän vääristä negatiivisista tuloksista kuin vääristä positiivisista tuloksista koulutuksen aikana.

Regressio-ongelmissa, joissa yritetään ennustaa muuttujan arvoa sitä selittävistä muuttujista (esim. sähkön hinnan ennustaminen sään perusteella), on myös tärkeää valita tarkkuuden mittari oikein. Riippuen ongelman laadusta mallin tekemiä virheitä voidaan sakottaa eri tavalla, jotta saadaan käytännössä hyvin toimiva ratkaisu.

Tarkkuus ei ole ainoa kriteeri, joka pitää ottaa huomioon mallia kehitettäessä. Mallin tarkkuus ja sen kouluttamiseen käytetty aika ovat usein vaihdannaisia, joiden välillä pitää tehdä jonkinlainen kompromissi. Usein ei ole järkevää käyttää kuukautta parantaakseen mallin tarkkuutta kahden prosentin verran, jos yhden prosentin parannus saadaan aikaiseksi viikossa. Välillä on myös perusteltua tinkiä mallin tarkkuudesta, jotta ennusteen tekemiseen käytettävä aika pysyy lyhyempänä tai mallin käyttämiseen vaadittavat resurssit (kuten tietokoneen muisti) pysyvät pienempinä. 

Riippumatta siitä, miten mallin tarkkuutta halutaan mitata, on tärkeää lukita käytettävät mittarit ja tavoitetarkkuus projektin alussa. Tarkkuusmittareiden lukitsemisen yhteydessä on syytä myös sopia, mitä dataa käytetään tarkkuutta mitattaessa, jotta mallin eri iteraatiot ja versiot ovat keskenään vertailukelpoisia.

Yksinkertainen malli lähtökohtana koneoppimiselle

Projektin alkuvaiheessa on järkevää tehdä yksinkertainen malli, jolla saadaan aikaiseksi jotain tuloksia, joita voidaan käyttää vertailukohtana monimutkaisempia malleja kehitettäessä. Simppeli malli on myös aloituskohta, josta näkee usein, missä kohtaa malli tekee eniten virheitä ja ongelman lähempi tarkastelu on siten tarpeen. Jos kehitys aloitetaan suoraan monimutkaisesta implementoinnista, voi olla hankalaa sanoa, missä kohtaa virhe tapahtuu. Mitä yksinkertaisempi malli, sitä helpommin virheet löytyvät ja ovat korjattavissa. Tavoitetarkkuuden lisäksi on hyödyllistä miettiä, mikä on minimitarkkuus, jolla koulutettua koneoppimismallia voidaan hyödyntää liiketoiminnan ongelmien ratkaisemiseksi siten, että se tuo lisäarvoa. Yksinkertainen malli voi osoittautua jo täyttämään minimitarkkuuden vaatimukset, jolloin liiketoiminta hyötyy paljon nopeammin projektin aikaansaannoksista myös kehitystyön aikana.

Koneoppimismallin rakentaminen on iteratiivinen prosessi

Koneoppimismallin rakentaminen on usein luonteeltaan tutkimuksenomaista ja lopputulos on epävarma. Vaatii aikaa, jotta saadaan ymmärrystä siitä, miten saatavilla olevasta datasta saadaan irti hyödyllistä tietoa. On vaikeaa sanoa etukäteen, kuinka hyvin malli suoriutuu sille annetusta tehtävästä, ennen kuin malli on koulutettu. Sen lisäksi on vaikea arvioida, kuinka paljon mallin tarkkuutta voidaan parantaa käyttämällä paljon aikaa parametrien hienosäätämiseen. Kuten tutkimustyön luonteeseen kuuluu, välillä lopputulos on, ettei saatavilla olevasta datasta saada aikaiseksi mallia, joka riittävällä tarkkuudella kuvaa haluttua ilmiötä. Tämä ei kuitenkaan tarkoita, että ongelman suhteen tarvitsee luovuttaa vaan on hyvä hetki miettiä, miten dataa saataisiin lisää tai miten ongelmaa kannattaisi lähestyä toisella tavalla, jotta ratkaisu löytyy. On tärkeää ymmärtää, että myös tieto siitä, ettei jokin asia toimi, on arvokasta, mutta sen tiedon hankkimiseen käytetty aika kannattaa minimoida aina kun mahdollista.

Usein mallin kouluttaminen on iteratiivinen prosessi, jonka aikana testataan useita eri lähestymistapoja ja opitaan ymmärtämään ongelmaa paremmin. Tämä on tärkeää ottaa huomioon, kun työskentely koneoppimisprojektin parissa alkaa, jotta voidaan miettiä siihen sopivia toimintamalleja ja tapoja mitata projektin etenemistä.

Datan merkitys ja ongelmien ainutlaatuisuus

Koneoppimisen tavoitteena on luoda malli sille annetusta datasta. Tämä tarkoittaa, että malli ei voi oppia mitään tietoa, mitä ei ole pääteltävissä koulutuksen yhteydessä käytetystä datasta. Tulosten yleistettävyys koulutusdatan ulkopuolisiin ilmiöihin on koneoppimismalleilla usein heikkoa, jolloin on tärkeää, että käytettävissä oleva data kattaa kaikki ne ilmiöt, joita mallilla halutaan kuvata. Monimutkaisia ongelmia tutkittaessa ei ole välttämättä suoraan selvää, voidaanko olemassa olevasta datasta saada aikaiseksi malli halutun ongelman ratkaisemiseksi.

On myös tärkeää ymmärtää, että koneoppimista ei voi tehdä ilman dataa. Tämä saattaa kuulostaa itsestään selvältä osalle lukijoista, mutta haluan sanoa sen, koska se on ehkä tärkein asia ymmärtää koko tekstissä. Tämä tarkoittaa myös, että dataa kerätessä sen laatuun kannattaa kiinnittää erityisesti huomiota. Datan kerääminen ja esiprosessointi on usein koneoppimisprojektin pitkäkestoisin osuus. Esiprosessointia ovat esim. datan saattaminen oikeaan formaattiin, virheellisen datan filtteröinti, puuttuvan datan täydennys, datan skaalaus, piirteiden valinta (feature engineering) sekä datan jakaminen osiin koulutusta, kehitystä ja testausta varten. On hyvä pitää mielessä datan kanssa työskentelevien piirissä tunnettu “Garbage in, garbage out” -periaate. Tämä on syytä ottaa huomioon projektiin käytettäviä resursseja mietittäessä.

Suurimmat ongelmat, joita olen kohdannut koneoppimista tehdessäni ovat liittyneet datan huonoon laatuun tai saatavuuteen. Mallin kouluttamista varten on nykyään olemassa kehittyneitä kirjastoja, ja tutkimusta eri algoritmien ja arkkitehtuurien soveltuvuudesta erilaisten ongelmien ratkaisemiseen löytyy paljon. On kuitenkin tärkeää ymmärtää, että oikeat ongelmat ovat melkein aina jollain tavalla uniikkeja, ja täysin valmista ratkaisua harvoin on suoraan saatavilla. Uuden ongelman kohdalla pitää ratkaisu aina räätälöidä juuri sille sopivaan muotoon. Ymmärrys algoritmeista ja kokemus aikaisemmista ongelmista helpottaa tätä prosessia. Yhtymäkohdat nykyisten ja aikaisempien ongelmien välillä auttavat välttämään samat virheet kuin aikaisemmin ja pääsemään nopeammin oikean ratkaisun jäljille. Aikaisempi kokemus ei kuitenkaan koskaan poista sitä tosiasiaa, että tosimaailman ongelmat ovat usein uniikkeja ja vaativat siten juuri niille räätälöityjä ratkaisuja.

Tiedon jakamisen tärkeys

Koneoppimisen ja muun tekoälyn rooli tällä hetkellä on tukea ihmisten toimintaa. Tällä hetkellä tekoäly ei siis korvaa monia työtehtäviä vaan auttaa ihmisiä suoriutumaan niistä tehokkaammin ja paremmin. Jotta tämä on mahdollista, yritysten työntekijöillä ja johtajilla pitää olla ymmärrys siitä, mitä koneoppiminen ja tekoäly tarkoittavat ja mitä ne mahdollistavat. On hyödyllistä ymmärtää koneoppimismallien heikkoudet ja vahvuudet sekä oppia tunnistamaan mahdollisia virhetilanteita mallissa, jotta niihin voidaan reagoida mahdollisimman nopeasti. Tekoälystä ja koneoppimisesta kertominen organisaation muille henkilöille on mielestäni mallien parissa työskentelevien vastuulla ja heille tulisi tarjota siihen hyvät puitteet. Tiedon jakaminen organisaation sisällä – ja sen ulkopuolelle – on erittäin tärkeää ja aihetta ymmärtävien velvollisuus. Vuorovaikutus uusia tuotteita ja palveluja suunnittelevien ihmisten ja koneoppimisen parissa työskentelevien ihmisten välillä on välttämätöntä, jotta voidaan saada aikaiseksi toimivia ratkaisuja, joissa loppukäyttäjien tarpeet pystytään ottamaan kunnolla huomioon. Ymmärrys tekoälystä ja koneoppimisesta luo mahdollisuuksia uusille innovaatioille, minkä seurauksena voimme ratkoa nykymaailman ongelmia entistä tehokkaammin.

Tekoäly ja tulevaisuus

Samalla tavalla kuin robotiikka korvaa työtehtäviä teollisuuden osa-alueilla, kuten jätteiden lajittelua, koneoppiminen ja tekoäly korvaavat lakimiehiä, liiketoiminta-analyytikkoja sekä rahastojen hoitajia algoritmien ja mallien kehittyessä entisestään. Muutos ei tapahdu kerralla vaan näkyy pidemmällä aikavälillä, kun työtehtävät esimerkiksi laskujen ja dokumenttien luokittelussa vähenevät. Yksinkertaisempien tehtävien hiljalleen kadotessa syntyy enemmän tarvetta ihmisten luovuudelle, mutta samalla herää myös kysymyksiä siitä, miten ihmiset voivat parhaiten kontribuoida yhteiskuntaan. Teknologian kehitys on nopeaa ja on tärkeää keskustella siitä, miten sen hyödyt saadaan jaettua ihmisten välille mahdollisimman tasaisesti. On vaikea arvata, mitä kaikkea tekoäly tuo tullessaan, mutta ylläpitämällä aktiivisesti keskustelua siitä meillä on paremmat mahdollisuudet valmistautua muutokseen. Ainoa asia, joka on varma, on se, että tekoäly tulee olemaan osa tulevaisuuttamme yhä enemmissä määrin. Uskon, että tekoälyn aikaansaama muutos tulee olemaan positiivista – jos vain pidämme siitä huolen.

 

 

Juho Arjoranta, Data Scientist

 

 

 

 

Haluaisitko sinä päästä työskentelemään näiden teemojen pariin, osaksi työporukkaamme? Katso avoimet paikat ja kerro meille itsestäsi!