keskiviikko 22. toukokuuta 2019

Mikä se semmoinen tekoäly sitten on?

Kirjoittaja: Juuso Ketola

Tekoälysovelluksissa esiintyvien neuroverkkojen perusta löytyy luonnollisista hermoverkoista, nykyisten neuroverkkojen tutkimus ei kuitenkaan enää pohjaa tähän biologiseen perustaansa vaan kehitys perustuu tilastoteteeseen ja signaalinkäsittelyyn. Kuva Pixabayn kuvapankista.

Otetaan hetkeksi “teko”-etuliite pois ja tarkastellaan oman älymme perusyksikköä – hermosolua eli neuronia.

Vaikka hermoston toiminta ja rakenne ovatkin hyvin monimutkaisia, yksittäisen neuronin (karkea) toimintaperiaate on melko yksinkertainen. Biofysiikan näkökulmasta kaikki perustuu solukalvon jännitteen muutoksiin. Aktivoivan ärsykkeen saadessaan neuroni lähettää eteenpäin sähköisen hermoimpulssin, jonka mukana kulkee informaatiota solukalvon jännitteen muutoksiin koodattuna. Viesti vastaanotetaan tuojahaarakkeissa eli dendriiteissä, se kulkee sooman eli neuronin toiminnallisen keskuksen läpi, ja se jatkaa matkaansa viejähaarakkeiden eli aksonien päässä sijaitseviin hermoliitoksiin eli synapseihin. Niissä aksonit kohtaavat naapurisolujen dendriitit ja lähettävät välitilaan ns. hermovälittäjäaineita. Vastaanottava neuroni tunnistaa välittäjäaineet ja niiden perusteella joko jatkaa informaation kuljettamista tai estää sen. Yhdessä solut muodostavat hermoston, jossa viestit ja toiminnot kulkevat.


Kuvassa (muokattu versio Pixabayn kuvista) esitetään hermosolun toiminnan perusperiaate. Hermosolu vastaanottaa viestejä dendriitissä, viesti kulkee sooman läpi ja aksonia pitkin aina synapsiin asti. Synapsissa hermovälittäaineet vapautuvat synaptiseen rakoon ja sitoutuvat vastaanottavan hermosolun reseptoreihin, joista signaali jatkaa matkaansa kohti hermosolun soomaa ja aksonia pitkin seuraavaan kohteeseen.
Tekoälysovelluksissa esiintyvien neuroverkkojen perusta löytyy luonnollisista hermoverkoista. Neuroverkkojen tutkimuksen alkuvaiheessa pyrittiin matkimaan biologisten neuronien toimintaa mutta nykyisten neuroverkkojen tutkimus ei enää pohjaa tähän biologiseen perustaansa vaan kehitys perustuu tilastotieteeseen ja signaalinkäsittelyyn. Käytännössä neuroverkkoon on sijoitettu matemaattisia yksiköitä, -joita kutsutaan neuroneiksi. Tämä neuroni vastaanottaa informaatiota, käsittelee sitä, ja lähettää sen eteenpäin. Matemaattisesti tällaisessa neuroverkossa yksittäinen neuroni summaa (alla olevassa kuvassa ∑) edeltäviltä neuroneilta tulleet syötesignaalit – käytännössä desimaaliluvut – tietyillä painokertoimilla ja vakiotermillä (kuvassa W ja b) ja syöttää ne aktivaatiofunktioon (f(x)), joka laskee neuronin ulostulosignaalin lukuarvon. Tämä luku toimii sisääntulosignaalina seuraaville neuroneille. Alla olevassa kuvassa esitetään yksinkertaistettu kuva neuroverkosta. Siinä on kaksi neuronia syötekerroksessa, jotka syötetään piilokerroksen neljälle neuronille. Jokaiselle piilokerroksen neuronille tulevalle syötteelle on oma painokertoimensa.


Yksinkertaistettu kaaviokuva neuroverkon toiminnasta. Syötekerroksen syötteitä painotetaan sopivilla kertoimilla ja ne lähetetään piilokerroksen jokaiselle neuronille. Jokaisessa neuronissa saapuvat syötteet summataan ja niihin lisätään sopiva vakiotermi. Kussakin neuronissa aktivaatiofunktio laskee ulostulosignaalin arvon ja syöttää sen seuraavaan kerokseen. Ulostulokerroksessa signaalit summataan viimeistä kertaa yhteen ja tuloksen perusteella verkko antaa luokitusarvion.

Rakentamalla näistä edellä kuvatuista laskentayksiköistä erilaisia neuroverkkoarkkitehtuureja, voidaan ne kouluttaa monenlaisiin tehtäviin, kuten esimerkiksi konenäkösovelluksiin, joita tässä projektissa tutkimme. Neuroverkon kouluttaminen tapahtuu syöttämällä neuroverkon läpi dataa ja vertaamalla saatua vastetta haluttuun vasteeseen. Näin toimien voidaan neuronien painokertoimet ja vakiotermit optimoida toimimaan halutulla tavalla. Neuroverkkojen kouluttamisella tarkoitetaan juuri tätä optimointiprosessia.

Monissa sovelluksissa puhutaan edelleeen syvistä neuroverkoista. Pelkkä neuroverkko viittaa yksinkertaiseen –verkkoon, joka koostuu syötekerroksesta, yhdestä piilokerroksesta ja ulostulokerroksesta. –Syvässä neuroverkossa on huomattavasti useampia –piilokerroksia. Kuvankäsittelyn ja konenäön sovelluksiin sovelletaan pääasiassa syviä konvoluutioneuroverkkoja, jotka pohjaavat biologisen näköhermoston toimintaan. Konvoluutioneuroverkolle syötteeksi annetaan kuva ja siinä suoritetaan erilaisia kuvankäsittelyoperaatioita, joilla pyritään eristämään kuvasta piirteitä, joita voidaan käyttää vaikkapa kuvantunnistuksessa. –Tarkemmin konvoluutioneuroverkoista voi lukea suomeksi esimerkiksi avoimesti saatavilla olevasta: ”Konvoluutioneuroverkot kirjain- ja numeromerkkien tunnistuksessa”, Johannes Lehmusvaara, Kandidaatintyö.

Tekoäly (AI, Artificial Intelligece) kattaa toki myös paljon muuta kuin pelkästään tässä kuvaillut neuroverkot, mutta niillä on kenties selkein analogia hermostollisen tiedonkäsittelyn kanssa.

Tekoälytermille ei ole yhtä selkeää määritelmää, mutta yksi tapa määritellä tekoäly on autonomisuus ja adaptiivisuus. Tällä tarkoitetaan sitä, että toimiva tekoäly ei vaadi käyttäjältä jatkuvaa palautetta vaan se kykene toimimaan itsenäisesti monimutkaisissakin ympäristöissä ja se kykenee adaptoitumaan eli sopeutumaan, oppimaan kokemuksestaan. 

Tekoälyn perusteiden opiskeluun on tarjolla ilmainen Helsingin yliopiston ja Reaktorin yhteistyössä tehty verkkokurssi, jonka voi käydä suomen tai englannin kiellellä. Kurssi ei vaadi osallistujalta syvällistä osaamista matematiikan saralta ja kurssin ideana on, että kuka tahansa aiheesta kiinnostunut voisi oppia perusteita tekoälystä.