Mutta mistä tekoäly tulee – kuka sen kehittäisi ja millä voimin? Osa 1.

Oheisessa blogisarjassa käsittelen tekoälyä erityisesti sen kehittämisen näkökulmasta. Nähdäkseni tällaiset asiat ovat vähemmän esillä yleisessä keskustelussa, ja on hyvä ymmärtää, mistä tekoälyssä ja sen kehittämisestä on puhe, mutta myös se, minkälaisia asioita kehityksessä tarvitaan ja mitkä asiat ohjaavat ja rajoittavat kehitystä.

Tarkastelen tätä maailmaa erityisesti tutkijataustani, ohjelmistokehittäjän ja myöhemmin mainittavan koneoppimisen kulmista. Kuva, joka maalautuu, on aikansa tuotos ja myös kirjoittajansa henkilökohtaisen näkemyksen väreissä – on tietenkin myös muita tapoja tarkastella tätä kenttää.

Julkaisemme viikottain uuden osan sarjasta Suomi elää älystä -blogissa.

Osa 1:

  • Tekoäly, data ja koneoppiminen
  • Kehittäjät, tutkijat ja datatiede (data science)

Osa 2:

  • Tekoälyn datatiede sekä syväoppivat neuroverkot
  • Missä tekoälyn kehitys tapahtuu?

Osa 3:

  • Miksi tekoäly ei tule jo?

Osa 4:

  • Kuka voisi edesauttaa tekoälyllisyyttä?
  • Yhteenveto: Mutta mistä tekoäly tulee – kuka sen kehittäisi ja millä voimin?

Tekoäly, data ja koneoppiminen

Tekoälyn (artificial intelligence) sovellus- ja rakennuskenttä on laaja. Se kattaa useanlaisia tapauksia tavallisista esim. lääketieteellisiin kuviin, monenlaiseen vapaamuotoiseen tekstiin sekä erilaisiin erityisosa-alueisiin, esim. tutkimusta avustavina työkaluina. Tällaisten osa-alueiden kautta älykkyyttä saadaan mm. tilanteiden seurantaan ja ongelmien ennakointiin, olennaisten asioiden nostamiseen esille suurista tietomääristä sekä muihin ihmisen suorittamana hitaisiin, vaivalloisiin ja/tai epätasalaatuisiin tehtäviin. Tekoäly onkin usein yksi keino muiden joukossa toteuttaa digitaalista automatisointia – ratkaista toistettavien suoritteiden resurssointia.

Tekoäly terminä on kovin epämääräinen ja lavea. Se on käsittänyt aiemmin nykynäkökannoilta arkipäiväistä tietotekniikkaa, ja nykykeskustelussakin siihen liitetään kaikenlaisia asioita. Olennaisesti sillä viitataan koneen älykkäänä pidettyyn käyttäytymiseen, mutta nykyisen tekoälyn edistyksen kannalta sen olennaisimpana osa-alueena voidaan pitää koneoppimista (machine learning), jossa tietokonejärjestelmä oppii tekoälykkään ratkaisun vaatiman käytöksen itse sille syötetyn datan avulla. Menneiden trendien mukaisesti tietämystä tai älykästä käyttäytymistä ei enää aina ohjelmoida koneisiin vaan koneet ohjelmoidaan oppimaan.

Syväoppiminen tekoälyn kehittäjänä

Koneoppimisen tärkeäksi osa-alueeksi on puolestaan noussut syväoppiminen (deep learning), jossa menneiden vuosikymmenten aikana kehittyjä neuroverkkoalgoritmien matemaattisia malleja ja opetusmenetelmiä on nyt viimeisen 5-10 vuoden aikana vihdoin päästy hyödyntämään tehokkaasti, joustavasti ja laajahkosti tekoälyllisyyden kehittämiseen. Perinteiseen koneoppimiseen verrattuna syväoppimisen neuroverkot poistavat tarpeen usein paljon aikaa ja asiantuntemusta vaativaan tiedon jalostukseen, koska neuroverkot osaavat monesti oppia löytämään itse olennaiset asiat alkuperäisestä tiedosta. Näin ollen syväoppimisen hyödyntäminen soveltuu tekoälyn kehitystyökaluksi suuremmille joukoille kehittäjiä kuin perinteinen koneoppiminen aiemmin.

Edellisen lisäksi syväoppimisen menestyksen ja sitä kautta sen käytön räjähtävän kasvun on mahdollistanut sekä riittävän suurten tietomäärien tulo kehittäjien saataville että tietokoneiden laskentatehon aiempaakin merkittävämpi kasvu alun perin pelaamiseen suunnattujen grafiikkasuorittimien kehittymisen myötä. Neuroverkkojen monien osien määrittämiseen tarvitaan tilastomatemaattisista syistä paljon tietoa, ja toisaalta määrittämisessä tapahtuvaan laskentaan tarvitaan merkittävä määrä tehoa, jotta se tapahtuisi riittävän lyhyessä ajassa.

