Typerä tekoäly? 

Yleinen tekoälyä opettavalle suunnattu kysymyspari on: “Miksi se teki väärin ja miten sen voi korjata?” Vastaus kysymykseen riippuu valitettavasti tekoälyn teknisestä toteutuksesta. Vielä 1990-luvulla tekoäly käytti klassisia tekoälyalgoritmeja. Klassisten algoritmien kohdalla oli todennäköistä, että koodari saattoi seurata koodia, paikantaa tietyssä tapauksessa syyn toiminnalle ja siten korjata “bugin”. Moderni tekoäly käyttää koneoppimista ja vastaus on yleensä ikävämpi: äly on koulutettava uudelleen asian huomioon ottavalla tietopohjalla ja kaikki testaus on tehtävä uusiksi! (Wong 2020)

Kuva 1. Moderni tekoäly perustuu koneoppimiseen. (Kuva: Dall-E / Jan-Erik Sandelin)

Koneoppimisjärjestelmissä oppiminen tapahtuu ennen käyttöönottoa, eikä valtaosassa ratkaisuja käytön aikana enää tapahdu oppimista ainakaan merkittävällä nopeudella. Toisaalta tällainen ”jäädytetty ratkaisu” ei myöskään ala vahingossa oppia asioita ”väärin”, vaan toimii käyttöönoton yhteydessä testatulla tarkkuudella aina. (Levine ym. 2020)

[Alt-teksti: kaksiosainen kaavakuva prosessimaisesta tilanteesta. Vasemmalla on jatkuvasti täydentyvä kuvio, jonka osat ovat virhetilanne, virhetilanteen korjaus koodiin, uusi parannettu versio ja testaus. OIkealla kaavion osat ovat virhetilanne, koulutusmateriaalin täydennys, täysin uuden mallin koulutus ja testaus.]
Kuva 2. Klassiseen tekoälyalgoritmiin perustuva tietokoneohjelma on seurattavissa ja korjattavissa. Jo opitut tapaukset eivät unohdu. Koneoppimismallin elinkaari on rajattu. Uusi malli pohjautuu muokattuun koulutusmateriaaliin, eikä uudella mallilla ole samalla tavalla edeltäjänsä koodipohjaa kuin aiemmalla versiolla. (Kuva: Jan-Erik Sandelin)

Koneoppiminen on sikäli uusi asia, että sen hyödyntäminen suurella määrällä tietoa on muuttunut mahdolliseksi vasta 2000-luvulla.

Klassisessa tekoälyssä algoritmi oli pohjimmiltaan ihmisen muodostama, olipa kyseessä toimintatapa tai säännöstö tavoille toimia. Koneoppimisessa algoritmi on kokoelma laskentakaavoja. Kaavoille syötetään lukuja ja niistä saadaan lukuja. Laskentakaavojen yksityiskohdat eivät ole enää ihmisten kirjoittamia. Kaavapohjien lisäksi ihminen määrittää koneelle syötettävät esimerkit ja esimerkeistä halutut tulokset. Oppiessaan kone määrittelee laskentakaavojen tarkan sisällön siten, että jokaisesta annettavasta esimerkistä saadaan kyseisestä esimerkistä haluttu tulos. (Russell & ‎Norvig 2020.)

Koneoppimisen korjaushaaste piilee siinä, että kone oppiessaan muokkaa laskentakaavat lopulliseen muotoonsa. Olisi todella suuritöistä kuvailla koneelle säännöstö esimerkiksi kappaleen tunnistamiseksi. Koneoppimisessa esineistä annetut esimerkit syötetään koneelle ja kone muodostaa laskentakaavat, jotka toimivat sääntönä. Ihmisen kannalta ongelma on siinä, että nuo laskentakaavat ovat ikään kuin äärimmilleen typistettyjä versioita säännöstöstä. Kone on sieventänyt ne niin suppeiksi, ettei ihmisen ole niitä enää helppo tulkita. Tuollaisen säännöstön jonkin kohdan muuttaminen aiheuttaa hyvin suurella todennäköisyydellä sivuvaikutuksia muualla. Tästä seuraa se, että jos vielä tulos saadaankin jollain uudella esimerkillä oikeaksi, on laskukaava rikottu aiemmin toimineille esimerkeille täysin! (Lones 2023.)

Koneoppiminen toimii pieninä osina hyvin 

Kuinka siis korjata tilanne? Koneoppimisen luonnetta emme voi korjata, mutta usein toimiva ratkaisu on se, ettei koneoppimisella yritetä tehdä kaikkea kerralla. Kun laskentakaava on sievennetty, on järkevää, että laskentakaava tekee vain yhtä asiaa. Tähän lähestymistapaan opastetaan myös LABin RoboGrowth-projektin (LAB 2023) tuottamalla MOOC-kurssilla Toimistoautomaation perusteet.

Koneoppimista hyödynnettäessä on helpompaa, jos lähestymistapaa hyödyntävä tuote on kokoelma pieniä, diagnosoitavissa olevia, spesifejä koneoppimismalleja, jotka auttavat perinteistä tekoälyä tekemään entistäkin loogisempia päätöksiä. (Hulten 2018.)

Kirjoittaja

Jan-Erik Sandelin on LAB-ammattikorkeakoulun Liiketoiminta-yksikön IT-opettaja, joka on opiskelijoiden onneksi ja omaksi epäonnekseen saanut kokea ja elää työelämässä sekä koneoppimisen että klassisen tekoälyn elinkaarien kipupisteiden pahimmat hetket.

Lähteet

Hulten, G. 2018. Building Intelligent Systems: A Guide to Machine Learning Engineering. Berkeley:  Apress.

LAB. 2023. Prosessilouhinnalla ja RPA-prototyypeillä osaaminen kasvuun. Hanke. Viitattu 9.8.2023. Saatavissa https://lab.fi/fi/projekti/robogrowth-prosessilouhinnalla-ja-rpa-prototyypeilla-osaaminen-kasvuun

Levine, S., Kumar, A., Tucker, G. & Fu, J. 2020. Offline Reinforcement Learning: Tutorial, Review, and Perspectives on Open Problems. Viitattu 9.8.2023. Saatavissa https://arxiv.org/abs/2005.01643

Lones, M. 2023.  How to avoid machine learning pitfalls: a guide for academic researchers. Viitattu 9.8.2023. Saatavissa https://arxiv.org/pdf/2108.02497.pdf

Russell, S. & ‎Norvig, P. 2020. Artificial Intelligence: A Modern Approach 4th edition. Hoboken: Prentice Hall.

Wong, K. 2020. Computational Thinking and Artificial Intelligence Education: A Balanced Approach Using both Classical AI and Modern AI. Teoksessa: Kong, S.C., Hoppe, H.U., Hsu, T.C., Huang, R.H., Kuo, B.C., Li, K.Y., Looi, C.K., Milrad, M., Shih, J.L., Sin, K.F., Song, K.S., Specht, M., Sullivan, F., & Vahrenhold, J. Proceedings of International Conference on Computational Thinking Education 2020. Hong Kong: The Education University of Hong Kong. 108‒109.