Tekoäly, koneoppiminen ja syväoppiminen ovat sisäkkäisiä, eivät synonyymejä: tekoäly on laajin käsite (ohjelma, joka jäljittelee älykkyyttä vaativaa toimintaa), koneoppiminen on yksi tapa rakentaa tekoälyä (ohjelma, joka muuttaa toimintaansa datan perusteella), ja syväoppiminen on yksi koneoppimisen tekniikka (monikerroksisia neuroverkkoja käyttävä menetelmä).
| Käsite | Mitä se tarkoittaa | TEPA-määritelmä |
|---|---|---|
| Tekoäly | Laajin käsite: mikä tahansa älykkyyttä jäljittelevä ohjelma | “ohjelma, joka jäljittelee ihmiselle tyypillisiä älykkyyttä vaativia toimintoja” |
| Koneoppiminen | Yksi tapa rakentaa tekoälyä: ohjelma oppii datasta | “tekoälyteknologia, jossa ohjelma oppii koulutusvaiheessa saamistaan tiedoista… ja muuttaa niiden perusteella itsenäisesti toimintaansa” |
| Syväoppiminen | Yksi koneoppimisen tekniikka: monikerroksiset neuroverkot | “neuroverkkoteknologia, jossa hyödynnetään monikerroksisia neuroverkkoja ja joka mahdollistaa monimutkaisten rakenteiden ja asiayhteyksien oppimisen opetusdatasta” |
| Neuroverkko | Syväoppimisen käyttämä rakenne | “mukautuva tietojenkäsittelyn järjestelmä, joka koostuu suuresta joukosta yksinkertaisia, toisiinsa yhteydessä olevia laskenta- ja tiedonkäsittely-yksikköjä” |
Mitä tarkoittaa koneoppiminen?
Koneoppiminen tarkoittaa ohjelmaa, joka ei toimi kiinteän, ihmisen kirjoittaman säännön mukaan, vaan oppii toimintatapansa datasta ja muuttaa sitä itsenäisesti sen perusteella. Tämä ei ole “koneen ajattelua” missään inhimillisessä mielessä — kyse on siitä, että ohjelma säätää omia sisäisiä parametrejaan sitä mukaa kun se näkee lisää esimerkkejä, kunnes sen ennusteet osuvat yhä useammin oikeaan. Klassinen esimerkki on roskapostisuodatin: sen sijaan että joku listaisi käsin jokaisen roskapostiin viittaavan sanan, ohjelmalle näytetään tuhansia esimerkkejä roskapostista ja asiallisesta postista, ja se päättelee itse, mitkä piirteet erottavat ne toisistaan.
Koneoppimisen sisällä tunnetaan tavallisesti kolme pääasiallista lähestymistapaa, riippuen siitä minkälaista dataa ohjelmalle näytetään koulutuksessa:
- Valvottu oppiminen — malli näkee esimerkkejä, joissa oikea vastaus on jo valmiiksi merkitty (esimerkiksi “tämä viesti on roskapostia”, “tämä ei ole”), ja se oppii yhdistämään piirteet oikeaan vastaukseen.
- Valvomaton oppiminen — malli saa dataa ilman valmiita merkintöjä ja etsii siitä itse säännönmukaisuuksia tai ryhmittelyjä, esimerkiksi samankaltaisten asiakkaiden ryhmittelyä ilman ennalta annettuja luokkia.
- Vahvistusoppiminen — malli oppii kokeilemalla toimintoja ja saamalla palautetta siitä, oliko lopputulos hyvä vai huono, ja säätää toimintaansa sen mukaan.
Näistä valvottu oppiminen on tavallisin arkikäytössä näkyvä muoto, mutta kaikki kolme täyttävät saman TEPA-määritelmän: ohjelma muuttaa toimintaansa itsenäisesti sille annetun tai keräämänsä datan perusteella. Nykyisten kielimallien koulutus yhdistää käytännössä useampaa näistä tavoista peräkkäin: laaja alkukoulutus muistuttaa lähinnä valtavan tekstimäärän tilastollista mallintamista, ja sen jälkeen mallin vastauksia hienosäädetään edelleen ihmisten antaman palautteen perusteella — periaatteessa lähempänä vahvistusoppimista kuin puhdasta valvottua oppimista.
Mikä on syväoppiminen?
Syväoppiminen on koneoppimisen alalaji, joka käyttää monikerroksisia neuroverkkoja — suuria joukkoja yksinkertaisia, toisiinsa kytkettyjä laskentayksiköitä, jotka on järjestetty peräkkäisiin “kerroksiin”. Sana “syvä” ei viittaa siihen, että tekoäly ymmärtäisi asian syvällisemmin arkikielen merkityksessä — se viittaa kirjaimellisesti siihen, kuinka monta kerrosta neuroverkossa on päällekkäin. Mitä useampi kerros, sitä monimutkaisempia rakenteita ja yhteyksiä malli pystyy oppimaan datasta.
Syväoppiminen sopii erityisen hyvin tehtäviin, joissa on paljon monimutkaisia, sisäkkäisiä kuvioita: kuvantunnistus, puheentunnistus ja kielimallien tekstintuotanto ovat kaikki nykyään pääosin syväoppimiseen perustuvia. Yksinkertaisempi koneoppimismenetelmä ilman useita kerroksia riittää sen sijaan usein tehtäviin, joissa piirteet ovat suoraviivaisempia — esimerkiksi juuri roskapostin tunnistus voi toimia hyvin ilman monimutkaista neuroverkkoa.
Ero näiden kahden välillä ei ole aina yksiselitteinen käytännössä, koska sama tehtävä voidaan usein ratkaista kummallakin tavalla eritasoisella tarkkuudella. Nyrkkisääntönä: mitä monimutkaisempi ja mitä enemmän raakadataa (esimerkiksi kokonaisia kuvia pikseleinä tai äänisignaalia sellaisenaan) tehtävässä käsitellään, sitä todennäköisemmin ratkaisu nojaa syväoppimiseen. Mitä siistimpää ja valmiiksi jäsenneltyä data on, sitä useammin yksinkertaisempi koneoppimismenetelmä riittää yhtä hyvin tai jopa paremmin, koska sillä on vähemmän sisäisiä parametreja ylisovitettavaksi pieneen aineistoon.
Tämä valinta ei ole pelkkää teoriaa yritysten arjessa: se vaikuttaa suoraan siihen, kuinka paljon dataa ja laskentatehoa jonkin tehtävän ratkaiseminen vaatii. Yksinkertaisempi, ei-syväoppimiseen perustuva koneoppimismalli voi usein toimia pienemmällä datamäärällä ja olla myös helpompi tulkita jälkikäteen — nähdä, mikä yksittäinen tekijä johti tiettyyn ennusteeseen. Syväoppimismalli taas tarvitsee tyypillisesti enemmän esimerkkejä oppiakseen luotettavasti, mutta pystyy vastineeksi ratkaisemaan tehtäviä, joihin yksinkertaisempi menetelmä ei riitä lainkaan.
Mitä tekoälyn neuroverkko on?
Neuroverkko on mukautuva tietojenkäsittelyn järjestelmä, joka koostuu suuresta joukosta yksinkertaisia, toisiinsa yhteydessä olevia laskenta- ja tiedonkäsittely-yksikköjä. Nimi tulee löyhästä analogiasta aivojen hermosoluihin, mutta analogiaa ei kannata venyttää liian pitkälle: neuroverkko on matemaattinen rakenne, joka säätää yksikköjensä välisiä painotuksia koulutusdatan perusteella, ei bioaivon simulaatio. Yksi neuroverkko voi olla pieni ja matala (muutama kerros) tai suuri ja syvä (kymmeniä tai satoja kerroksia) — jälkimmäinen on se, mistä nimitys syväoppiminen tulee.
Jokainen yksittäinen laskentayksikkö (usein kutsutaan “neuroniksi”) tekee itsessään hyvin yksinkertaisen laskutoimituksen: se ottaa vastaan syötteitä edelliseltä kerrokselta, painottaa niitä opituilla kertoimilla ja välittää tuloksen eteenpäin seuraavalle kerrokselle. Mikään yksittäinen yksikkö ei “tiedä” mitään koko tehtävästä — monimutkainen käyttäytyminen syntyy vasta siitä, kun tuhannet tai miljoonat tällaiset yksinkertaiset yksiköt toimivat yhdessä useassa peräkkäisessä kerroksessa. Tämä on myös syy, miksi yksittäisen vastauksen “perustelua” on vaikea selittää täsmällisesti edes mallin kehittäjälle: lopputulos on tuhansien pienten, itsessään läpinäkyvien laskutoimitusten summa, ei yhden selkeän säännön tulos.
Tästä syntyy myös yleinen väärinkäsitys: koska yksittäistä laskutoimitusta ei voi jäljittää selkeäksi, ihmisen ymmärrettäväksi säännöksi, moni olettaa neuroverkon toimivan jotenkin salaperäisesti tai ennustamattomasti. Todellisuudessa jokainen yksittäinen laskuvaihe on täysin läpinäkyvä ja jäljitettävissä — vaikeus on vain siinä, että niitä on liikaa yhdellä kertaa hahmotettavaksi ihmiselle. Sama malli antaa aina saman tuloksen samalla syötteellä, ellei siihen ole erikseen lisätty satunnaisuutta, joten kyse ei ole arvaamattomuudesta teknisessä mielessä, vaan monimutkaisuuden mittakaavasta.
Käytännön tasolla neuroverkkoa ei tarvitse ymmärtää matemaattisesti käyttääkseen sillä rakennettuja työkaluja: kun kirjoitat kehotteen chatbotille tai pyydät kuvageneraattoria tuottamaan kuvan, neuroverkko toimii aina näkymättömissä taustalla, eikä käyttäjän tarvitse tietää mitään sen sisäisestä rakenteesta saadakseen siitä hyödyn irti. Se, miten tämä koulutus ja tuottaminen etenevät vaihe vaiheelta, on selitetty yleisemmin sivulla Miten tekoäly toimii, ja se, miten sama mekanismi näkyy nimenomaan kielimalleissa, on koottu sivulle Kielimallit. Jos taas kiinnostaa data-analytiikan puoli — miten koneoppimista käytetään datan analysointiin liiketoiminnassa — se on käsitelty sivulla Data-analytiikka.
Esimerkki: kysynnän ennustaminen koneoppimisella
Yksi tavallinen, arkinen esimerkki koneoppimisesta liike-elämässä on kysynnän ennustaminen: kauppa haluaa tietää etukäteen, kuinka paljon tiettyä tuotetta kannattaa tilata seuraavaksi. Perinteinen tapa olisi kiinteä sääntö, esimerkiksi “tilaa aina sama määrä kuin viime kerralla samana viikonpäivänä” — sääntö ei mukaudu, vaikka sään, kampanjoiden tai yleisen kysynnän vaihtelu muuttaisi tilannetta. Koneoppimismalli sen sijaan näkee koulutusvaiheessa suuren määrän aiempaa myyntidataa yhdessä siihen liittyvien tekijöiden kanssa — viikonpäivä, sää, aiemmat kampanjat — ja oppii, mitkä yhdistelmät ennustavat korkeaa tai matalaa kysyntää. Kun uutta dataa kertyy, esimerkiksi edellisen viikon toteutunut myynti, malli voi päivittää ennustettaan ilman, että kukaan kirjoittaa uutta sääntöä käsin. Tämä on sama valvotun oppimisen periaate kuin roskapostiesimerkissä yllä, vain sovellettuna erilaiseen dataan ja erilaiseen ennustettavaan lopputulokseen.
Lähteet
- Tietotekniikan termitalkoot (TEPA-termipankki) — koneoppiminen: https://termipankki.fi/tepa/mot/mot.php?page=results&UI=figr&Opt=8&dic=1&SearchWord=koneoppiminen
- Tietotekniikan termitalkoot (TEPA-termipankki) — syväoppiminen: https://termipankki.fi/tepa/mot/mot.php?page=results&UI=figr&Opt=8&dic=1&SearchWord=syv%C3%A4oppiminen
- Tietotekniikan termitalkoot (TEPA-termipankki) — neuroverkko: https://termipankki.fi/tepa/mot/mot.php?page=results&UI=figr&Opt=8&dic=1&SearchWord=neuroverkko
Usein kysyttyä
Onko koneoppiminen sama asia kuin tekoäly?
Ei — koneoppiminen on yksi tapa rakentaa tekoälyä, ei synonyymi sille. Kaikki koneoppiminen on tekoälyä, mutta kaikki tekoäly ei ole koneoppimista: osa tekoälystä perustuu edelleen kiinteisiin, ihmisen kirjoittamiin sääntöihin.
Tarvitseeko syväoppiminen aina paljon dataa?
Yleisesti kyllä. Syväoppimismallien monikerroksiset neuroverkot tarvitsevat tyypillisesti huomattavasti enemmän esimerkkejä oppiakseen luotettavasti kuin yksinkertaisemmat koneoppimismenetelmät, koska niissä on enemmän sisäisiä parametreja säädettäväksi.