Syväoppimisen ja syvien neuroverkkojen avulla on jo saavutettu paljon suhteessa aiempiin tekoälykykyihin ja tullaan saavuttamaan lisää. Ne ovat yksi keskeinen syy aikamme viimeisimmälle tekoälyhypelle, mutta toisaalta ne eivät ole kaikki kaikessa. Syväoppimisen soveltamiseen ei aina ole puitteita esim. sille annettavan opetustiedon puolesta liittyen sen määrään ja/tai laatuun. Tällöin pitää käyttää muita tapoja tekoälyn rakentamiseen.

Kehittäjät ja tutkijat

Tekoälyn, kuten muunkin tietotekniikan, kehittämiseen liittyy aina olennaisesti ohjelmointi. Ohjelmistokehitys on kehittynyt merkittävästi n. 20 vuoden takaisesta, jolloin siirryin harrastelijakoodaamisesta ammattimaiseen. Kehittäjä saa nykyään samassa ajassa enemmän aikaan kuin aiemmin, johtuen ohjelmointikielien ilmaisuvoiman parantumisesta ja kierrätettävien ohjelmisto-osien muodostamien ohjelmistokirjastojen rikastumisesta – sama pätee myös ja erityisestikin tekoälyjen kehittämisessä. Kuten muutoinkin tietotekniikassa, ajurina tälle kaikelle kiihtyvälle kehitykselle toimii ennen kaikkea avoimen lähdekoodin jaetut ja hajautetusti akateemisen maailman, harrastelijoiden ja yrityssektorin keskenään yhdessä kehittämät ohjelmistot ja ohjelmistokirjastot.

Toisaalta myös tietotekniset ympäristöt – erityisesti nykyisten pilviohjelmistojen aikakaudella – ovat kehittyneet aiempaa monipuolisempaan suuntaan. Omia tietoteknisiä palvelu- ja sovellusratkaisuja voi kehittää, testata ja viedä tuotantoon yhtenä jatkumona ja ketterästi sekä tukeutuen samalla esim. alustojen tarjoamaan valmiiseen tiedonhallintaan ja valmisratkaisujen käyttämiseen oman ratkaisun osana. Samat puitteet pätevät myös tekoälykehitykseen.

Datatiede (data science)

Tietotekniikan maisemaan on kuitenkin nimenomaisesti tekoälyn kehittymiseen liittyen noussut uusi datatieteen ja datatieteilijöiden ammattiala. Datatiede on ollut yritelmä muodostaa tilastotieteestä yleinen datalähtöinen uusi tieteenala, mutta käytännössä datatiede näyttäytyy ponnistavan liiketoiminnan analytiikasta (esim. markkinoinnin kohdentamissovelluksista ja organisaatoiden muusta tiedollajohtamisen välineistyksestä), vaikka se onkin sittemmin laajentunut merkitsemään myös mm. monenlaista tietopohjaisen ennustamisen ja ennakoinnin mahdollistamista (esim. huolto-organisaatioissa).

Siinä missä tieteissä – sekä akateemisessa että yritysten tutkimuslaitoksissa – lopputuloksena kartutetaan ymmärrystä ja puitteita (tekoälyn kehitykseen liittyen erityisesti teoriaa, algoritmeja, menetelmiä, tietotekniikkaa ja avoimen lähdekoodin ohjelmistoja), datatieteessä tarkoituksena on ratkaisujen kehitys käytännön ongelmiin. Ne saavutetaan ohjelmoinnin, tilastomatemaattisen tiedonkäsittelyn ja koneoppimisen keinoin, ja datatiede onkin tekoälykehityksen ytimessä. Kuitenkin datatieteilijät ovat sekalainen seurakunta tutkijoista ja erilaisista luonnontiedetaustaisista osaajista ohjelmistokehittäjiin muihin ohjelmointitaitoisiin, ja työnkuvatkin ovat hyvin moninaisia.

Sarjan seuraavassa osassa perehdymme siihen, mitä asioita tekoälyn kehittämiseen ja datatieteilijän työhön liittyy ja minkälaisista panostuksista koko alan kehitys riippuu.

Tämän artikkelin alkuperäinen versio on julkaistu Tiedepolitiikka 4-2018 lehdessä.

Avainsanat: AI, avoin lähdekoodi, cloud services, Data science, deep learning, development platforms, GPU computing, GPU laskenta, kehitysalustat, koneoppiminen, machine learning, muttamistätekoälytulee, open source, pilvipalvelut, syväoppiminen, tekoäly

Kommentit