AI mikä tekoäly?
Joko autot kohta ajavat itsestään? Pitääkö olla huolissaan siitä, että tekoäly kaappaa vallan ihmisiltä? Lyhyt vastaus kumpaankin on ei, mutta jos haluat ajautua pitempiin keskusteluihin vaikka työhaastattelussa tai baaritiskillä, tästä tekstistä voi olla hyötyä. Kerron suomen kielellä käsityksiäni siitä, mitä tekoälyksi (AI) nimitetään.
Oheinen kaaviokuva esiintyy lähes samanlaisena lukemattomissa tekoälyteksteissä. Nykyinen tekoäly on likimain sama asia kuin koneoppiminen (machine learning, ML), ja monet käyttävät näitä sanoja samassa merkityksessä. Kuitenkin kaavion mukaan tekoälyä on myös koneoppimisen ulkopuolella – mitä se sitten on? Avainsana on ”nykyinen”: jos nykyinen tekoäly on lähes sama kuin koneoppiminen, koneoppimisen ulkopuolella voidaan ajatella olevan sekä entistä että tulevaa tekoälyä.
Tekoälyn käsite on kehittynyt ajan myötä siinä missä muukin maailma. Moni oman aikansa tekoälysovellus tuntuu nykyään joko simppeliltä tai auttamattoman vanhentuneelta. Ensimmäinen shakkiohjelma osallistui ihmisten turnaukseen vuonna 1968. Silloiset shakkialgoritmit laskivat muutaman siirron eteenpäin ja arvioivat syntyviä tilanteita; mitä tehokkaampi kone, sitä pitemmälle se pystyi laskemaan. 1980-luvulla tekoälyksi nimitettiin asiantuntijajärjestelmiä, joissa aihealueen tietämys oli koodattu päättelysäännöiksi. Erääseen tekoälyn määritelmään kuului havaitseminen, kustannusfunktio ja toimenpiteet. Tällaisen määritelmän mukaan takaisinkytketty säätöpiirikin, 1930-luvun suuri automaatiokeksintö, on tekoälyä.
Nykyään puhutaan yleisestä (tai vahvasta) ja kapeasta (tai heikosta) tekoälystä. Kapea tekoälysovellus toimii tarkasti määritellyssä tehtävässä, johon se on suunniteltu. Kaikki nykyään olemassa oleva tekoäly on kapeaa. Yleinen tekoäly tarkoittaa jotakin, mikä pystyy oppimaan uusia taitoja tai toimintoja monilta erilaisilta alueilta. Sellaista ei vielä ole. Chatbotti ei opi pelaamaan shakkia vaikka kuinka opettaisi, eikä itsestään ajava auto suosittele ostoksia verkkokaupassa.
Kehittyykö tekoäly tulevaisuudessa ohi ihmisen älykkyyden eli saavutetaanko ns. singulariteetti, jonka jälkeen ihminen ei pysty enää hallitsemaan kehitystä? Niin väitetään. Jos nykyinen tekoäly mainostaa minulle sykemittaria, vaikka ostin viime viikolla sykemittarin, tai robottipölynimuri jää kiertämään kehää keskelle olohuoneen lattiaa, en olisi kovin huolissani singulariteetista. Tarvitseeko lasteni tai lastenlasteni olla siitä huolissaan, en osaa sanoa.
Kone oppii datasta
Koneoppiminen perustuu aina dataan. Ilman dataa voidaan tehdä muita fiksuja ratkaisuja, mutta koneoppimista varten tarvitaan dataa. Kuinka paljon? Yleensä enempi on parempi, mutta tässäkin laatu korvaa määrän. Jos data on oikeassa muodossa ja sisältää rikasta tietoa tarkasteltavasta ilmiöstä, jo muutamalla kymmenellä datapisteellä (rivillä) voi saada aikaan hyvän koneoppimismallin. Ikävä kyllä paljon yleisempi on tilanne, jossa data on pitkin poikin erilaisia varastoja, iso osa siitä on tyhjää täynnä ja eri formaatit eivät sovi yhteen. Data-analyytikoiden vanhan peukalosäännön mukaan 90 % työstä on datan esikäsittelyä. Valmiiksi koodattujen algoritmien aikakaudella prosenttia voi nostaa vieläkin ylemmäs.
Ympyräkaavion mukaan tekoälyn ja koneoppimisen ytimessä on syväoppiminen (deep learning), jonka läpimurto 2010-luvulla oli uuden tekoälyinnostuksen alku. Syväoppiminen on neuraaliverkkojen alalaji. Sen periaatteissa ei ole kovin paljon uutta 1990-luvun neuraaliverkkoihin, mutta laskentatehon kasvu on mahdollistanut kaikenlaista jännää. Näyttäviä ja pelottaviakin sovelluksia ovat esim. valevideot tai tekoälyn generoima ohjelmakoodi.
Joskus kaavioissa piirretään syväoppimisen rinnalle päätöspuut, jotka ovat toinen tärkeä koneoppimisen laji. Yksikin päätöspuu (decision tree) kykenee mallintamaan dataa, mutta useimmiten niitä tarvitaan koko joukko. Satunnaismetsä (random forest) on mallityyppi, jossa päätöspuihin lisätään satunnaisuutta ja lopputulos syntyy koko metsän keskiarvona. Vaikka yksi puu päättelisi väärin, porukassa tyhmyys ei tiivisty vaan keskiarvo on todennäköisemmin lähellä oikeaa. Viime vuosien kuumimpia sanoja koneoppimisessa on ollut algoritmi nimeltä XGBoost, joka opettaa juuri päätöspuiden joukkoa.
Entä datatiede, data-analytiikka ja data engineering
Data sciencen ”suomenkieliseksi” vastineeksi on vakiintumassa datatiede. Yle on käyttänyt jopa nimikettä tietotieteilijä, mutta sitä en ole nähnyt missään muualla. Datatiede piirretään usein yllä olevaan ympyräkaavioon siten, että puolet siitä on tekoälyn ulkopuolella ja toinen puoli leikkaa kaikkia muita ympyröitä. Se kuitenkin jättäisi liikaa hankalia kysymyksiä, kuten mitä muka on koneoppiminen joka ei ole datatiedettä. Pidän enemmän alla olevan kuvan määritelmästä.
Tämän kuvan mukaan datatiede yhdistää tietotekniikan, matematiikan ja sovellusosaamisen. Lisäksi kukin kahden alueen leikkaus on helppo nimetä: IT-sovellukset, sovellettu matematiikka ja koneoppiminen. Jos hallitset nämä kaikki, voit itse sanella palkkasi.
Vieläkin on jäljellä termejä: ainakin data-analytiikka ja data engineering. Taas voisi piirtää palleroita ja Venn-diagrammeja, mutta tyydytään nyt pelkkiin sanoihin.
Data-analytiikka pyrkii ymmärtämään datan sisältöä. Lasketaan keskiarvoja ja korrelaatioita, tehdään yhteenvetoja, piirretään toinen toistaan hienompia visualisointeja ja päätellään. Tilastotieteilijän data-analytiikka on erilaista kuin liiketoimintajohtajan. Mielelläni luen kaiken koneoppimisenkin data-analytiikaksi, koska kyllähän koneoppimisessa tavallaan analysoidaan dataa. Olen myös kuullut väitettävän, että data-analytiikka olisi eri asia kuin data-analyysi, mutta mieleen ei jäänyt oliko niillä muuta eroa kuin että pitempi sana kuulostaa monimutkaisemmalta.
Datainsinööri tekee data engineeringiä. Jälkimmäiselle ei taida olla suomenkielistä vastinetta, joten sallikaamme englanninkielinen käsite data engineering. Se sisältää datan keräämistä, siirtoa, putkitusta, varastointia, muokkaamista jne. Raja data engineeringistä analytiikan ja datatieteen puolelle ei tietenkään ole terävä, siksipä datatieteilijä on datainsinöörin läheinen kaveri. Sellaistakin nimikettä näkee käytettävän kuin ML-insinööri. Osaajille riittää töitä.
Mikko Laurikkala, AI Lead, Fonzit Oy