Johdatus tekoälyn taustalla olevaan matematiikkaan Informaatioteknologian tiedekunta Jyväskylän yliopisto 3.11.2017
Mitä tekoäly on? Wikipedia: Tekoäly on tietokone tai tietokoneohjelma, joka kykenee älykkäiksi laskettaviin toimintoihin. Tekoälyefekti (AI effect) - tekoäly on kaikkea, mitä ei ole vielä tehty. McCarthy 1955: The goal of AI is to develop machines that behave as though they were intelligent. Encyclopedia Britannica 1991: AI is the ability of digital computers or computer controlled robots to solve problems that are normally associated with the higher intellectual processing capabilities of humans...
Mitä tekoäly on? Rich 1983: Artificial Intelligence is the study of how to make computers do things at which, at the moment, people are better. Turingin testi (1950): Tietokone on älykäs, jos sen vastauksia ei pysty erottamaan ihmisen vastauksista. Lovelacen testi (2001): Ohjelma/kone on älykäs, jos ulkopuolinen ei pysty tulostusten perusteella sanomaan, miten Ohjelma/kone on päätynyt tuottamaan juuri ne.
Mita tekoa ly on? Kysyta a npa Googlelta! (Google Autodraw, Deepart) Johdatus tekoa lyn taustalla olevaan matematiikkaan
Missä tekoälyä käytetään? hakukoneissa kameroiden kasvojentunnistuksessa älypuhelinten ääniohjauksessa kohdennetussa mainonnassa roskapostin suodatuksessa kuvantunnistuksessa lääketieteellisissä diagnooseissa pysäköintihallien rekisterintunnistimissa itseajavissa autoissa...
Tekoälyn historiaa 6 1 Introduction Kuva Fig. lähteestä 1.3 History of [1]. the various AI areas. The width of the bars indicates prevalence of the method s use
Koneoppiminen Koneoppiminen on tekoälyn osa-alue, jossa kone/ohjelma oppii pohjatiedon ja käyttäjän toiminnan perusteella. Kaikkia erilaisia tilanteita varten ei ole erillistä ohjetta vaan oppiminen tapahtuu kokemuksen pohjalta. Mitchell 1997: A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E. Neuroverkot, syväoppiminen, päätöspuut, tukivektorikoneet, Bayes-verkot
Ohjattu, ohjaamaton ja vahvistettu oppiminen
Ohjattu, ohjaamaton ja vahvistettu oppiminen Ohjattu oppiminen Konetta opetetaan luokitellun aineiston (syöte-tavoite-parit) avulla. Halutaan, että kone osaa tehdä luokittelun samankaltaiselle aineistolle. (Käsinkirjoitettujen numeroiden tunnistus.) Ohjaamaton oppiminen Jäljittelee ihmisen oppimista. Opettamiseen käytetään raakadataa, josta pyritään löytämään samankaltaisuuksia ja suhteita eri syötteiden välillä. (Akateemikko Teuvo Kohosen (1934) 1980-luvulla kehittämä itseorganisoituva kartta.) Vahvistettu oppiminen Kone oppii ympäristön antaman palautteen perusteella. (Robotiikka.)
Ohjattu oppiminen Syöte-tavoite-parien (x, y) valinta. (esim. käsinkirjoitetun tekstin tunnistamisessa kirjain/sana/rivi) Opetusesimerkkijoukon valinta. Syötteen ominaisuusvektorin x = (x 1,..., x n ) valinta. Montako ominaisuutta? Mitkä ominaisuudet? Opetusmenetelmän -ja algoritmin valinta. Päätöspuu/tukivektorikone/neuroverkko/...? Alkuparametrien valinta. Koneen opettaminen opetusesimerkkijoukon avulla. Parametrien päivittäminen. Testaaminen testijoukon avulla.
Ohjattu oppiminen - päätöspuut Puumaisen rakenteen avulla ennustetaan yksinkertaisten päättelysääntöjen ja datan ominaisuuksien avulla tutkittavan muuttujan arvoja. Esimerkki: Kuvataan päätöspuulla sitä, lähteekö ihminen töihin pyörällä. Valintaan vaikuttavia asioita ovat matkan pituus, sää ja ihmisen virkeys. Päätöspuun antamaa tulosta voisi vaikka soveltaa bussiaikataulujen lähettämiseen puhelimeen siinä tapauksessa, että pyöräily ei kysyisenä päivänä huvita.
Keinotekoiset neuroverkot Jäljittelevät ihmisen aivojen toimintaa. Keksittiin 1940-luvulla. Uusi aalto 1990-luvulla mutta käyttöinto hiipui siihen, että neuroverkot eivät olleet muita menetelmiä parempia ja silloisilla tietokoneilla ei voitu käsitellä neuroverkkojen opettamisessa tarvittavia suuria datamääriä. 2010-luvulla koneiden nopeutuminen ja datan määrän valtava kasvaminen ovat kasvattaneet innostusta syväoppimiseen (deep learning) = toinen uusi aalto! Kuvantunnistus, konenäkö, puheentunnistus, kieltenkääntäjät, pelit ja lääketieteelliset diagnoosit.
Keinotekoiset neuroverkot Koostuu syöte- ja ulostulokerroksesta ja niiden välissä olevista piilokerroksista. Neuroverkko on funktio f : R n R m. Syöte on n-ulotteinen vektori x = (x 1, x 2,..., x n ), piilokerrokset hoitavat laskutehtävän ja funktion arvo f (x) = y = (y 1, y 2,..., y m ) R m saadaan ulostulokerroksesta.
Keinotekoiset neuroverkot Piilokerroksien ja ulostulokerroksen jokaisessa neuronissa lasketaan syötekerroksesta tai piilokerroksesta tulleiden syötteiden painotettu summa ja siihen lisätään neuronin vakiotermi. Ennen neuronin tuloksen lähettämistä seuraavalle neuronille summa viedään aktivointifunktioon. Aktivointifunktiot muuttavat affiinin (eli ensimmäisen asteen polynomin) syötteen epälineaariseksi.
Keinotekoiset neuroverkot - esimerkki Esimerkki: Syöte vektori x = (x 1, x 2 ) R 2, yksi kolmen neuronin piilokerros, yhden neuronin ulostulokerros.
Keinotekoiset neuroverkot - esimerkki Syötevektorin komponentit kerrotaan piilokerroksen neuroneiden painoilla wij 0, i {1, 2}, j {1, 2, 3, 4}, lasketaan yhteen ja summaan lisätään piilokerroksen neuronin i vakiotermi b i : z 1 1 = w 0 11x 1 + w 0 21x 2 + b 1 = z 1 2 = w 0 12x 1 + w 0 22x 2 + b 2 = 2 i=1 2 i=1 w 0 i1x i + b 1, w 0 i2x i + b 2, z3 1 ja z1 4 lasketaan samaan tapaan. Nämä summat viedään piilokerroksen aktivointifunktiolle, jolloin piilokerroksen neuronien antamat syötteet ulostulokerrokselle ovat a 1 = ϕ(z 1 ), a 2 = ϕ(z 2 ), a 3 = ϕ(z 3 ) ja a 4 = ϕ(z 4 ).
Keinotekoiset neuroverkot - esimerkki Verkon antama tulos saadaan käyttämällä piilokerroksen ja ulostulokerroksen välisiä painoja ja aktivointifunktiota: ( 4 t = ϕ(z1 2 ) = ϕ wi1a 1 i ). (Ohjatussa oppimisessa) tulosta verrataan syötettä x vastaavaan tavoitteeseen y ja opetetaan verkkoa tuloksen ja tavoitteen välisen virheen avulla. i=1
Keinotekoiset neuroverkot - parametrien merkinnät l on kerrosindeksi, 0 on syöte- ja L ulostulokerros N l = kerroksen l neuronien lukumäärä, wij l = kerroksen l 1 neuronin i ja kerroksen l neuronin j välillä oleva paino, = kerroksen l neuronin j vakiotermi, b l j z l j = kerroksen l neuronia j vastaava summa a l j z l j = N l 1 i=1 = kerroksen l neuronin j tulos w l ija l 1 i + b l j, a l j = ϕ(z l j ) = ϕ ( N l 1 i=1 ) wija l l 1 i + bj l, missä ϕ on aktivointifunktio (voi vaihdella kerroksesta toiseen).
Keinotekoiset neuroverkot - pisteiden erottaminen
W. Ertel: Introduction to Artificial Intelligence, Springer, 2011 ConvNetJS - Deep Learning in your browser Playgroung TensorFlow