Kuka (tai mikä) on älykäs? (1)

Samankaltaiset tiedostot
JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

JOHDATUS TEKOÄLYYN TEEMU ROOS

Tee-se-itse -tekoäly

Koneoppiminen ja tekoäly suurten tietomassojen käsittelyssä yleensä ja erityisesti sovellettuina satelliittidatan käyttöön metsien arvioinnissa

Johdatus tekoälyn taustalla olevaan matematiikkaan

Johdatus tekoälyn taustalla olevaan matematiikkaan

Johdatus tekoälymatematiikkaan (kurssilla Johdatus Watson-tekn

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Tilastotiede ottaa aivoon

Kognitiivinen mallintaminen Neuraalimallinnus, luento 1

Tekoäly ja alustatalous. Miten voit hyödyntää niitä omassa liiketoiminnassasi

Kognitiivinen mallintaminen. Nelli Salminen

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

Tällä kerralla ohjelmassa. Kognitiivinen mallintaminen Neuraalimallinnus Kertausta: Perseptronin oppimissääntö

Laskut käyvät hermoille

Tilastotiede ottaa aivoon

Luku 2. Datasta tietoon: mitä dataa? mitä tietoa?

Ongelma(t): Voiko älykkyyden määritellä ja voiko sitä mitata, myös objektiivisesti? Onko älykkyyttä ilman (näkyvää) toimintaa? Voiko kone olla älykäs

Johdatus tekoälyn taustalla olevaan matematiikkaan

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

E. Oja ja H. Mannila Datasta Tietoon: Luku 2

Robotit ja tekoäly terveydenhuollon työvälineinä nyt ja tulevaisuudessa työn tutkimukseen perustuva näkökulma

Kaksiluokkainen tapaus, lineaarinen päätöspinta, lineaarisesti erottuvat luokat

Tekoäly tukiäly. Eija Kalliala, Marjatta Ikkala

ImageRecognition toteutus

Tänään ohjelmassa. Kognitiivinen mallintaminen Neuraalimallinnus laskarit. Ensi kerralla (11.3.)

Tekstuurintunnistuksen lyhyt oppimäärä. Ts. pari tapaa erottaa tiiliseinä pensaasta.

Puheentunnistus. Joel Pyykkö 1. 1 DL-AT Consulting

Algoritmit 2. Luento 13 Ti Timo Männikkö

Paavo Kyyrönen & Janne Raassina

Ongelma(t): Miten digitaalista tietoa voidaan toisintaa ja visualisoida? Miten monimutkaista tietoa voidaan toisintaa ja visualisoida?

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

Algoritmit 1. Luento 1 Ti Timo Männikkö

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Datanäytteiden piirteiden skaalaus/normalisointi (1)

Tekoäly liiketoiminnassa. Tuomas Ritola CEO, selko.io

Johdatus tekoälyyn. Luento : Koneoppiminen. Patrik Hoyer. [ Kysykää ja kommentoikaa luennon aikana! ]

Tekoäly ja sen soveltaminen yrityksissä. Mika Rantonen

Matematiikan tukikurssi, kurssikerta 3

T Luonnollisen kielen tilastollinen käsittely Vastaukset 3, ti , 8:30-10:00 Kollokaatiot, Versio 1.1

Avainsanojen poimiminen Eeva Ahonen

Tekoälyn perusteita ja sovelluksia (TIEP1000)

1. TILASTOLLINEN HAHMONTUNNISTUS

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

1. NEUROVERKKOMENETELMÄT

Tekoäly ja tietoturva Professori, laitosjohtaja Sasu Tarkoma Tietojenkäsittelytieteen laitos Helsingin yliopisto

Johdatus tekoälyn taustalla olevaan matematiikkaan

Oppijan saama palaute määrää oppimisen tyypin

ALGORITMIT & OPPIMINEN

Kieli merkitys ja logiikka. 2: Helpot ja monimutkaiset. Luento 2. Monimutkaiset ongelmat. Monimutkaiset ongelmat

Aineistoista. Laadulliset menetelmät: miksi tarpeen? Haastattelut, fokusryhmät, havainnointi, historiantutkimus, miksei videointikin

T Luonnollisen kielen tilastollinen käsittely Vastaukset 5, ti , 8:30-10:00 N-grammikielimallit, Versio 1.1

TEKOÄLY JA TIETOISET KONEET

Matematiikan tukikurssi, kurssikerta 2

Edistyksen päivät, Helsinki. Voiko tutkija muuttaa maailmaa? Humanistista meta-analyysiä merkitysneuvottelevien koneiden avulla.

T Luonnollisten kielten tilastollinen käsittely

1. Universaaleja laskennan malleja

S Laskennallinen systeemibiologia

2.1. Tehtävänä on osoittaa induktiolla, että kaikille n N pätee n = 1 n(n + 1). (1)

Tässä luvussa käsitellään optimaalisten piirteiden valintaa, luokittelijan optimointia ja luokittelijan suorituskyvyn arviointia.

JOHDATUS TEKOÄLYYN TEEMU ROOS

Lisää pysähtymisaiheisia ongelmia

Esimerkkejä vaativuusluokista

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

<raikasta digitaalista ajattelua>

Tekoäly muuttaa arvoketjuja

Matematiikan tukikurssi

(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.

Algoritmit 2. Luento 12 To Timo Männikkö

Tekoäly tänään , Vadim Kulikov (Helsingin Yliopisto)

Demo 1: Simplex-menetelmä

Matemaatikot ja tilastotieteilijät

Evoluutio ja luominen. Mian tekemä esitys Jannen esittämänä

1. NEUROVERKKOMENETELMÄT

Geneettiset algoritmit

Lauri Sintonen KEINOTEKOISTEN NEUROVERKKOJEN HYÖDYNTÄMINEN AUTOMAATTISESSA LINTUJEN TUNNISTAMISESSA ÄÄNEN PERUSTEELLA

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

pitkittäisaineistoissa

Robotit kuntien päätöksenteon tukena

JYVÄSKYLÄN YLIOPISTO Valintakoe k2019 Sivu 1 Tietojärjestelmätieteen opiskelijavalinta. Henkilötunnus:

JAANA KORPELA KÄSINKIRJOITETTUJEN NUMEROIDEN TUNNISTUS NEU- ROVERKKOJEN AVULLA. Kandidaatintyö

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2009

Verkon värittämistä hajautetuilla algoritmeilla

Johdatus tekoälyyn p Tieto ja sähkötekniikan tiedekunta Oulun yliopisto Kevät Olli Silvén ja Tuomas Holmberg

DBN Mitä sillä tekee? Dynaamisten Bayes-verkkojen määrittely aikasarja-analyysissä Janne Toivola

AS Automaation signaalinkäsittelymenetelmät. Tehtävä 1. Käynnistä fuzzy-toolboxi matlabin komentoikkunasta käskyllä fuzzy.

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

JOHDATUS TEKOÄLYYN TEEMU ROOS

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

Parinmuodostuksesta tietojenkäsittelytieteen silmin. Petteri Kaski Tietojenkäsittelytieteen laitos Aalto-yliopisto

pitkittäisaineistoissa

Integrointialgoritmit molekyylidynamiikassa


Deep learning. 1 Johdanto. Toni Helenius

Matematiikan tukikurssi

Matematiikan tukikurssi

Transkriptio:

Kuka (tai mikä) on älykäs? (1) Syvien neuroverkkojen katsotaan edustavan korkeimmalle asteelle vietyä tekoälyä, joka kohta kilpailee ihmisen kanssa ja saavuttaa tietoisuuden tason ( singulariteetti ) ihmisillä on n. 90 miljardia neuronia, joista n. 16 miljardia keskushermostossa ja meitä pidetään pidetään älykkyyden mittatikkuina, mutta edustavatko esim. ns. yhteiskuntahyönteiset älykkyyttä rakentaessaan pesiään ja viestiessään toisilleen? muurahaisilla on vain n. 250 000 neuronia, joten miksi ihmisten äly ei ole riittänyt edes tuollaisen tason älykkäiden järjestelmien tekemiseen? kärpäsillä on myös n. 250 000 neuronia ja ne selvästi oppivat jo ensimmäisestä lätkäisy yrityksestä; miksi vastaavan kyvyn keinotekoinen tuottaminen on niin vaikeaa? Missä vaiheessa ihminen muuttui älykkääksi? Olivatko Neanderthalin ihmiset älykkäitä? Entä Homo Erectus tai jo varhainen Australopithecus Afarensis (kuva oikealla)?

Kuka (tai mikä) onkaan älykäs? (2) Tapaus Ayumu: Kyoton yliopiston kädellisten tutkimuskeskuksen simpanssi http://langint.pri.kyoto u.ac.jp/ai/en/friends/ayumu.html https://web.archive.org/web/20080609101803/http://edition.cnn.com/2007/tech/s cience/12/03/chimp.memory.ap/index.html https://www.youtube.com/watch?v=zsxp8qeff6a Yksi tyypillisten älykkyystestien (myös Alzheimer diagnoosien ) osio on toistaa peräkkäin annettujen numeroiden sarja Ayumu päihitti verrokkinaan käytetyt japanilaiset opiskelijat simpansseilla voi olla aikuisia ihmisiä parempi ns. työmuisti Onko Turingin testin läpäisy osoitus ns. vahvasta tekoälystä (=tietoisuudesta)? katso esim. Chinese room argument John Searlen artikkelista Minds, Brains, and Programs http://cogprints.org/7150/1/10.1.1.83.5248.pdf = semantiikkaa ei pysty johtamaan syntaksista eli tietokoneet evät kykene ymmärtämään merkityksiä, joten ns. vahva tekoäly ei ole mahdollinen (toisaalta: mitä on tietoisuus, eiväthän ihmisetkään ole pelkät aivot, vaan ööööh myös biologisia antureita ja toimilaitteita, 80% neuroneista niissä) Olemme nyt melkein valmiita hypen uusimmalle tasolle: neuraalilaskentaan perustuvaan koneoppimiseen eiköhän tässäkin ole kyseessä uusi teknologia, eikä ihmiskunnan kilpailija Himppu historiaa Neuraalilaskennan historia yltää n. 60 vuoden päähän ja on täynnä ainakin hetkeksi hukattuja edistysaskeleita 1950 60: Rosenblattin Perceptron = yksitasoisten neuraaliverkkojen oppimisalgoritmi tietokonetekniikkakin oli tuolloin lapsenkengissään ja teknologian kehittämisen fokus oli enemmän kovossa kuin ohjelmistotyökaluissa 1965: monikerros Perceptronien oppimisalgoritmi keksittiin ja samalla ensimmäinen syväoppiva neuroverkko (Ivakhnenko & Lapa), mutta kukaan ei huomannut Ukrainassa tehtyä läpimurtoa 1969: Minskyn ja Papertin kirja Perceptrons oli tyrmäys Perceptronille. Toisaalta kirjoittajat olivat tietoisia monitasoisten neuroverkkojen kyvystä yli lineaaristen päätöspintojen, mutta yllä mainittua oppimisalgoritmia he eivät tunteneet... korkean tason ohjelmointikielet olivat tarjolla, mutta sääntöpohjaisuus jyräsi neuraalilaskennan 1970: vastavirta algoritmi keksittiin useaan kertaan, mm. Linnainmaa, mutta kukaan ei huomannut, esim. 1974 Paul Werbos julkaisi sen väitöskirjassaan 1988: Neocognitron: A self organizing neural network model for a mechanism of pattern recognition unaffected by shift in position ; konvolutionaalisen neuraalilaskennan malli (Kunihiko Fukushima) https://pdfs.semanticscholar.org/c85e/6878f2048d0ec9d7186e3f20592c543635dd.pdf 1986: vastavirta algoritmi löydetään jälleen kerran uudelleen ja neuraalilaskentakin lähtee sen myötä uuteen nousuun 1994: ensimmäinen konvolutionaalinen neuraaliverkkototeutus (LeCun) https://pdfs.semanticscholar.org/943d/6db0c56a5f4d04a3f81db633fec7cc4fde0f.pdf

Neuroverkot (1) Neuraalilaskenta on kiistatta ollut merkittävä edistysaskel lukuisten sovellusten toteuttamisessa käyttökelpoisiksi ja jopa ihmisen suorituskyvyn ylittäviksi mm. seuraavissa tapauksissa kuva analyysi: esim. ihmisten kasvojen ja kohta tunteiden tunnistus, käsinkirjoitetun tekstin lukeminen puheentunnistus: esim. tekstityksen automaattinen generointi elokuviin yksilöllisen käsialan omaavan käsinkirjoitetun tekstin tuottaminen pelistrategioiden automaattinen oppiminen jne Lisää merkittäviä sovellusonnistumisia on tulossa, mutta periaatetasolla kyse ei ole dramaattisen tuoreesta teknologiasta ensimmäinen laskennallinen malli ihmisaivojen toiminnasta esitettiin jo 1943 https://www.cs.cmu.edu/~epxing/class/10715/reading/mcculloch.and.pitts.pdf Keinotekoinen neuraalilaskenta rinnastetaan usein biologisiin keskushermostoihin käytännön toteutukset ammentavat silti enemmän signaalinkäsittelyn ja tilastomatematiikan menetelmistä Neuroverkot (2) Keinotekoiset neuroverkot perustuvat hyvin karkeasti biologisten neuronien antamaan malliin, ollen sellaisten yksinkertaistettuja approksimaatioita Rosenblattin Perceptron oli ensimmäinen keinotekoinen neuroni, ja sillä pystyttiin toteuttamaan yksitasoisia neuroverkkoja. syötteet yhdistelevät mielivaltaiset Boolen funktiot x x x x x muunneltavat painokertoimet kynnystys Yllä olevassa esimerkissä Perceptron muuntaa monidimensioisen(!) syötteen binääriseksi lähdöksi luokittelee syötteen kahteen luokkaan yksitasoisessa neuroverkossa jokainen neuroni voidaan opettaa tunnistamaan esim. yksi numero tai kirjain, jos ei tunnistusta, niin lähtö = 0 mutta miten Perceptron toimii ja oppii? P B P Rajoite: oppii vain lineaarisia diskriminantteja B

Neuroverkot (3) Tarkastellaan seuraavaa hyvin yksinkertaista Perceptronia, jolle pätee laskenta syöte X = ( x 0, x 1, x 2,, x 3 ), jonka nyt oletetetaan olevan binäärivektori, esim (1,0,1,0) painokertoimet W = ( w 0, w 1, w 2, w 3 ), jotka ovat reaalilukuja lähtö Y on binäärinen ja Y = 1, jos w k *x k >= T, ja x 0 w 0 Y = 0, jos w k *x k < T, missä k=0,1,2,3 x 1 w 1 x w 2 Y 2 T x 3 w 3 Perceptron oppii painokertoimet w seuraavalla algoritmilla, kun sille esitetään ne lähdöt, jotka sen tulisi tuottaa syötteille 1. Annetaan Perceptronille syöte X = ( x 0, x 1, x 2, x 3 ), ja lasketaan lähtö Y 2. * Jos Y=0, mutta sen pitäisi olla 1, kasvatetaan painokertoimia W = ( w 0, w 1, w 2,w 3 ), sillä summa w k *x k ei ole riittävän iso, ja pienennetään kynnystä T * Jos Y=1, mutta sen pitäisi olla 0, pudotetaan painokertoimia W = ( w 0, w 1, w 2, w 3 ), sillä summa w k *x k on liian suuri, ja kasvatetaan kynnystä T * Jos Y on oikein, ei tehdä mitään Toteamme, että ainoastaan sellaisten syötelinjojen painokertoimia, joissa syöte x k = 1 tarvitsee muokata, joten jos X= (1,0,1,0), niin vain painoja w 0 ja w 2 riittää muuttaa 3. Palataan askeleeseen 1 Huom: samoja syötteitä on annettava lukuisia kertoja! Neuroverkot (4) Perceptronin painoarvojen päivitys tapahtuu siis esim. tähän brutaaliin tyyliin: w k = w k + learning_rate* (correct_output Y)*x k T = T learning_rate*(correct_output Y) jos Y on oikein, ei muutosta painoissa w k eikä myöskään kynnyksessä T huomaa siis: myös kynnysarvoa muutetaan oppimisalgoritmissa! Alla äärimmäisen karkea esimerkki Perceptronin toiminnasta: tavoitteena oppia tunnistamaan syöte (1,0,1,0). Alussa W=(0,0,0,0) ja T=0, valitaan learning_rate = 0.3, Oikea arvo = correct_output tiedetään ongelman taustatietona, syötteelle (1,0,1,0) sen on 1 ja muille syötteille 0 Syötevektori X Lähtö Y=1 jos w k *x k >=T Oikea arvo x 0 x 1 x 2 x 3 w 0 w 1 w 2 w 3 painovektorin W päivitys Kynnysarvon Tpäivitys (1,0,0,1) 1 (koska 0 >=0) 0 ( 0.3, 0, 0, 0.3) 0.3 (1,0,0,0) 0 (koska 0.3<0.3) 0 ( 0.3, 0, 0, 0,3) 0.6 (1,0,1,0) 0 (koska 0.3<0.6) 1 (0, 0, 0.3, 0.3) 0.3 (1,0,1,0) 1 (koska 0.3>=0.3) 1 (0,0, 0.3, 0.3) 0.3 (1,0,1,1) 0 (koska 0<0.3) 0 (0,0, 0.3, 0.3) 0.3 (1,1,1,0) 1 (koska 0.3>=0.3) 0 ( 0.3, 0.3, 0, 0.3) 0.6 jne... tarvitaan ihan kohtalaisesti syötteitä T Y Huomaathan, että tässä on kyseessä 4 dimensioinen tilanne

Neuroverkot (5) Mitä perceptronin oppiessa oikeasti tapahtuu? Edellinen nelidimensioinen tapaus on hankalahko visualisoida, joten tarkastellaan 2 dimensioista tilannetta w k *x k, k=0,1 eli vaikkapa tilannetta w 0 *x 0 + w 1 *x 1 >= T ja w 0 *x 0 + w 1 *x 1 < T Tämä tarkoittaa, että 2 dimensioisessa tapauksessa (myös usempiulotteisissa), jossa piirteet ovat x 0 ja x 1, Perceptron oppii jakamaan piirreavaruuden suoralla w 0 *x 0 + w 1 *x 1 = T voimme ajatella Perceptronin oppiessaan tarkistavan, kummalle puolelle tätä suoraa opittava näyte osuu ja se päivittää vastaavasti painokertoimia w ja kynnysarvoa T siten, että suora siirtyy kohti virheellisesti luokiteltuja näytteitä yhtälö w 0 *x 0 + w 1 *x 1 = T määrittää minkä tahansa 2 dimensioisen piirreavaruuden suoran alla esim. w 0 = 0.5, w 1 = 0.5, T = 0.5, seuraavalla slaidilla tarkastellaan uusien opetusnäytteiden (1,1) ja ( 1,1) vaikutuksia ( 1,1) w 1 (1,1) w 0 3 dimensioisessa tapauksessa Perceptron oppii kaksi kategoriaa jakavan tason, useampi ulotteisissa hypertason 0.5*x 0 + 0.5*x 1 = 0.5 ( 1,1) Neuroverkot (6) Tarkastellaan tilannetta graafisesta, lähtien tilanteesta w 0 = 0.5, w 1 = 0.5, T = 0.5, kun Perceptronin learning_rate = 0.1 ja oppimisalgoritmi w k = w k + learning_rate* (correct_output Y)*x k T = T learning_rate*(correct_output Y) Nyt saadaan opetusnäyte (1,1), jolle yhtälön w 0 *x 0 + w 1 *x 1 = 0.5*1+0.5*1 = 1 > T= 0.5 mukaan Y = 1, mutta tiedämme, että sen oikea luokka on 0. Seurauksena päivitys w 0 = w 0 + 0.1* (0 1)*x 0 = 0.5 0.1 = 0.4 w 1 = w 1 + 0.1* (0 1)*x 1 = 0.5 0.1 = 0.4 T = T 0.1*(0 1) = 0.5+0.1 =0.6 joten uusi diskriminanttisuora on 0.4*x 0 + 0.4*x 1 = 0.6 jonka toteamme siirtyneen kohti uutta näytettä w 1 0.2*x 0 + 0.4*x 1 = 0.6 (1,1) w 0 0.5*x 0 + 0.5*x 1 = 0.5 0.4*x 0 + 0.4*x 1 = 0.6 0.3*x 0 + 0.5*x 1 = 0.5 Tämän jälkeen saadaan näyte ( 1,1), jolle oikeaksi luokaksi tiedetään 1. Mutta yhtälön w 0 *x 0 + w 1 *x 1 = 0.4*( 1)+0.4*1 = 0 < T= 0.6 mukaan Y = 0. Seurauksena on päivitys w 0 = w 0 + 0.1* (1 0)*x 0 = 0.4+0.1*(1)*( 1) = 0.3 w 1 = w 1 + 0.1* (1 0)*x 1 = 0.4+0.1*(1)*1 = 0.5 T = T 0.1*(1 0) = 0.6 0.1 =0.5, joten uusi diskriminanttisuora on 0.3*x 0 + 0.5*x 1 = 0.5, jonka toteamme kääntyneen näytettä ( 1,1) kohti Syötetään jälleen (1,1) w 0 *x 0 + w 1 *x 1 = 0.3*1+0.4*1 = 0.7 > T= 0.5 eli Y=1, mutta pitäisi olla 0. Seurauksena w 0 = w 0 + 0.1* (0 1)*x 0 = 0.3+0.1*( 1)*1 = 0.2 w 1 = w 1 + 0.1* (0 1)*x 1 = 0.5+0.1*( 1)*1 = 0.4 T = T 0.1*(0 1) = 0.5+0.1 =0.6, joten uusi diskriminanttisuora on 0.2*x 0 + 0.4*x 1 = 0.6, jonka toteamme siirtyneen yhä enemmän näytettä (1,1) kohti ja nyt kulkevan sen kautta

Neuroverkot (7) Keinotekoisista neuroneista voidaan rakentaa esim. kerroksellisia toteutuksia, joissa aiemman tason neuronin vaste syötetään seuraavan kerroksen neuroneille päätösrajat eivät enää rajoitu lineaarisiksi! informaatio voi siirtyä pelkästään eteenpäin, mutta neuronitasojen vasteita voidaan syöttää myös taaksepäin Monikerroksinen verkko opetetaan syöttämällä kaikki datanäytteet sen läpi ja vertaamalla lähtöjä näytteiden tunnettuihin luokkiin tai muihin oikeisiin arvoihin, sitten kerros kerrokselta muokataan kunkin kerroksen neuronien painokertoimia ja palataan syöttämään datanäytteet jälleen kerran läpi kun tulos ei enää parane (tai ollaan saavutettu piilokerrokset haluttu virheettömyys), niin opetus on valmis huom: opetus, validointi ja testijoukkojen rooli aivan keskeinen! Toteamme oikealla olevan sangen pienen neuroverkonkin sisältävän kohtalaisen määrän optimoitavia painoarvoja... syötekerros lähtökerros Neuroverkot (8) Neuroverkon opettaminen tarkoittaa sen kytkentöjen painojen optimointia siten, että datanäytteille saatujen verkon lähtöjen ja haluttujen tulosten välinen ero minimoituu monikerroksisten perceptron verkkojen opetuksessa käytetään ns. vastavirtaalgoritmia (backpropagation, demonstraatio käsinkirjoiteluille numeroille https://www.youtube.com/watch?v=ilg3ggewq5u ) tapahtuu iteratiivisesti ns. gradient descent algoritmilla kerroksittain Opetusiteraatioiden määrää voidaan vähentää normalisoimalla näytedata vähintäänkin keskiarvon nollauksella, tai normalisoimalla kunkin piirteen jakauman parametreiksi = 0 ja 2 = 1 ja vähentämällä piirteiden korrelaatiota esim. PCA:lla Vähemmän vaativiin ohjatun oppimisen sovellettavat neuroverkot ovat yleensä kolmi tai nelikerroksisia yksi tai kaksi ns. piilokerrosta piilokerros Olennaista huomata ns. syväoppiminen eli merkittävästi monitasoisempien neuroverkkojen käyttö ei välttämättä ole laskennallisesti kalliimpaa, voi käydä ihan toisinkin syötekerros lähtökerros

Syväoppiminen (1) Syväoppivan neuroverkon arkkitehtuuri arkkitehtuuri tarkoittaa tässä osien ja toimintojen määrityksiä alla ns. konvolutionaalisen neuroverkon periaate (huom: vain selitystä varten) syöte erilaiset konvoluutiot konvoluutiokerros 4 kpl piirrekuvia ns. max pooling: esim. kootaan isoimmat piirteenilmaisun vasteet osakuvista yhteen pienempiresoluutioiseen kuvaan max(1,9,3,7) 1 9 2 8 3 7 4 5 9 8 4 2 5 3 4 7 2 1 7 2 ns. pooling, alinäytteistys, jossa konvoluutiokerros kootaan usean edellisen kerroksen neuronin lähtö yhteen jollakin logiikalla riippuen toteutuksesta pooling voi laskennallisen tehostuksen lisäksi tarjota mm. siirtoinvarianttiutta pooling ns. täysin kytketty kerros lähtökerros Täysin kytketty neuroverkko: jokainen edellisen kerroksen neuroni syöttää jokaista seuraavassa kerroksessa Syväoppiminen: konvoluutio (2) Konvolutionaalisen neuroverkon ensimmäinen kerros tekee konvoluutioita, sillä kuvan lähekkäiset pikselit ovat vahvasti korreloivia jos syötettäisiin raakapikseleitä, tätä tietoa ei kyettäisi kunnolla hyödyntämään huom: tämä koskee myös muuta korreloivaa dataa, eli sokea datan syöttäminen neuroverkkoon ei välttämättä ole paras ratkaisu Alla esimerkki 3x3 konvoluutiosta 6x6 kuvalle: 3x3 kuva asetetaan kuhunkin kohti isompaa kuvaa ja suoritetaan kertolaskut pikselettäin ja summataan yhteen tulokseksi 1 0 1 1 0 1 1 0 1 konvoluutiomaski 3 4 8 8 11 7 5 5 7 9 10 8 4 5 7 8 12 8 5 6 5 9 10 6 5 4 5 8 9 7 3 4 8 8 11 7 1*(3+5+4) 1*(8+7+7)= 10 kuvatieto 10 11 11 2 5 10 13 4 3 10 14 4 5 11 12 5 konvoluutiotulos Konvoluution käytöllä on biologisten havaintojen tausta, sillä vastaavia hermostorakenteita löytyy ainakin nisäkkäiltä

Syväoppiminen (3) Syväoppimisessa on kyse peräkkäisten lineaaristen ja epälineaaristen piirteenirrotus ja muunnoskerrosten kokonaisuudesta jokainen kerros käyttää edeltäjänsä antamia tuloksia, kokonaisuuden oppiessa usean tasoisia esitystapoja, jotka ovat hierarkkisia abstraktioita sekä ohjattu että ohjaamaton oppiminen mahdollisia Syväoppimisen menetelmäteknisenä ongelmana on ylisovittuminen ylimääräiset abstraktiokerrokset mahdollistavat harvinaistenkin tapausten mallintamisen ja yliampuvat, yhteen menetelmätekniikkaan kohdistuvat odotukset moderneissa tekoälykehittimissä, esim. IBM:n Watson, syväoppiminen on menetelmätekniikka muiden joukossa Syväoppimisen suosioon on merkittävästi vaikuttanut tietokoneiden laskenta ja muistikapasiteettien nousu vastavirta algoritmilla opetetut syvät konvolutionaaliset neuroverkot ovat olleet olemassa jo vuodesta 1994, mutta hype lähti liikkeelle 2011 2012 2011: CNN+max pooling GPU toteutus (Ciresan et al), voitto visual pattern recognition kilpailussa; ylitti ihmisen kyvyt, jne. Syväoppiminen (4) Syväoppiminen ei ole yksi ainoa toteutusarkkitehtuuri tai menetelmä, vaan datan mallinnusmenetelmien kategoria (recurrent neural networks, deep belief networks...) tepsinyt moniin aiemmin kompleksisiksi todettuihin erityisesti ohjatun oppimisen ongelmiin käyttäjälle monesti black box, toisaalta myös esim. ns. tukivektorikone (support vector machine, SVM) on vastaavaa magiaa = soveltaja ei välttämättä tiedä, mitä tapahtuu, mutta onnistuu silti ratkaisemaan ongelman Syväoppivien neuroverkkojen käytön käytännöllisiä haasteita ovat lukuisa aseteltavien ja kokeiltavien parametrien määrä, helposti > 20, joiden kautta tasapainotellaan laskenta ajan ja tavoiteltavan tarkkuus saanti suorituskyvyn välillä kaikkien parametrien merkitys voi olla vaikea hahmottaa mahdottomuus päätellä, miksi neuroverkko antoi saadun tuloksen tuloksilla on riippuvuutta datan esikäsittelystä Satunnaismetsä (ja yhdistelmä) luokittelijamenetelmät antavat usein saman tarkkuus saanti suorituskyvyn vähemmän parametreja ja optimointi laskennallisesti tehokkaita

Syväoppiminen (5) Syväoppivien neuroverkkojen opettaminen tarvitsee (paljon) dataa esim. jo yhden kielen puheentunnistuksessa voidaan tarvita suuri määrä näytteitä eri murteista, eri ikäisiltä puhujilta ja eri sukupuolilta toisaalta Facebook, Google, Amazon, ym. keräävät datansa valmiiksi käyttäjiensä annotoimana, ja myös vaikkapa älykaiuttimista Uuden sovelluksen kehittäjän kannalta haasteena on, että syvissä neuroverkoissa on erittäin suuri määrä painokertoimia, joiden oppiminen sovelluskuntoon voi edellyttää massiivista datamäärää jos näytteitä on vain muutama sata ja verkossa on tuhansia neuroneita, homma voi mennä ns. kiville riittävän opetusdatan hankkimisessa puoliohjatun oppimisen menetelmät voivat olla korvaamattomia todettaessa myöhemmin uusia tarpeellisia tapauksia opetettavaksi, on aloitettava koko ruljanssi uudelleen alusta. Samoin käy jos opetusnäytteitä on poistettava esim. havaittujen virheiden vuoksi: neuroverkko ei unohda Sovelluskäytössä valmiiksi opetetun syväoppivan neuroverkon miljoonat painokertoimet eivät välttämättä ole mikään laskennallinen ongelma Piirteiden oppiminen neuraalilaskennalla (1) Autoenkooderi on neuroverkko, jonka tarkoitus on toistaa saamansa syötteet lähdössään oppien esitystavan (tehokkaat enkoodaukset, tärkeimmät piirteet ), lopullisena tavoitteena dimensionaalisen pudottaminen ja viime aikoina myös generatiivisten mallien rakentaminen datalle, mikä lähestyy toisesta suunnasta perinteistä tilastollisten mallien rakentamista Autoenkooderi koostuu peräkkäisestä enkooderista ja dekooderista yksinkertaisimmillaa autoenkooderi voidaan toteuttaa monikerros perceptroneilla mutta kerroksittainen syväoppiva ratkaisu on nykyisin suosittu ensimmäinen kerros oppii yksinkertaisia piirteitä kuten viivoja ja nurkkia syötekuvista toinen kerros oppii silmiä, suita, korvia, neniä, käsiä, jalkoja,jne kolmas kerros oppii ihmisiä, kissoja, koiria, lintuja, jne dekooderin tehtävänä on vastaavasti rekonstruoida koodattu tulos enkoodaus koodattu data dekoodaus

Piirteiden oppiminen neuraalilaskennalla (2) Autoenkooderien katsotaan oppivan ohjaamattomasti ohjatussa oppimisessa ennustetaan lähdöt Y = (y 0, y 1 y k ), kun syötteet X = (x 0, x 1 x n ) tunnetaan autoenkooderi puolestaa rekonstruoi approksimaation X = (x 0, x 1 x n ) omasta syötteestään X = (x 0, x 1 x n ) autoenkooderi on nimenomaan esitystavan oppimisratkaisu, jonka koodaustulosta käytetään sitten piirteenirrotukseen konvolutionaaliset autoenkooderit oppivat optimaaliset konvoluutiooperaattorit syötteiden rekonstruktion kannalta Piirteenirrotus/koodaus Oppiminen x 0 x 0 x 0 x 1 x 1 x 1 x 783 piirteet x 783 x 783 piirteet Geneettiset algoritmit (1) Koneoppimisen ja tekoälyn väitetään usein käyttävän biologisista organismeista lähtöisin olevia malleja kuitenkin varsinainen kantava idea lienee evoluutio oppiminen, älykkyys, ja tietoisuus lienevät siten evoluution sivutuotteita, jotka edesauttavat perimän siirtymistä eteenpäin Darwinilainen näkemys: sopeutuvaisimmat selviävät jatkoon survival of the fittest tämä ei tarkoita, että älykkäimmät aina pärjäävät(*) Evoluutio on inspiroinut ns. geneettiset algoritmit, jotka soveltuvat haku, optimointi, ja mallinnusongelmien ratkaisemiseen sovelletaan tietokoneessa rekombinaation ja mutaatioiden periaatteita kromosomeihin, jotka edustavat ratkaisuja todella paljon yksinkertaisempaa kuin biologinen evoluutio (*) Dawkinsilainen näkemys: asia on himpun verran monitahoisempi satunnainen tapahtuma voi pyyhkiä pois kokonaisen lajin, kuten dinosaurukset (tai heikko managementti teknologisen kehityslinjan); kaoottisissa järjestelmissä kun aika ajoin tapahtuu selittämättömiä tuhoja pärjääminen voi johtua kilpailijan tuhosta, kuten nisäkkäiden nousussa kaiketi kävi, jotenka vaikkapa loiset ja harmittomat vapaamatkustajat voivat pärjätä oikein hyvin Suomeksi ilmestyneitä Richard Dawkinsin kirjoja: Sokea kelloseppä ja Geenin itsekkyys

Geneettiset algoritmit (2) Biologisessa DNA:ssa tieto on tallennettu neljän kirjaimilla A,T,G ja C emäksen avulla Geneettisissä algoritmeissa käytetään binäärisiä kromosomeja kromosomien sisällöt ovat yksinkertaisimmassa tapauksessa bittejä (0 tai 1) Jos kromosomin pituus on esim. 8 bittiä, niin sillä voidaan kuvata 256 vaihtoehtoa (2 8 ) oletetaan, että nämä kromosomit voidaan dekoodata kokonaisluvuiksi ja alla olevan esimerkin tavoite on vaatimattomasti löytää elämän tarkoitus 1. luodaan satunnainen populaatio josta valitaan numeroita 2 ja 4 sisältävät jatkamaan eteenpäin p 1 = ( 0 0 1 0 1 0 1 1) (43 10 ) (tässä 4)... p 2 = (0 1 1 0 0 1 1 0) (102 10 ) (tässä 2)... p 3 = (1 1 0 0 1 1 0 0) (246 10 ) (tässä 2 ja 4)... p 4 = (0 0 1 1 0 1 0 0) (52 10 ) (tässä 2)... Geneettinen algoritmi jatkuu: Geneettiset algoritmit (3) 2. Paritetaan satunnaisesti valittujen vanhempien kromosomit ja rekombinoidaan bitit todennäköisyydellä 0.5 jälkeläisiksi (valitaan bitti jommalta kummalta vanhemmalta, huom. voitaisiin tietenkin käyttää esim. todennäköisyyttä 0.7 tms., jos tiedossa olisi vahvempi vanhempi eli lähempänä ratkaisu) p 1 = ( 0 0 1 0 1 0 1 1) (43 10 ) (tässä 4), mutta muutakin) p 3 = (1 1 0 0 1 1 0 0) (246 10 ) (tässä 2 ja 4, mutta muutakin) c 1 = (1 1 1 0 1 0 0 0) (232 10 ) c 2 = (0 1 1 0 1 0 1 0) (106 10 )... p 2 = (0 1 1 0 0 1 1 0) (102 10 ) (tässä 2 jne) p 4 = (0 0 1 1 0 1 0 0) (52 10 ) (tässä 2 jne) c k = (0 1 1 0 0 1 1 0) (102 10 ) c k+1 = (0 0 0 1 0 1 1 0) (22 10 )... Jälkeläisiä generoidaan sopiva määrä. Niiden kelpoisuutta ei vielä testata Huomaa, ettemme geneettisessä algoritmissa enkoodaa fenotyyppiä genotyypiksi! genotyyppi dekoodataan fenotyypiksi, joka saa sitten selvitä...

Geneettinen algoritmimme jatkuu Geneettiset algoritmit (4) 3. Mutatoidaan jälkeläisten geenejä todennäköisyydellä 0.25 eli keskimäärin kaksi bittiä vaihtuu kromosomissa. Siten jälkeläisellä voi olla bittiarvo, jota ei ollut kummallakaan vanhemmalla c 1 = (1 1 1 0 1 0 0 0) (232 10 ) c 2m = (0 1 1 0 0 0 0 1) (97 10 ) c 2 = (0 1 1 0 1 0 1 0) (106 10 ) c 1m = (0 0 1 0 1 0 1 0) (42 10 ) (tässä 2 ja 4, eikä muuta)... c k = (0 1 1 0 0 1 1 0) (102 10 ) c km = (0 0 1 0 1 1 1 0) (46 10 ) (tässä 4 ja muutakin) c k+1 = (0 0 0 1 0 1 1 0) (22 10 ) c k+1,m = (0 1 0 1 0 0 1 0) (82 10 ) (tässä 2 ja muutakin)... Nyt päästään arvioimaan jälkeläisten kelpoisuutta, ennen kuin ne paritetaan keskenään, tehdään uusi rekombinaatio ja jälkeläisten geenien mutatointi, eli siirrytään askeleeseen 1 nyt kuitenkin todetaan täydellisen ratkaisun löytyneen (42 10 ), joten algoritmi päättyy (*) monissa tapauksissa eksaktia ratkaisua ei ole, vaan mitataan saadun ratkaisun hyvyyttä, esim. jäännösvirhettä (*) luku 42 on Douglas Adamsin Käsikirja Linnunradan liftareille oppaasta, kyseessä on Deep Thought tietokoneen antama vastaus kysymykseen elämän tarkoituksesta Neuraalilaskenta ja geneettiset algoritmit Keskeinen ero: neuroverkot ovat keino oppia malleja ja esitystapoja datasta geneettiset algoritmit ovat satunnaistusta soveltava optimointimenetelmä neuroverkkojen opettaminen on tehokasta gradienttipohjaisten (gradient descent) algoritmien kautta, mutta niillä ei ole biologista perustelua geneettisillä algoritmeilla puolestaan on biologinen analogia, mutta ne konvergoivat hitaasti, toisaalta kykenevät seuraamaan useaa polkua samanaikaisesti Geneettisiä algoritmeja voidaan käyttää konvolutionaalisten neuroverkkojen opettamiseen (esim https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=238343, tarjolla yliopiston verkosta, artikkeli on vuodelta 1992 ), mutta menettely on hitaana epäkäytännöllinen Syvien neuroverkkojen iso etu on hierarkkioiden oppiminen, mihin geneettiset algoritmit eivät ole pystyneet vastaamaan Mutta onko biologinen analogia kuitenkin tarpeen?

Hivenen tulevaisuutta haroen Teknologian kehittäjillä on yleensä horisonttiharha tyyliin totaali ratkaisu on nurkan takana ja tämä pätee myös koneoppimiseen ja tekoälyyn Esim. väitetään, että vahva, tietoinen tekoäly tulee, kunhan 1. tietokoneet ovat riittävän nopeita, viimeistään kvanttitietokoneet ratkaisevat kaiken, esim. http://pupul.ir/fmt_359/root/raeqaufe.pdf#page=23 tämä ajattelu oli vallalla, kun tekoäly nähtiin pääasiassa hakuongelmana, eikä tämä liene ihan pielessä oleva odottama nykyisinkään yksi perusteista on, että aivojen rinnakkainen prosessointikapasiteetti on iso 2. tietokoneissa on riittävästi muistia, jolloin ns. singulariteetti tapahtuu kun riittävä määrä neuroneita on kasassa (miljardi sata miljardia jne ) perusteena on, että aivoissakin on paljon neuroneita 3. dataa ja tietämystä on kerätty riittävästi; tähänkin riittää yrittäjiä, esim. valtaisaa arkielämän sääntökantaa keräävä CYC hanke http://www.cyc.com/ 4. tutkijoita ja kehittäjiä on riittävästi asian kimpussa (tämä on päättäjien vierastama antakaa meille rahaa argumentti ) ja vieläpä käyttäen mahdollisimman erilaisia menettelyjä siis jos kaikki tutkivat konvolutionaalisia syviä neuroverkkoja, niin umpikuja ja hypen romahdus taitaa kohta häämöttää Luultavasti kaikki kohtien 1 4 edistysaskeleet ovat välttämättömiä (safe bet argumentti) Lopuksi Tekoälytutkimus on osannut luvata suuria jo yli 60 vuotta lukuisia simuloituja ja tosimaailmaa matkivia ( lelu )demonstraatioita laboratorioissa automaattisen ympäristön mallintamisen ja käyttäytymisen oppimisen osoittamiseksi, mutta demonstraatiot ovat skaalautuneet heikosti laajemmiksi järjestelmiksi ja robotit ovat jääneet nurkkiin pölyttymään viime vuosina koneoppiminen ja tekoälyn sovellukset ovat alkaneet viimeinkin tulla arkielämän tontille kehityksen takana on paitsi tietokonetekniikan kehittyminen, erityisesti Internet, joka on tarjonnut mahdollisuuden hankkia massiivisia tietoaineistoja ja siten tukenut menetelmätekniikan kehittymistä irti rajatuista laboratorioympäristöistä Tekoäly ja koneoppiminen ovat itsessään massiivisia ongelmia: vuosimiljoonien evoluution tulos yritetään nopeasti viedä automaatioksi, välillä vääjäämättä pettymyksiä, sillä tutkimuksessa työstetään yhden tavoitteen kehitelmiä, vaikka kyseessä on monitavoitteinen kokonaisuus, jollaisen ratkaisemiseksi saatetaan hyvinkin tarvita evolutionäärisiä menetelmiä yhdistelemään ja valitsemaan ratkaisujen juonteita ja ymmärtämään niitä kokonaisuuksien käydessä ihmisille ylivoimaisiksi kun jo massiiviset ultra tiheät langattomat IoT infrastruktuurit voivat johtaa ratkaisuin, joissa suurin osa neuroneissa on muualla kuin keskushermostossa