Koneoppiminen
Kuusi hyödyllistä näkökulmaa koneoppimisesta

Data on koneoppimisen polttoainetta, mutta koneoppiminenkaan ei aina vaadi valtavaa määrää polttoainetta.

Totuus on, että erilaiset koneoppimisen algoritmit tarvitsevat erilaisia määriä dataa toimiakseen hyvin. ”Logistic regression” on esimerkki yksinkertaisimmista algoritmeista. Se ei välttämättä tarvitse kuin muutamia kymmeniä tai satoja esimerkkejä opetusvaiheessa toimiakseen hyvin. Toisessa ääripäässä on uusimmat ”deep learning” -tekniikat, jotka tarvitsevat valtavia määriä dataa.

Tavoitteena koneoppimisessa on aina opettaa yleistyksiä. Kompastuskivenä koneoppimisessa on mm. ”over fitting” eli ns. ylisovittaminen. Se on ongelmana erityisesti silloin, jos valitaan liian monimutkainen malli liian pieneen määrään dataa. Silloin monimutkainen malli pystyy jopa muistamaan jokaisen yksittäisen sille opetetun esimerkin, mutta ei kykenekään parhaimmalla tavalla yleistyksiin.

Datan laatuongelma ei ratkea automaattisesti koneoppimisella, mutta koneoppimisen laatu määräytyy datan laadusta.

Datan laatu määrittelee aina sen mitä voidaan oppia. Tämä usein unohdetaan, kun puhutaan koneoppimisesta. Usein toivotaan, että koneoppiminen ratkaisee datan laatuongelmat. Datan siivous, esikäsittely ja luokittelu on kuitenkin välttämätön vaihe ennen varsinaista koneen opettamista. Tämä vaihe on monesti erittäin työläs ja aikaa vievä.

Algoritmilla ei ole elämänkokemuksen tuomaa viitekehystä asioihin, eikä se pysty päättelemään asioita, joita datasta ei löydy. Toisaalta taas datassa olevat vinoumat (bias) tulevat väistämättä mukaan myös koneelle opetettuun malliin, ellei niitä erikseen siivota pois. Esimerkiksi lainahakemusten käsittelyyn tarkoitettuun malliin voi tulla datasta bias esimerkiksi asuinpaikasta tai hakijan sukupuolesta. Näissä tapauksissa on hyvä miettiä, halutaanko näitä vinoumia ottaa mukaan. Hyvä ajatusmalli on miettiä, olisiko toiminta hyväksyttävää, jos ihminen käsittelisi vastaavan tapauksen

Koneoppiminen ei tuo virheettömyyttä ja koneen virheisiin voidaan ja pitää varautua.

Koneoppimisen kehittäminen on iteratiivinen prosessi. Ei ole yhtä mallia, joka toimisi aina hyvin kaikelle datalle. Aluksi todennäköisesti malli toimii huonosti ja tekee paljon virheellisiä ennustuksia. Kun ymmärretään käytössä olevaa dataa paremmin ja saadaan haettua sille sopiva malli, päästään parempiin ja parempiin tuloksiin. Prosessissa on hyvä myös varautua siihen, että malli tulee tekemään virheitä sekä väärien positiivisten että väärien negatiivisten ennustuksien muodossa. Jos koneoppimiseen tukeutuvat prosessit eivät ole varautuneet tähän, voidaan saada haitallisia tuloksia.

Kaikki koneoppimisen algoritmit eivät perustu jatkuvaan oppimiseen, osa koulutetaan opetusvaiheessa.

Monesti ajatellaan, että kone oppii jatkuvasti uutta. Näin ei läheskään aina ole. Usein koneoppimisen algoritmeilla on selkeästi erikseen vaihe, jolloin niitä opetetaan tietyllä datasetillä. Tämän jälkeen on vaihe, jossa algoritmia käytetään ennustamaan asioita uudesta datasta, jota algoritmi ei ole nähnyt aiemmin. Osa algoritmeista on dynaamisempia; algoritmi oppii jatkuvasti ympäristöstä tulevasta datasta ja pystyy toimimaan ympäristössä jo oppimisen aikana, esimerkiksi ”reinforcement learning” käytettynä tietoturvan alueella. Koneen opettamiseen tarvitaankin uutta panostusta ainakin silloin, kun lähtötilanne elää ja muuttuu.

Koneoppiminen ei ole sama asia kuin tekoäly.

Koneoppimisen tekniikoita on nykyään suurella skaalalla, on vaikea sanoa missä kohtaa puhutaan perinteisistä algoritmeista ja missä alkaa varsinainen tekoäly. Voikin vitsaillen sanoa, että tekoäly on aina se mystinen alue jota ei ymmärretä ja kun ymmärrys kasvaa myös tekoälyn määritelmä siirtyy kauemmas.

Koneoppimisesta kiinnostuvan kannattaa kiinnostua ensin datasta.

Kaikki koneoppimisessa lähtee loppuviimein aina datasta. On siis hyvä ensin tutustua dataan ihan yksinkertaisin menetelmin. Ja vaikka vielä ei tietäisikään miten omaa dataa voisi käyttää, kannattaa siitä pitää hyvää huolta. Muutaman vuoden päästä, kun uudet tekniikat ovat kehittyneet edelleen, se voi olla valtavan arvokasta tai sitä voi yhdistää jostain muusta lähteestä tulevaan dataan.

IT-konsultti Reflector

Vesa Saarinen

Kirjoittaja on koneoppimisesta kiinnostunut Reflectorin ratkaisuarkkitehti Vesa Saarinen.

Reflector on ICT-talo, jonka ykköstehtävä on auttaa asiakkaitamme liiketoiminnan isoissa ja pienissä muutoshankkeissa. Ketterästi ja riippumattomasti.

Jaa artikkeli

Vaatimusmäärittely

Onko vaatimusmäärittelylle paikkaa SAFe-junassa?

Joskus IT-ammattilaisten kahviautomaattikeskusteluja kuunnellessa syntyy vaikutelma, että ketteryys, Scrum esimerkkinä, kadottaa tarpeen perinteiseen järjestelmäkehitykseen kuuluvalle vaatimusmäärittelylle ja kattavalle toiminnalliselle määrittelylle. Kun keskusteluun tuodaan

Lue lisää
Tietojärjestelmäprojektin dokumentointi

Business Analyst ketterässä maailmassa

Googlettamalla sanayhdistelmää Agile Business Analyst löytyy melkoinen määrää hittejä. Aiheesta löytyy artikkeleita, blogeja, esityksiä ja YouTube -videoita. Löysin tahon, joka järjestää Agile Business Analyst -sertifiointikoulutusta

Lue lisää
Kokonaisarkkitehtuuri Reflector

Ota yhteyttä, mietitään yhdessä juuri teille parhaat ratkaisut

Täytä tiedot ja siirry lataamaan tutkimus

Kokonaisarkkitehtuuri Reflector

Get in touch!