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

Koko: px
Aloita esitys sivulta:

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

Transkriptio

1 JAANA KORPELA KÄSINKIRJOITETTUJEN NUMEROIDEN TUNNISTUS NEU- ROVERKKOJEN AVULLA Kandidaatintyö Tarkastaja: Simo Ali-Löytty Tarkastaja: Henri Hansen Palautettu

2 i TIIVISTELMÄ JAANA KORPELA: Käsinkirjoitettujen numeroiden tunnistus neuroverkkojen avulla Tampereen teknillinen yliopisto Kandidaatintyö, 16 sivua, 3 liitesivua Toukokuu 2016 Tekniikan ja luonnontieteiden TkK-tutkinto-ohjelma, Teknis-luonnontieteellinen Pääaine: matematiikka Tarkastajat: Simo Ali-Löytty ja Henri Hansen Avainsanat: neuroverkot, deep learning Tässä kandidaatintyössä tutustaan neuroverkkojen toimintaan ja miten niitä käytetään deep learningissa. Neuroverkot muistuttavat hermoston kaltaisia systeemejä, jotka sisältävät neuroneita, joita voidaan opettaa tunnistamaan muun muassa tekstiä, numeroita ja ääntä. Deep learning on syvää oppimista, mikä tarkoittaa neuroverkkojen tapauksessa sitä, että opetetaan sellaista verkkoa, jossa neuronit on asetettu useampaan kerrokseen. Syötettävä signaali kulkee tällöin useamman neuronin läpi. Tässä työssä käytetään Matlab-ohjelmiston työkalua, jota voidaan käyttää kuvantunnistuksessa. Työkalun avulla voidaan luoda tietokoneohjelma, joka tunnistaa esimerkiksi käsinkirjoitettuja numeroita. Ohjelmalle opetetaan alussa käsinkirjoitettuja numeroita ja sen jälkeen syötetään testinumerot, joista ohjelma pyrkii tunnistamaan kaikki.

3 ii ALKUSANAT Tämä tekniikan kandidaatintyö on tehty Tampereen teknillisen yliopiston Matematiikanlaitokselle. Kiitän kandidaatintyön ohjaajia ja tarkastajia TkT Simo Ali- Löyttyä ja TkT Henri Hansenia avusta työn tekemisessä sekä mahdollisuudesta tutustua kiinnostavaan aiheeseen.

4 iii SISÄLTÖ 1. Johdanto Teoria Neuroverkot Deep learning Käyttökohteet Kuvan tunnistus Käytettävä data Kerrokset Toiminta Visuaalinen tulos Tulosten kehitys ja hienosäätö Matlab: Neural Network -työkalu Testaus Yhteenveto Lähteet LIITE A. Matlab-koodi

5 iv LYHENTEET JA MERKINNÄT a b k f g N n p m P ( ) R s ij tanh( ) u k v k w kj x kj x j y k ϕ( ) sigmoidfunktion parametri, joka määrittää s-käyrän kaarevuuden vakiotermi, joka on lisätty neuroniin k funktio funktio luonnollisten lukujen joukko piilotetun kerroksen koko syötteiden lukumäärä todennäköisyys reaalilukujen joukko sekaannusmatriisin alkio hyperbolinen tangenttifunktio neuronin k syötesignaalien summa aktivaatiofunktiolle syötettävä signaali synaptinen paino synapsille j, joka liittyy neuroniin k syötesignaali, kun neuronilla k useampi sisääntulosyöte syötesignaali ulostulon signaali neuronin k aktivaatiofunktio

6 1 1. JOHDANTO Ihmisen aivoja voidaan verrata todella tehokkaaseen tietokoneeseen. Kun ihminen näkee esineen, kirjaimen tai numeron, pystyy hän omien assosiaatioidensa perusteella tunnistamaan tämän. Nähdyn kohteen ominaisuuksien, kuten käsialan tai esineen värin, ei tarvitse olla täysin samat kuin aiemmin nähdyllä, mutta niistä voidaan silti tunnistaa esimerkiksi eri kirjaimet tai kohteena oleva esine ja jaotella ne näiden perusteella eri luokkiin. Neuroverkot ovat keinotekoisesti luotuja systeemejä, jotka muistuttavat rakenteeltaan ihmisten ja eläinten hermostoja. Deep learningissa eli syväoppimisessa neuroverkkoa opetetaan tunnistamaan eri asioita. Neuroverkkojen ja Deep learningin avulla pyritään luomaan tietokoneella malli, joka jäljittelee ihmisaivoja ja niiden tunnistustaitoja esimerkiksi kuvantunnistuksessa. Tietokone pystyy tällöin luokittelemaan kohteita, kuten digitaaliseen muotoon muutettuja numeroita ja esineitä, eri luokkiin kohteiden ominaisuuksien perusteella laskennallisten menetelmien avulla. Kohteet voidaan muuttaa digitaaliseen muotoon esimerkiksi digikuvaamalla ne. Ennen kuin ohjelma tunnistaa kohteita, tietokoneohjelmalle opetetaan erilaisia ominaisuuksia syöttämällä luodulle neuroverkolle opetustiedostoja, jotta neuroverkko voi esimerkkien pohjalta muodostaa yleisen luokitteluperiaatteen kohteiden eri ominaisuuksille. Oppimisen jälkeen neuroverkko voi luokitella tunnistettavan asian omaan luokkaansa. Tiedoston, jonka luokkaa yritetään selvittää, kutsutaan syötetiedostoksi. Syötetiedosto ja opetustiedosto ovat muodoltaan samankaltaisia, mutta opetustiedostojen oikea luokka tunnetaan ja sitä hyödynnetään neuroverkkojen opetuksessa.

7 2 2. TEORIA 2.1 Neuroverkot Neuroverkot ovat keinotekoisesti luotuja hermoston kaltaisia verkostoja, joiden avulla pyritään mallintamaan biologista hermostoa ja sen tietojenkäsittelyä. Verkot koostuvat neuroneista, jotka on yhdistetty toisiinsa liitosten avulla. Neuronit ovat keinotekoisia hermosoluja, ja liitokset vastaavat biologisen hermoston synapseja [1]. Synapsit kuljettavat tiedon neuronilta toiselle, joko suoraviivaisesti verkostossa edeten tai verkostossa palaten alkupään neuroneille, riippuen neuroverkon käyttötarpeista ja rakenteesta. Yleisin rakenne on eteenpäin tietoa syöttävä verkko (englanniksi feed forward network). Neuroverkot sisältävät eri kerroksia, kuten sisään- ja ulostulokerrokset, jotka ovat neuroverkkojen näkyvät uloimmat kerrokset. Uloimpien kerrosten välille jää piilotettuja kerroksia, joiden läpi mennessään signaali muokkautuu sellaiseen muotoon, josta tietokone pystyy alkuperäisestä signaalista tunnistamaan haluttuja asioita. Neuroneille syötetään dataa numeerisessa muodossa, jolle verkko laskee ulostulon annetulle datapisteelle. Ulostulot voidaan jaotella eri luokkiin neuroneille opetettujen ominaisuuksien perusteella. Opetus tapahtuu opetusdatan avulla, joka koostuu pareista, joissa on data ja toivottu ulostulo. Opetuksen aikana neuroni alkaa tunnistamaan toivotuista ulostuloista tiettyjä ominaisuuksia, joiden perusteella neuroni tunnistaa myöhemmin samankaltaisesta datasta opetetut ominaisuudet mahdollisimman hyvin. Opetusdatana voidaan käyttää kuvia, kun kyse on kuvantunnistuksesta. Neuronit voidaan jaotella eri kerroksiin, jolloin tieto muotoutuu monen eri neuronin yhdistävän synapsin läpi. Kuvassa 2.1 on neuroverkko, jossa signaali etenee verkossa tiettyyn kulkusuuntaan. Neuroverkkoon on merkitty sisään- ja ulostulo sekä väliin jäävä piilotettu kerros. Piilotetun kerroksen toiminta ei näy neuroverkossa ulospäin, mutta kyseisessä kerroksessa tapahtuu oppiminen ja ulostulevan signaalin laskeminen. Usean kerroksen neuroverkossa tietyn neuronin ulostulo voi olla toisen neuronin sisääntulosyöte.

8 2.1. Neuroverkot 3 Sisääntulo x k1 Sisääntulokerros Piilotettu kerros Ulostulokerros Sisääntulo x k2 Sisääntulo x k3 Ulostulo y k Sisääntulo x k4 Sisääntulo x k5 Kuva 2.1 Esimerkkineuroverkossa kerroksista näkyviä ovat ainoastaan sisään- ja ulostulokerrokset. Väliin jäävä kerros hidden on piilotettu kerros. Neuroverkoissa eri kerrosten lukumäärä ja alkioiden määrä saattavat vaihdella, esimerkiksi ulostuloja voi joissakin tapauksissa olla useampikin. Tarkastellaan neuroverkon yksittäistä neuronia. Neuroni koostuu rakenteeltaan synapseista, jotka määrittävät synaptisen painon kahden eri neuronin välillä, summaajafunktiosta ja aktivaatiofunktiosta [2, 3]. Kuvassa 2.2 on havainnoillistettu nämä osat ja niiden yhteys. Neuronin summaajafunktio laskee yhteen kaikkien syötesignaalien ja näiden synaptisten painojen tulot, jonka jälkeen tieto siirtyy aktivaatiofunktiolle ϕ( ). Summaksi saadaan u k = m w kj x j kaikilla k {1, 2,..., n p } (2.1) j=1 missä w kj R on synaptinen paino sisääntulolle j neuronissa k, m on sisääntulevien signaaleiden lukumäärä, n p on piilotetussa kerroksessa olevien neuroneiden lukumäärä ja x j R sisääntulosignaali signaalille j. Summaajafunktiosta signaali jatkaa matkaa aktivaatiofunktiolle. Sisääntulosignaalien lisäksi summaajafunktioon liittyy myös vakiotermi b k R, joten aktivaatiofunktiolle menevässä signaalissa ovat mukana sekä summatut sisääntulosignaalit että vakiotermi.

9 2.1. Neuroverkot 4 Sisääntulot x 1 w k1 Vakiotermi b Aktivaatiofunktio x 2 w k2 Σ ϕ( ) Ulostulo y k x j w kj Painot Kuva 2.2 Neuronissa sisääntulosignaalit saavat synaptiset painot ja siirtyvät tämän jälkeen summaajafunktiolle yhteenlaskettavaksi. Yhteenlaskuun tulee mukaan vakiotermi b. Tämän jälkeen signaali siirtyy aktivaatiofunktion kautta ulostuloon y k. Yksi neuroni vastaa kuvassa 2.1 olevaa ympyrää. Aktivaatiofunktiolle siirtyvää signaalia voidaan merkitä v k = m w kj x j + b k = u k + b k, v k R. (2.2) j=0 Ulostulon signaali y k R määräytyy aktivaatiofunktion ϕ, vakiotermin b k ja sisään tulevan summan u k perusteella kaavalla y k = ϕ (u k + b k ) = ϕ (v k ). (2.3) Aktivaatiofunktioita on olemassa useita erilaisia käyttökohteesta riippuen. Funktiot voidaan karkeasti jakaa kolmeen esimerkkiryhmään, joiden tyyppisiä aktivaatiofunktiot usein ovat. Ensimmäisessä esimerkissä funktio saa arvoja epälineaarisesti nollan tai ykkösen yksikköaskelfunktion tavoin. Funktion voi tällöin kirjoittaa muodossa ϕ(v) = { 1, kun v 0 0, kun v < 0. (2.4) Muissa tyyppiesimerkeissä funktio on joko paloittain määriteltynä tai sigmoidisena funktiona, jolloin kuvaaja funktiolle muodostaa s-käyrän. Paloittain määriteltynä aktivaatiofunktio on esimerkiksi muotoa 1, kun v 1 2 ϕ(v) = v + 1 2, kun 1 < v < , kun v 1 2 (2.5)

10 2.2. Deep learning 5 ja sigmoidiselle funktiolle ϕ(v) = 1 1+exp( av), (2.6) missä a R on sigmoidfunktion parametri, joka vaikuttaa siihen, miten jyrkkä funktion käyrä on. Mitä pienempi parametrin a itseisarvo on, sitä loivempi s-käyrä muodostuu kuvaajaan. Aktivaatiofunktio on tyyppiesimerkeissä saanut arvoja aina nollan ja yhden väliltä, mutta joissakin tapauksissa funktio voi saada arvoja myös välillä [ 1, 1]. Funktion on hyvä olla yksinkertaisesti laskettava ja derivoitava, jotta dataa olisi helppo käsitellä neuronissa ja tarvittaessa kehittää neuroverkon toimintaa. Numeroiden tunnistuksessa aktivaatiofunktiona voidaan käyttää esimerkiksi hyperbolista tangenttifunktiota [4] ϕ(v) = tanh(v). (2.7) Hyperbolinen tangenttifunktio sopii hyvin aktivaatiofunktioksi symmetrisyytensä ansiosta. Lisäksi aktivaatiofunktion valinnassa on otettava huomioon, että funktio on derivoituva, mikäli käytetään opetusmenetelmänä esimerkiksi Backpropagationalgoritmia. Algoritmin avulla voidaan hienosäätää neuroverkkoa toimimaan paremmin ja tunnistamaan haluttuja asioita suuremmalla todennäköisyydellä oikeaan luokkaan. Kuvassa 2.3 näkyy, miten eteenpäin etenevän ja Backpropagation-algoritmin mukaisesti takaisin palaavan funktion käsittelyn ero on. Jotta Backpropagationin käytön jälkeen voidaan palata liikkumaan eteenpäin, on symmetrisyydestä derivoinnissa etua. Kuvassa 2.4 havainnoidaan, miten signaali liikkuu neuroverkossa Backpropagation-algoritmin tapauksessa funktioiden f ja g avulla. 2.2 Deep learning Deep learningissa, eli syväoppimisessa, käytetään hyväksi neuroverkkoja tiedon käsittelyssä, koska ne soveltuvat hyvin deep learningin käyttötarkoitukseen verkostomaisuutensa ansiosta [5]. Syvää neuroverkon oppimisesta tekee se, että signaali kulkee monen eri neuronin läpi. Jokainen neuroni muokkaa signaalia omalla menetelmällään ja koko verkon läpi mennyt ulostulosignaali on muokkautunut kaikkien läpäistämiensä neuronien vaikutuksesta. Ennen kuin ohjelmalla voidaan käydä läpi testisyötteitä, tulee sille syöttää opetusdata. Opetus tapahtuu tällöin neuroverkon jokaisessa kerroksessa, jolloin oppimisesta tulee syvää. Ohjelma voi jaotella eri kerroksissa olleiden neuroneiden muokkaaman ulostulosyötteen luokkaansa sen mukaan, minkä luokan piirteitä sillä on eniten.

11 2.2. Deep learning 6 Kuva [6] 2.3 Eteenpäin etenevän ja takaisin palaavan signaalin ero funktioiden käsittelyssä. Tietokoneen tunnistamista kuvista voidaan luoda sekaannusmatriisi, joka havainnoi, miten hyvin ohjelma on tunnistanut esimerkiksi käsinkirjoitettuja numeroita. Matriisin riveille on jaoteltu tunnistettujen numeroiden lukumäärät niin, että ne on sarakkeittain jaoteltu niihin luokkiin, missä niiden pitäisi olla. Tällöin matriisin diagonaaliakselille muodostuu arvoiltaan isoimmat alkiot ja mikäli näin ei ole, ei ohjelma ole oppinut täysin luokkien eri ominaisuuksia, jotta jaottelu olisi mahdollista. Alkioihin on merkitty myös prosentuaaliset osuudet, jotta eri matriisien vertailu on helpompaa. Sekaannusmatriisii on neliömatriisi, ja se on muodoltaan s 11 s 12 s s 1j s A = 21 s 22 s s 2j s i1 s i2 s i3... s ij, (2.8) missä jokainen alkio on muotoa s ij N. Alaindeksi i viittaa ohjelman ulostulon luokkaan ja j testisyötteiden tavoiteluokkaan. Tavoitteena on saada alkioita vain diagonaaliakselille, jolloin todennäköisyydet alkioiden paikoille riveittäin ja sarakkeittain ovat P (s ij = 1) = 1, kun i = j ja P (s ij = 1) = 0, kun i j. Haasteita opetukseen tuo eri ominaisuuksien keskinäiset erilaisuudet. Esimerkiksi käsinkirjoitettujen numeroiden tunnistuksessa erilaisia käsialoja on olemassa erilaisia ihmisestä riippuen. Myös eri numeroita voidaan kirjoittaa eri tavoilla.

12 2.3. Käyttökohteet 7 Sisääntulo x k1 Sisääntulokerros Piilotettu Ulostulokerros kerros Virhe: paluu takaisin Sisääntulo x k2 Virhe Sisääntulo x k3 Sisääntulo x k4 Sisääntulo x k5 Kuva 2.4 Neuroverkossa virheen tapahtuessa Backpropagation-algoritmin toimintaperiaatteen mukaan verkko käyttää hyväkseen tietoa, mikä kuuluisi olla oikea suunta sisääntulolle ja vie signaalin takaisin, jotta signaali päätyisi oikeaa reittiä ulostulolle. Numero seitsemän voidaan kirjoittaa joko kahtena erisuuntaisena suorana tai poikittaisen viivan kanssa ja numero yksi joko yhtenä suorana viivana tai kahtena terävän kulman muodostamana viivana, joista toinen on lyhyempi. Numerot ovat yleisesti samankaltaisia, joten eri käsiala tuo enemmän haasteita käsinkirjoitetun tekstin tunnistamiseen. Eri kirjaimia voidaan kirjoittaa lukuisin eri tavoin ja kirjoitustyylikin saattaa vaihdella aikakausien mukaan. Jotta eri ihmisten kirjoittamia numeroita ja kirjaimia voidaan tunnistaa, tarvitaan opetuskuviin monien testihenkilöiden käsialalla kirjoittamia numeroita ja tekstiä. 2.3 Käyttökohteet Neuroverkkoja ja deep learningia voidaan käyttää niin kutsutussa tekoälytutkimuksessa, kun halutaan opettaa tietokonetta tunnistamaan erilaisia asioita. Esimerkkejä tästä ovat rekisterikilpien tunnistus [7], itsestään ajavat älyautot ja numeroiden tunnistus. Eri asioita pystytään siis tunnistamaan ja luokittelemaan myös hyvin käytännöllisellä tasolla. Neuroverkkojen ja deep learningin avulla pystytään kuvantunnistuksen lisäksi tunnistamaan myös puhetta [8]. Tässä kandidaatintyössä tutustutaan tarkemmin käsinkirjoitettujen numeroiden tunnistukseen, johon voidaan käyttää apuna Mathworkilta valmiiksi löytyvää materiaalia.

13 2.3. Käyttökohteet 8 Kuva 2.5 Itsestään ajamaan oppinut älyauto tunnistaa jalankulkijat kuvasta syöttämällä autolle useita kuvia ja nopeustietoja jalankulkijoista. Tunnistetut jalankulkijat on merkitty sinisellä laatikolla. [11] Viime aikoina esimerkiksi älyautojen kehityksessä on käytetty deep learningia. Tavoitteena älyautojen toiminnassa on, että sillä pystyisi ajamaan niin, että autossa ei tarvitsisi muuta kuin ilmoittaa, minne on menossa. Esimerkiksi Google on tuonut markkinoille älyauton, jonka toimintamalleista yhtiö on tehnyt omat sivunsa [9]. Auton pitää liikenteessä pystyä tietämään auton sijainti, mitä ympäriltä löytyy sekä arvioimaan mitä seuraavaksi tapahtuu ja mitä auton pitäisi tilanteessa tehdä. Sijainnin paikannukseen älyauto käyttää navigaattoria ja etsii merkkejä ympäristöstään entistä tarkemman sijainnin määrittämiseksi. Ympäristössä olevien muiden ajoneuvojen, pyöräilijöiden ja jalankulkijoiden tunnistukseen auto käyttää kuvantunnistusta, joka arvioi liikkuvat kohteet eri luokkiin nopeuden, koon ja muiden ominaisuuksien mukaan [10]. Kuvassa 2.5 on esitetty, miten älyauto tunnistaa jalankulkijat kuvan perusteella. Samalla tavalla auton tietokone tunnistaa muutkin kulkuvälineet laatikkomaisina liikkuvina kappaleina. Erilaisten tilanteiden arvioimiseen auto käyttää opittuja malleja, kuten liikennesääntöjä ja tietokoneelle opetettuja yleisiä tapoja, mitä ihminen tekee itse ajaessaan liikenteessä. Tapojen ja eri asioiden tunnistamiseen tarvittavien kuvien opettamisessa on käytetty lukuisia esimerkkejä, jotta tietokone tunnistaa yllättäviäkin tilanteita liikenteessä ja älyauto osaisi täten reagoida näihin oikein. Liikennesääntöjen lisäksi autoille opetetaan myös ihmisten tekemiä yleisiä ratkaisuja liikenteessä, koska tavallisesti ajaessaan ihminen ei aina seuraa liikennesääntöjä tarkalleen.

14 9 3. KUVAN TUNNISTUS Matlabilla voidaan koodata ohjelma, jossa voidaan hyödyntää Matlabissa valmiina olevaa neuroverkkojen työkalua. Sen avulla tehdyn ohjelman avulla voidaan esimerkiksi tunnistaa käsinkirjoitettuja numeroita. Ohjelma opettelee käsinkirjoitettujen numeroiden avulla tunnistamaan numeroita, jonka jälkeen ohjelma tunnistaa numerot itse todennäköisyyksien avulla. Matlabilla on valmiina numeroiden tunnistamiseen johdatteleva demo, jonka esimerkin avulla on mahdollista tutustua neuroverkkojen toimintaan ja luoda oman koodin numeroiden tunnistamista varten. Mathworksin valmiina olleen esimerkkikoodin pohjalta tehty koodi löytyy työn liitteestä A. 3.1 Käytettävä data Matlabilla on valmiina olemassa testimateriaalia. Aloitettaessa kokonaan uutta opetusta, kuten numeroiden tunnistusta kuvasta, Matlabiin syötetään testitiedostoiksi sisääntulotiedostot ja tavoitetiedostot. Molemmat syötetään Matlabiin joko pystytai vaakavektorimuodossa, eli neuroverkkoon sisääntuleva tieto on vektorimuotoista. Kuvassa 3.1 on esitetty Matlabiin valmiiksi syötettyjä numeroita, jotka pystyy numeroiden tunnistamiseen johdattelevassa demossa opettaa luoduille neuroverkoille. Opetettava data sisältää kuvan ja tiedon siitä, mikä numero kyseisessä kuvassa kuuluu olla. Syötetyt numerokuvat ovat satunnaisessa järjestyksessä ja sisältävät jokaiselle numerolle suuren määrän esimerkkikuvia. Kuvat ovat 28 x 28 pikselin kokoisia, eli sisältävät yhteensä m = 784 pikseliä. Matlabissa ajetussa esimerkissä opetettiin 5000 kuvaa ensimmäiselle kerrokselle. Syötettäessä eri opetuskuvia kerroksille kuvien todellista numeroa ei kuitenkaan vielä käytetä.

15 3.2. Kerrokset 10 Kuva 3.1 Testikuvina käytetään käsinkirjoitettuja numeroita. Kuvassa on pieni osa ohjelmalle opetetuista numeroista. Kuva 3.2 Ensimmäinen autoenkooderi, joka muuttaa kuvan 784 pikselin kokoisesta sisääntulosta 100 pikselin kokoiseksi. 3.2 Kerrokset On olemassa neuroverkkoja, jotka pyrkivät toistamaan ulostulossa saman, kuin mitä sisääntulossa niihin syötettiin. Näitä neuroverkkoja kutsutaan autoenkoodereiksi (eng. autoencoder). Syötetty signaali muuttuu piilotetussa kerroksessa autoenkooderin vaikutuksesta, useimmiten se muokataan pienemmäksi. Kuvassa 3.2 näkyy, miten autoenkooderi toimii. Signaali syötetään autoenkooderiin, missä se synaptisen painon vaikutuksen ja vakiotermin summaamisen jälkeen siirtyy aktivaatiofunktiolle. Luvut m = 784 ja n p = 100 viittaavat numeroiden tunnistuksessa kuvan pikseleihin. Kuvasta siis tehdään paljon pienempi ja epätarkempi ihmisen silmään. Tällä tavalla ohjelma pyrkii selvittämään kuvista tärkeimmät piirteet.

16 3.2. Kerrokset 11 Kuva 3.3 Toinen autoenkooderi, joka muuttaa kuvan 100 pikselin kokoisesta sisääntulosta 50 pikselin kokoiseksi. Kuva 3.4 Luokittelijalle opetetaan 50 pikselin kokoisia opetuskuvia, joiden mukana on tieto, mihin luokkaan mikäkin kuva kuuluu. Numeroiden tunnistuksen tapauksessa luokat ovat 0, 1, 2, 3, 4, 5, 6, 7, 8 ja 9. Numero 0 luokitellaan poikkeuksellisesti numerona 10, kun taas muut numerot ovat samannimisissä luokissa. Autoenkooderissa käytetään aktivaatiofunktiona sigmoidista funktiota (2.6) dekooderissa, joka muuntaa funktion takaisin alkuperäiseen kokoonsa. Halutessaan autoenkooderin enkooderissa ja dekooderissa voi käyttää myös eri funktioita. Ensimmäisen kerroksen jälkeen ohjelma tunnistaa jo jonkin verran numeroiden eri piirteitä, mutta niistä oikein ei mene läheskään yhtä moni, kuin menisi, jos tiedot menisivät kahden eri kerroksen läpi. Ensimmäisen kerroksen jälkeen kuvat ovat todella sumeita, joten toisessa kerroksessa neuroverkko käsittelee pienempiä kuvia, jotka ensimmäisen kerroksen decoder muutti takaisin isoksi kuvaksi. Kuvassa 3.3 nähdään, miten neuroverkolle opetetaan 100 pikselin kokoisia kuvia, jotka se muuttaa 50 pikselin kokoisiksi. Kerros muuttaa yksin käytettäessään kuvat takaisin 100 pikselin kokoisiksi, joista se pystyy sumeista piirteistä arvioimaan eri ominaisuuksien mukaan, mitä numeroita mikäkin kuva esitti. Jotta ohjelma voisi tietää, mikä numero kuvassa oli, tarvitaan vielä yksi kerros, jolle opetetaan myös tämä taito. Tätä kerrosta kutsutaan luokittelijaksi, joka tunnetaan Matlabissa Softmax layerina. Luokittelija on esitettynä kuvassa 3.4.

17 3.3. Toiminta 12 Kuva 3.5 Deep learningia hyödyntävä neuroverkko, jossa on yhdistetty kaikki kerrokset, jotka aiemmin ohjelmassa luotiin. Luokittelija jakaa siihen syötetyt kuvat niihin luokkiin, mihin ne kuuluvat, eli oikeat numerot oikeisiin ryhmiin. Softmax -kerrokseen päästyään kuvaa on voitu pienentää alkuperäisten kuvien ja luokittelijalle syötettyjen kuvien koosta riippuen 758 pikselistä 50 pikseliin, jolloin kuva ei näytä enää läheskään samalta. Luokittelijan on mahdollista erotella kuvat oppimansa mukaan ja oppimaan samassa luokassa olevien kuvien yhteisiä ominaisuuksia. 3.3 Toiminta Kun kerrokset on luotu, voidaan kerrokset yhdistää, jotta deep learningia voidaan hyödyntää ohjelmassa. Luotujen kerrosten välillä on yhteys kuvien kokojen välillä. Neuroverkkojen oppiminen muuttuu syväksi, kun eri kerrokset yhdistetään ja testidata laitetaan menemään kaikkien kerrosten läpi, kuten kuvassa 3.5 on tapahtunut. Testitiedostot ovat samanmuotoisia kuin opetustiedostot, mutta eivät kuitenkaan samoja. Kerroksille on valmiiksi opetettu eri kuvia ja ne luokittelevat testitiedostot omiin luokkiin aikaisemmin oppimiensa ominaisuuksien perusteella. 3.4 Visuaalinen tulos Ohjelma tunnistaa numerot täysin syötettyjen kuvien perusteella. Syötetyt kuvat muuttuvat pienemmiksi ja sumeammiksi jokaisen kerroksen läpäistyään. Kuvassa 3.6 nähdään, miltä näyttävät kahteen kertaan muuttuneet testikuvat. Kuten kuvasta 3.6 huomataan, sumeista kuvista on hankala erottaa, mikä numero alunperin kyseisessä ruudussa on ollut kyseessä. Tietokone kuitenkin oppii näiden kuvien perusteella tunnistamaan kuvia numeron muodon perusteella. Muotoa ohjelma voi analysoida esimerkiksi pinta-alan perusteella ja tilastollisin menetelmin päätellä, mikä olisi todennäköisimmin vastaava numero kuvassa olleelle numerolle. Ohjelma vertailee tällöin eri pikselien väriä ja sijaintia.

18 3.5. Tulosten kehitys ja hienosäätö 13 Kuva 3.6 Muutos tunnistettavien piirteiden välillä. Ensimmäisessä joukossa ovat ensimmäisen autoenkooderin läpi tulleet kuvat ja toisena toiden autoenkooderin läpi tulleet kuvat. Matlabin demossa on olemassa valmiiksi testitiedosto, jonka avulla voi testata, miten hyvin ohjelma tunnistaa luvut. Kun ohjelma on ajanut testitiedostot kaikkien kerrosten läpi, voidaan luoda sekaannusmatriisi, joka on esitetty kuvassa 3.7. Matriisista nähdään, miten hyvin ohjelma on numerot tunnistanut testauksessa olleet numerot. Ohjelma on suurimmasta osasta tunnistanut oikeat numerot. Testimateriaalimäärällä päästään 81,2 prosentin todennäköisyydellä oikeaan ratkaisuun. Matriisissa output class kertoo, minkä luvun ohjelma on arvellut olevan ja target class todellisen numeron. Eniten ohjelma on arvioinut numeroksi 5 vääriä lukuja, kun kaikkiaan vitosiksi luokittelemistaan luvuista 71,8 prosenttia olivat oikeasti lukuja 5. Eniten numeroksi viisi on veikattu numeroa 3 tai 8 samankaltaisen muodon takia. 3.5 Tulosten kehitys ja hienosäätö Ohjelma sai 81,2-prosenttisesti oikeat luokittelut testinumeroille, mutta on olemassa keinoja, joilla tulosta voidaan parantaa entisestään. Kerroksille voidaan opettaa lisää opetuskuvia, mutta helppo tapa on käyttää apuna Matlabissakin olevaa Backpropagation-algoritmia, jonka avulla pystytään minimoimaan väärin menneitä luokitteluja hyödyntämällä testikuvien tunnisteita.

19 3.6. Matlab: Neural Network -työkalu 14 Kuva 3.7 Sekaannusmatriisi, joka kertoo, miten hyvin ohjelma on tunnistanut testisyötteen numeroita ja mihin se on sekoittanut niitä. Opetuskuvista tehdään ensin vektoreita, jotka sijoitetaan matriisiin kuvien luokittelujen kanssa. Tämän jälkeen neuroverkkoa opetetaan vielä lisää, jolloin väärien luokittelujen määrä vähenee huomattavasti. Kuvassa 3.8 on esitetty sekaannusmatriisi hienosäädön jälkeen ja siitä huomataan, että väärin menneitä luokitteluja oli enää vain yksittäisiä ja kokonaisuudessaan oikein luokitteluista meni 91,3 prosenttia. 3.6 Matlab: Neural Network -työkalu Matlabilla on oma työkalu syvien neuroverkkojen luomiseen [12]. Työkalua voi käyttää numeroiden tunnistukseen tehtävässä ohjelmassa, mutta sitä voi hyödyntää myös muihin kuvantunnistustarkoituksiin, kuten geometristen kuvioiden tunnistukseen. Työkalulle syötetään alussa tiedostot, jossa syötetään sisääntulosyötteet ja tavoitteet, joita sisääntulosyötteet vastaavat. Näiden tietojen ja työkalun avulla neuroneille opetetaan tiedot ja kuten numeroiden tunnistuksessa, myös tässä tapauksessa

20 3.7. Testaus 15 Kuva 3.8 Backpropagation-algoritmin avulla voidaan hienosäätää tulosten luokittelua tehokkaammaksi. 3.7 Testaus Koodattua ohjelmaa voi testata itse skannaamalla käsinkirjoitettuja numeroita ja luomalla testitiedosto Matlabin neuroverkkotyökalun avulla. Samaan tapaan voidaan luoda myös opetustiedostoja. Koodia muuttamalla voidaan testata myös, miten esimerkiksi opetusnäytteiden lukumäärää tai piilotettujen kerroksen kokoa muuttamalla voidaan vaikuttaa tunnistettujen numeroiden prosentuaaliseen määrään. Esimerkiksi mikäli opetussyötteitä on vain 100, tunnistaa ohjelma numeroita oikein vain noin 50 prosentin todennäköisyydellä. Aktivaatiofunktion valinnalla on myös merkitystä tulosten kannalta. Nyt aktivaatiofunktiona on käytetty sigmoidista funktiota. Jotta paras tulos voidaan saada, voidaan kokeilla esimerkiksi hyperbolista tangenttifunktiota tai paloittain määriteltyjä funktioita, mikäli näillä saataisiin parempia tuloksia.

21 16 4. YHTEENVETO Tässä työssä tutustuttiin neuroverkkojen toimintaan, deep learningiin ja niiden käyttökohteisiin lisäksi. Matlabilla pystyttiin koodaamaan ohjelma, jossa neuroverkon neuroneille, tässä tapauksessa autoenkoodereille, opetettiin käsinkirjoitettuja numeroita. Ohjelma tunnisti käsinkirjoitetuista testikuvista suurimman osan tämän jälkeen. Oikein menneiden numeroiden tunnistusprosentti kasvoi, kun ohjelmaa hienosäädettiin Backpropagation-algoritmin avulla. Ennen hienosäätöä tunnistusprosentti oli 81,2 prosenttia ja hienosäädön jälkeen 91,3 prosenttia. Oikein tunnistettujen numeroiden prosentuaalista määrää voidaan kasvattaa esimerkiksi vertailemalla eri aktivaatiofunktioita, kasvattamalla opetusdatan määrää ja muuttamalla autoenkoodereiden kokoja.

22 17 LÄHTEET [1] T. Honkela, Neuroverkot: johdatus moderniin tekoälyyn, Teknillinen korkeakoulu. Saatavilla: viitattu [2] R. O. Duda, P. E. Hart, D. G. Stork, Pattern Classication, 2. painos, A Wiley- Interscience Publication, Saatavilla TTY:n verkossa: com/patron/fullrecord.aspx?p=699526, viitattu [3] S. Haykin, Neural networks : a comprehensive foundation, 2. painos, Upper Saddle River (NJ) : Prentice Hall [4] M. O'Neill, Neural Network for Recognition of Handwritten Digits, Saatavilla /Neural-Network-for-Recognition-of-Handwritten-Digi# ActivationFunction, viitattu [5] M. Nielsen, Neural Networks and Deep Learning, Saatavilla neuralnetworksanddeeplearning.com/index.html, viitattu [6] R. Rojas, Neural Networks, Luku 7, Springer-Verlag, Berlin, Saatavilla viitattu [7] R. Parisi, E. D. Di Claudio, G. Lucarelli, G. Orlandi, Car platerecognition by neural networks and image processing, Saatavilla _Car_plate_recognition_by_neural_networks_and_image_ processing/links/0c96051cc97472e5b pdf, viitattu [8] L. Deng, G. Hinton, B. Kingsbury, New types of deep neural network learning for speech recognition and related applications: an overview, Saatavilla &rep=rep1&type=pdf, viitattu [9] Google Self-Driving Car Project, Saatavilla: selfdrivingcar/, viitattu

23 18 [10] M. Harris, New Pedestrian Detector from Google Could Make Self-Driving Cars Cheaper, Saatavilla spectrum.ieee.org/cars-that-think/transportation/self-driving/ new-pedestrian-detector-from-google-could-make-selfdriving-cars-cheaper, viitattu [11] A. Angelova, A. Krizhevsky, V. Vanhoucke, Pedestrian Detection with a Large- Field-Of-View Deep Network, Saatavilla edu/anelia/publications/angelova15lfov.pdf, viitattu [12] Classify Patterns with a Neural Network, Saatavilla classify-patterns-with-a-neural-network.html, viitattu

24 19 LIITE A. MATLAB-KOODI 1 %% Opetusdata 2 % Ladataan opetusdatana olevat käsinkirjotetut numerot 3 [opetuskuvat, opetustunnisteet] = digittrain_dataset; 4 5 % Valitaan käytettävän opetusdatan koko 6 naytemaara = 1000; %montaako opetusnäytettä käytetään,... opetuskuvia on opetuskuvat = opetuskuvat(1:naytemaara); 8 opetustunnisteet = opetustunnisteet(:,1:naytemaara); 9 10 %% Ensimmäinen autoenkooderi 11 % Opetuskuvat ovat kooltaan 28x28 pikselin kokoisia matriiseja, 12 % eli yhteensä 758 pikselin kokoisia. Ensimmäisen autoenkooderin 13 % piilotettu kerros on 100 pikselin kokoinen, joten autoenkooder 14 % oppii kuvasta tiivistetyn version rng('default') 17 piilotettu1koko = 100; % autoenkooderin piilokerroksen koko % Tässä vaiheessa autoenkooderin opetusta ei käytetä vielä 20 % numeron kertovia tunnisteita autoenkooder1 = trainautoencoder(opetuskuvat, piilotettu1koko, 'MaxEpochs', 100, 'L2WeightRegularization', 0.004, 'EncoderTransferFunction','logsig', 'SparsityRegularization', 4, 'SparsityProportion', 0.15, 'Scaledata', false); % Jokaisen kuvan tiivistetty versio otetaan seuraavan 29 % autoenkooderin opetusnäytteeksi tiivistetty1 = encode(autoenkooder1, opetuskuvat); %% Toisen autoenkooderin opetus 34 % Toinen autoenkooder tiivistää opetuskuvia entisestään piilotettu2koko = 50; % piilotetun kerroksen koko autoenkooder2 = trainautoencoder(tiivistetty1,piilotettu2koko, 'MaxEpochs',100, 'L2WeightRegularization',0.002, 'EncoderTransferFunction','logsig',...

25 LIITE A. Matlab-koodi 'SparsityRegularization',4, 'SparsityProportion',0.1, 'ScaleData', false); % Toisen autoenkooderin tiivistämä data. 47 tiivistetty2 = encode(autoenkooder2,tiivistetty1); %% Luokittelukerros (Softmax) 50 % Luokittelukerros opetetaan tunnistamaan tiivistetyt näytteet. 51 % Tunnistamiseen käytetään opetusnäytteiden tunnisteita luokittelu =... trainsoftmaxlayer(tiivistetty2,opetustunnisteet,'maxepochs',400); %% Deep learning 56 % Syväoppimisessa olemassaolevat kerrokset yhdistetään syvaoppiminen = stack(autoenkooder1, autoenkooder2, luokittelu); %% Testaus 61 % Ladataan testikuvat. 62 [testikuvat, testitunnisteet] = digittest_dataset; % Muutetaan testikuvat vektoreiksi (kuvien koko 28x28) ja tehdään 65 % niistä matriisi, joka siis sisältää kaikki testinäytteet. 66 testi = zeros(28*28,numel(testikuvat)); 67 for i = 1:numel(testikuvat) 68 testi(:,i) = testikuvat{i}(:); 69 end % Testataan luotua neuroverkkoa. 72 y = syvaoppiminen(testi); % Sekaannusmatriisi kertoo, mitä numeroa testikuvat oikeasti 75 % esittivät, ja mitä numeroa neuroverkko uskoo kuvien esittävän. 76 % Luokka kymmenen vastaa numeroa nolla figure 79 plotconfusion(testitunnisteet,y); %% Tulosten hienosäätö 82 % Opetetaan neuroverkkoa backpropagation-algoritmin 83 % avulla opetus = zeros(28*28,numel(opetuskuvat)); 86 for i = 1:numel(opetuskuvat) 87 opetus(:,i) = opetuskuvat{i}(:);

26 LIITE A. Matlab-koodi end syvaoppiminen2 = train(syvaoppiminen,opetus,opetustunnisteet); % Testataan hienosäädön jälkeen. 93 z = syvaoppiminen2(testi); % Tulostetaan sekaannusmatriisi. 96 figure 97 plotconfusion(testitunnisteet,z);

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Sami Hokuni 12 Syyskuuta, 2012 1/ 54 Sami Hokuni Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Turun Yliopisto. Gradu tehty 2012 kevään

Lisätiedot

Johdatus tekoälyn taustalla olevaan matematiikkaan

Johdatus tekoälyn taustalla olevaan matematiikkaan Johdatus tekoälyn taustalla olevaan matematiikkaan Informaatioteknologian tiedekunta Jyväskylän yliopisto 2. luento 10.11.2017 Keinotekoiset neuroverkot Neuroverkko koostuu syöte- ja ulostulokerroksesta

Lisätiedot

ImageRecognition toteutus

ImageRecognition toteutus ImageRecognition toteutus Simo Korkolainen 27 kesäkuuta 2016 Projektin tarkoituksena on tehdä ohjelma, joka opettaa neuroverkon tunnistamaan kuvia backpropagation-algoritmin avulla Neuroverkon opetuksessa

Lisätiedot

Tee-se-itse -tekoäly

Tee-se-itse -tekoäly Tee-se-itse -tekoäly Avainsanat: koneoppiminen, tekoäly, neuroverkko Luokkataso: 6.-9. luokka, lukio, yliopisto Välineet: kynä, muistilappuja tai kertakäyttömukeja, herneitä tms. pieniä esineitä Kuvaus:

Lisätiedot

Johdatus tekoälymatematiikkaan (kurssilla Johdatus Watson-tekn

Johdatus tekoälymatematiikkaan (kurssilla Johdatus Watson-tekn Johdatus tekoälymatematiikkaan (kurssilla Johdatus Watson-tekniikkaan ITKA352) Informaatioteknologian tiedekunta Jyväskylän yliopisto 23.3.2018 Tekoälyn historiaa 6 1 Introduction Kuva Fig. lähteestä 1.3

Lisätiedot

Kognitiivinen mallintaminen Neuraalimallinnus, luento 1

Kognitiivinen mallintaminen Neuraalimallinnus, luento 1 Kognitiivinen mallintaminen Neuraalimallinnus, luento 1 Nelli Salminen nelli.salminen@helsinki.fi D433 Neuraalimallinnuksen osuus neljä luentokertaa, muutokset alla olevaan suunnitelmaan todennäköisiä

Lisätiedot

Kognitiivinen mallintaminen. Nelli Salminen

Kognitiivinen mallintaminen. Nelli Salminen Kognitiivinen mallintaminen Neuraalimallinnus 24.11. Nelli Salminen nelli.salminen@tkk.fi Tällä kerralla ohjelmassa vielä perseptronista ja backpropagationista kilpaileva oppiminen, Kohosen verkko oppimissääntöjen

Lisätiedot

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

Tällä kerralla ohjelmassa. Kognitiivinen mallintaminen Neuraalimallinnus Kertausta: Perseptronin oppimissääntö Tällä kerralla ohjelmassa Kognitiivinen mallintaminen Neuraalimallinnus 19.2. Nelli Salminen nelli.salminen@helsinki.fi D433 vielä perseptronista ja backpropagationista kilpaileva oppiminen, Kohosen verkko

Lisätiedot

Johdatus tekoälyn taustalla olevaan matematiikkaan

Johdatus tekoälyn taustalla olevaan matematiikkaan 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

Lisätiedot

Johdatus tekoälyn taustalla olevaan matematiikkaan

Johdatus tekoälyn taustalla olevaan matematiikkaan Johdatus tekoälyn taustalla olevaan matematiikkaan Informaatioteknologian tiedekunta Jyväskylän yliopisto 3. luento 17.11.2017 Neuroverkon opettaminen (ohjattu oppiminen) Neuroverkkoa opetetaan syöte-tavoite-pareilla

Lisätiedot

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA) JOHDATUS TEKOÄLYYN TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA) KONEOPPIMISEN LAJIT OHJATTU OPPIMINEN: - ESIMERKIT OVAT PAREJA (X, Y), TAVOITTEENA ON OPPIA ENNUSTAMAAN Y ANNETTUNA X.

Lisätiedot

Johdatus tekoälyn taustalla olevaan matematiikkaan

Johdatus tekoälyn taustalla olevaan matematiikkaan Johdatus tekoälyn taustalla olevaan matematiikkaan Informaatioteknologian tiedekunta Jyväskylän yliopisto 4. luento 24.11.2017 Neuroverkon opettaminen - gradienttimenetelmä Neuroverkkoa opetetaan syöte-tavoite-pareilla

Lisätiedot

Johdatus tekoälyn taustalla olevaan matematiikkaan

Johdatus tekoälyn taustalla olevaan matematiikkaan Johdatus tekoälyn taustalla olevaan matematiikkaan Informaatioteknologian tiedekunta Jyväskylän yliopisto 5. luento.2.27 Lineaarialgebraa - Miksi? Neuroverkon parametreihin liittyvät kaavat annetaan monesti

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS NEUROVERKOT TURINGIN KONE (TAI TAVALLINEN OHJELMOINTI) VAIN YKSI LASKENNAN MALLI ELÄINTEN HERMOSTOSSA LASKENTA ERILAISTA: - RINNAKKAISUUS - STOKASTISUUS (SATUNNAISUUS) - MASSIIVINEN

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS NEUROVERKOT TURINGIN KONE (TAI TAVALLINEN OHJELMOINTI) VAIN YKSI LASKENNAN MALLI ELÄINTEN HERMOSTOSSA LASKENTA ERILAISTA: - RINNAKKAISUUS - STOKASTISUUS (SATUNNAISUUS) - MASSIIVINEN

Lisätiedot

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS JOHDATUS TEKOÄLYYN TEEMU ROOS NEUROVERKOT TURINGIN KONE (TAI TAVALLINEN OHJELMOINTI) VAIN YKSI LASKENNAN MALLI ELÄINTEN HERMOSTOSSA LASKENTA ERILAISTA: - RINNAKKAISUUS - STOKASTISUUS (SATUNNAISUUS) - MASSIIVINEN

Lisätiedot

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

Tekoäly ja alustatalous. Miten voit hyödyntää niitä omassa liiketoiminnassasi Tekoäly ja alustatalous Miten voit hyödyntää niitä omassa liiketoiminnassasi AI & Alustatalous AI Digitaalisuudessa on 1 ja 0, kumpia haluamme olla? Alustatalouden kasvuloikka Digitaalisen alustatalouden

Lisätiedot

Tilastotiede ottaa aivoon

Tilastotiede ottaa aivoon Tilastotiede ottaa aivoon kuinka aivoja voidaan mallintaa todennäköisyyslaskennalla, ja mitä yllättävää hyötyä siitä voi olla Aapo Hyvärinen Laskennallisen data-analyysin professori Matematiikan ja tilastotieteen

Lisätiedot

1. NEUROVERKKOMENETELMÄT

1. NEUROVERKKOMENETELMÄT 1. NEUROVERKKOMENETELMÄT Ihmisten ja eläinten loistava hahmontunnistuskyky perustuu lukuisiin yksinkertaisiin aivosoluihin ja niiden välisiin kytkentöihin. Mm. edellisen innoittamana on kehitelty laskennallisia

Lisätiedot

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

Puheentunnistus. Joel Pyykkö 1. 1 DL-AT Consulting Puheentunnistus Joel Pyykkö 1 1 DL-AT Consulting 2018 Sisällysluettelo Puheentunnistus Yleisesti Chattibotin Luonti Esimerkkinä - Amazon Lex Puheentunnistus Yleisesti Puheentunnistus Yleisesti Puheentunnistus

Lisätiedot

Valokuvien matematiikkaa

Valokuvien matematiikkaa Valokuvien matematiikkaa Avainsanat: valokuva, pikseli, päättely Luokkataso: 3.-5. luokka, 6.-9. luokka, lukio, yliopisto Välineet: Kynä, tehtävämonisteet (liitteenä), mahdollisiin jatkotutkimuksiin tietokone

Lisätiedot

Tilastotiede ottaa aivoon

Tilastotiede ottaa aivoon Tilastotiede ottaa aivoon kuinka aivoja voidaan mallintaa todennäköisyyslaskennalla, ja mitä yllättävää hyötyä siitä voi olla Aapo Hyvärinen Laskennallisen data-analyysin professori Matematiikan ja tilastotieteen

Lisätiedot

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

Tänään ohjelmassa. Kognitiivinen mallintaminen Neuraalimallinnus laskarit. Ensi kerralla (11.3.) Tänään ohjelmassa Kognitiivinen mallintaminen Neuraalimallinnus 26.2. Nelli Salminen nelli.salminen@helsinki.fi D433 autoassosiaatio, attraktorin käsite esimerkkitapaus: kolme eri tapaa mallintaa kategorista

Lisätiedot

Laskut käyvät hermoille

Laskut käyvät hermoille Laskut käyvät hermoille - Miten ja miksi aivoissa lasketaan todennäköisyyksiä Aapo Hyvärinen Matematiikan ja tilastotieteen laitos & Tietojenkäsittelytieteen laitos Helsingin Yliopisto Tieteen päivät 13.1.2011

Lisätiedot

Sovellettu todennäköisyyslaskenta B

Sovellettu todennäköisyyslaskenta B Sovellettu todennäköisyyslaskenta B Antti Rasila 22. marraskuuta 2007 Antti Rasila () TodB 22. marraskuuta 2007 1 / 17 1 Epäparametrisia testejä (jatkoa) χ 2 -riippumattomuustesti 2 Johdatus regressioanalyysiin

Lisätiedot

S09 04 Kohteiden tunnistaminen 3D datasta

S09 04 Kohteiden tunnistaminen 3D datasta AS 0.3200 Automaatio ja systeemitekniikan projektityöt S09 04 Kohteiden tunnistaminen 3D datasta Loppuraportti 22.5.2009 Akseli Korhonen 1. Projektin esittely Projektin tavoitteena oli algoritmin kehittäminen

Lisätiedot

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi Matriisit, kertausta Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ) ( 0, 4 ), ( ) ( 1 4 2, a 11 a 12 a 21 a 22 ) Kaavio kirjoitetaan kaarisulkujen väliin

Lisätiedot

Laskuharjoitus 9, tehtävä 6

Laskuharjoitus 9, tehtävä 6 Aalto-yliopiston perustieteiden korkeakoulu Jouni Pousi Systeemianalyysin laboratorio Mat-2.4129 Systeemien identifiointi Laskuharjoitus 9, tehtävä 6 Tämä ohje sisältää vaihtoehtoisen tavan laskuharjoituksen

Lisätiedot

Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa.

Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa. Laskuharjoitus 1A Mallit Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa. 1. tehtävä %% 1. % (i) % Vektorit luodaan

Lisätiedot

Ratkaisuehdotukset LH 8 / vko 47

Ratkaisuehdotukset LH 8 / vko 47 Ratkaisuehdotukset LH 8 / vko 47 Tehtävä 1: Olkoot A R n n matriisi, jonka singulaariarvohajotelma on A [ ] [ ] Σ U 1 U r 0 [V1 ] T 2 V 0 0 2 Jossa Σ r on kääntyvä matriisi, [ U 1 U 2 ] ja [ V1 V 2 ] ovat

Lisätiedot

1. NEUROVERKKOMENETELMÄT

1. NEUROVERKKOMENETELMÄT 1. NEUROVERKKOMENETELMÄT Ihmisten ja eläinten loistava hahmontunnistuskyky perustuu lukuisiin yksinkertaisiin aivosoluihin ja niiden välisiin kytkentöihin. Mm. edellisen innoittamana on kehitelty laskennallisia

Lisätiedot

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi Matriisit, L20 Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ) ( 0, 4 ), ( ) ( 1 4 2, a 11 a 12 a 21 a 22 ) Merkintöjä 1 Matriisi on suorakulmainen lukukaavio.

Lisätiedot

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

Tekoäly tänään , Vadim Kulikov (Helsingin Yliopisto) Tekoäly tänään 6.6.2017, Vadim Kulikov (Helsingin Yliopisto) Lyhyesti: kehitys kognitiotieteessä Representationalismi, Kognitio on symbolien manipulointia. Symbolinen tekoäly. Sääntöpohjaiset järjestelmät

Lisätiedot

Johdantoa. Jokaisen matemaatikon olisi syytä osata edes alkeet jostakin perusohjelmistosta, Java MAPLE. Pascal MathCad

Johdantoa. Jokaisen matemaatikon olisi syytä osata edes alkeet jostakin perusohjelmistosta, Java MAPLE. Pascal MathCad Johdantoa ALGORITMIT MATEMA- TIIKASSA, MAA Vanhan vitsin mukaan matemaatikko tietää, kuinka matemaattinen ongelma ratkaistaan, mutta ei osaa tehdä niin. Vitsi on ajalta, jolloin käytännön laskut eli ongelman

Lisätiedot

S-114.2720 Havaitseminen ja toiminta

S-114.2720 Havaitseminen ja toiminta S-114.2720 Havaitseminen ja toiminta Heikki Hyyti 60451P Harjoitustyö 2 visuaalinen prosessointi Treismanin FIT Kuva 1. Kuvassa on Treismanin kokeen ensimmäinen osio, jossa piti etsiä vihreätä T kirjainta.

Lisätiedot

Tilastolliset ohjelmistot 805340A. Pinja Pikkuhookana

Tilastolliset ohjelmistot 805340A. Pinja Pikkuhookana Tilastolliset ohjelmistot 805340A Pinja Pikkuhookana Sisältö 1 SPSS 1.1 Yleistä 1.2 Aineiston syöttäminen 1.3 Aineistoon tutustuminen 1.4 Kuvien piirtäminen 1.5 Kuvien muokkaaminen 1.6 Aineistojen muokkaaminen

Lisätiedot

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi Matriisit, L20 Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ( 0, 4, ( ( 1 4 2, a 11 a 12 a 21 a 22 Kaavio kirjoitetaan kaarisulkujen väliin (amer. kirjoissa

Lisätiedot

YKSIKÖT Tarkista, että sinulla on valittuna SI-järjestelmä. Math/Units Ohjelma tulostaa/käyttää laskennassaan valittua järjestelmää.

YKSIKÖT Tarkista, että sinulla on valittuna SI-järjestelmä. Math/Units Ohjelma tulostaa/käyttää laskennassaan valittua järjestelmää. YKSIKÖT Tarkista, että sinulla on valittuna SI-järjestelmä. Math/Units Ohjelma tulostaa/käyttää laskennassaan valittua järjestelmää. HUOM! Käytettäessä yksikköjä on huomioitava dokumentissa käytettävät

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet, syksy 2006 Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 11.08.2010 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

Kognitiivinen mallintaminen. Nelli Salminen

Kognitiivinen mallintaminen. Nelli Salminen Kognitiivinen mallintaminen Neuraalimallinnus 1.12. Nelli Salminen nelli.salminen@tkk.fi Tänään ohjelmassa autoassosiaatio, Hopfieldin verkko attraktorin käsite ajan esittäminen hermoverkoissa esimerkkitapaus:

Lisätiedot

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows www.olfellows.net 1.

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows www.olfellows.net 1. Condes Suunnistuksen ratamestariohjelmisto Versio 7 Quick Start opas Yhteystiedot: olfellows Jouni Laaksonen Poijukuja 4 21120 RAISIO jouni.laaksonen@olfellows.net www.olfellows.net olfellows www.olfellows.net

Lisätiedot

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

Lisätiedot

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

E. Oja ja H. Mannila Datasta Tietoon: Luku 2 2. DATASTA TIETOON: MITÄ DATAA; MITÄ TIETOA? 2.1. Data-analyysin ongelma Tulevien vuosien valtava haaste on digitaalisessa muodossa talletetun datan kasvava määrä Arvioita: Yhdysvaltojen kongressin kirjasto

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden

Lisätiedot

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi. Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i

Lisätiedot

TL5503 DSK, laboraatiot (1.5 op) Kuvasignaalit. Jyrki Laitinen

TL5503 DSK, laboraatiot (1.5 op) Kuvasignaalit. Jyrki Laitinen TL553 DSK, laboraatiot (.5 op) Kuvasignaalit Jyrki Laitinen TL553 DSK, laboraatiot (.5 op), K25 Suorita oheisten ohjeiden mukaiset tehtävät Matlab- ja VCDemo-ohjelmistoja käyttäen. Kokoa erilliseen mittauspöytäkirjaan

Lisätiedot

HY / Avoin yliopisto Lineaarialgebra ja matriisilaskenta II, kesä 2015 Harjoitus 1 Ratkaisut palautettava viimeistään maanantaina klo

HY / Avoin yliopisto Lineaarialgebra ja matriisilaskenta II, kesä 2015 Harjoitus 1 Ratkaisut palautettava viimeistään maanantaina klo HY / Avoin yliopisto Lineaarialgebra ja matriisilaskenta II, kesä 2015 Harjoitus 1 Ratkaisut palautettava viimeistään maanantaina 10.8.2015 klo 16.15. Tehtäväsarja I Tutustu lukuun 15, jossa vektoriavaruuden

Lisätiedot

Backpropagation-algoritmi

Backpropagation-algoritmi Backpropagation-algoritmi Hyvin yleisesti käytetty Backpropagation (BP) -algoritmi on verkon halutun ja todellisen vasteen eroa kuvastavan kustannusfunktion minimointiin perustuva menetelmä. Siinä MLP-verkon

Lisätiedot

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

Johdatus tekoälyyn. Luento 6.10.2011: Koneoppiminen. Patrik Hoyer. [ Kysykää ja kommentoikaa luennon aikana! ] Johdatus tekoälyyn Luento 6.10.2011: Koneoppiminen Patrik Hoyer [ Kysykää ja kommentoikaa luennon aikana! ] Koneoppiminen? Määritelmä: kone = tietokone, tietokoneohjelma oppiminen = ongelmanratkaisukyvyn

Lisätiedot

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

Tässä luvussa käsitellään optimaalisten piirteiden valintaa, luokittelijan optimointia ja luokittelijan suorituskyvyn arviointia. 1 Luokittelijan suorituskyvyn optimointi Tässä luvussa käsitellään optimaalisten piirteiden valintaa, luokittelijan optimointia ja luokittelijan suorituskyvyn arviointia. A. Piirteen valinnan menetelmiä

Lisätiedot

Siltaaminen: Piaget Matematiikka Inductive Reasoning OPS Liikennemerkit, Eläinten luokittelu

Siltaaminen: Piaget Matematiikka Inductive Reasoning OPS Liikennemerkit, Eläinten luokittelu Harjoite 2 Tavoiteltava toiminta: Materiaalit: Eteneminen: TUTUSTUTAAN OMINAISUUS- JA Toiminnan tavoite ja kuvaus: SUHDETEHTÄVIEN TUNNISTAMISEEN Kognitiivinen taso: IR: Toiminnallinen taso: Sosiaalinen

Lisätiedot

Kohdeyleisö: toisen vuoden teekkari

Kohdeyleisö: toisen vuoden teekkari Julkinen opetusnäyte Yliopisto-opettajan tehtävä, matematiikka Klo 8:55-9:15 TkT Simo Ali-Löytty Aihe: Lineaarisen yhtälöryhmän pienimmän neliösumman ratkaisu Kohdeyleisö: toisen vuoden teekkari 1 y y

Lisätiedot

Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori

Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori Testitapaukset - Koordinaattieditori Sisällysluettelo 1. Johdanto...3 2. Testattava järjestelmä...4 3. Toiminnallisuuden testitapaukset...5 3.1 Uuden projektin avaaminen...5 3.2 vaa olemassaoleva projekti...6

Lisätiedot

S Laskennallinen Neurotiede

S Laskennallinen Neurotiede S-114.3812 Laskennallinen Neurotiede Laskuharjoitus 3 8.12.2006 Heikki Hyyti 60451P Tehtävä 2 Tehtävässä 2 piti tehdä 100 hermosolun assosiatiivinen Hopfield-muistiverkko. Verkko on rakennettu Matlab-ohjelmaan

Lisätiedot

YipTree.com. hommannimionmatematiikka.com

YipTree.com. hommannimionmatematiikka.com YipTree.com hommannimionmatematiikka.com YipTreen ja Homman nimi on matematiikan plussat Työrauha, työrauha ja työrauha Tuntien aloitus tapahtuu automaattisesti ja nopeasti (edellyttäen että koneet toimii)

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI 1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI 1 1.1 Funktion optimointiin perustuvat klusterointialgoritmit Klusteroinnin onnistumista mittaavan funktion J optimointiin perustuvissa klusterointialgoritmeissä

Lisätiedot

Tekoäly muuttaa arvoketjuja

Tekoäly muuttaa arvoketjuja Tekoäly muuttaa arvoketjuja Näin kartoitat tekoälyn mahdollisuuksia projektissasi Harri Puolitaival Harri Puolitaival Diplomi-insinööri ja yrittäjä Terveysteknologia-alan start-up: Likelle - lämpötilaherkkien

Lisätiedot

Smart Board lukion lyhyen matematiikan opetuksessa

Smart Board lukion lyhyen matematiikan opetuksessa Smart Board lukion lyhyen matematiikan opetuksessa Haasteita opettajalle lukion lyhyen matematiikan opetuksessa ovat havainnollistaminen ja riittämätön aika. Oppitunnin aikana opettaja joutuu usein palamaan

Lisätiedot

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä 3/4+^2 3 4+ 2 Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +^2 3 + 4 2 Kopioi

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot

Älykäs datan tuonti kuljetusongelman optimoinnissa. Antoine Kalmbach

Älykäs datan tuonti kuljetusongelman optimoinnissa. Antoine Kalmbach Älykäs datan tuonti kuljetusongelman optimoinnissa Antoine Kalmbach ane@iki.fi Sisällys Taustaa Kuljetusongelma Datan tuominen vaikeaa Teoriaa Tiedostojen väliset linkit Mikä sarake on mikäkin? Ratkaisutoteutus

Lisätiedot

Tieteellinen laskenta 2 Törmäykset

Tieteellinen laskenta 2 Törmäykset Tieteellinen laskenta 2 Törmäykset Aki Kutvonen Op.nmr 013185860 Sisällysluettelo Ohjelman tekninen dokumentti...3 Yleiskuvaus...3 Kääntöohje...3 Ohjelman yleinen rakenne...4 Esimerkkiajo ja käyttöohje...5

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa

Toinen harjoitustyö. ASCII-grafiikkaa Toinen harjoitustyö ASCII-grafiikkaa Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin itse. Ideoita

Lisätiedot

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Mitä on konvoluutio? Tutustu kuvankäsittelyyn Mitä on konvoluutio? Tutustu kuvankäsittelyyn Tieteenpäivät 2015, Työohje Sami Varjo Johdanto Digitaalinen signaalienkäsittely on tullut osaksi arkipäiväämme niin, ettemme yleensä edes huomaa sen olemassa

Lisätiedot

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I G. Gripenberg Aalto-yliopisto 21. tammikuuta 2016 G. Gripenberg (Aalto-yliopisto) MS-A0207 Differentiaali- ja integraalilaskenta

Lisätiedot

Moottorin kierrosnopeus Tämän harjoituksen jälkeen:

Moottorin kierrosnopeus Tämän harjoituksen jälkeen: Moottorin kierrosnopeus Tämän harjoituksen jälkeen: osaat määrittää moottorin kierrosnopeuden pulssianturin ja Counter-sisääntulon avulla, osaat siirtää manuaalisesti mittaustiedoston LabVIEW:sta MATLABiin,

Lisätiedot

Kokonaislukuaritmetiikka vs. logiikkaluupit

Kokonaislukuaritmetiikka vs. logiikkaluupit Diskreetti matematiikka, syksy 2010 Matlab-harjoitus 3 (18.11. klo 16-18 MP103) Tehtäviin vastataan tälle paperille, osoitettuihin tyhjiin alueisiin, yleensä tyhjille riveille. Tehtävät saa ja on suorastaan

Lisätiedot

Matematiikan tukikurssi, kurssikerta 1

Matematiikan tukikurssi, kurssikerta 1 Matematiikan tukikurssi, kurssikerta 1 1 Joukko-oppia Matematiikassa joukko on mikä tahansa kokoelma objekteja. Esimerkiksi joukkoa A, jonka jäseniä ovat numerot 1, 2 ja 5 merkitään A = {1, 2, 5}. Joukon

Lisätiedot

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

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5. 2. MS-A4/A6 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 5.9.25 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x + x 2

Lisätiedot

BM20A0700, Matematiikka KoTiB2

BM20A0700, Matematiikka KoTiB2 BM20A0700, Matematiikka KoTiB2 Luennot: Matti Alatalo, Harjoitukset: Oppikirja: Kreyszig, E.: Advanced Engineering Mathematics, 8th Edition, John Wiley & Sons, 1999, luku 7. 1 Kurssin sisältö Matriiseihin

Lisätiedot

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,

Lisätiedot

Tentti erilaiset kysymystyypit

Tentti erilaiset kysymystyypit Tentti erilaiset kysymystyypit Monivalinta Monivalintatehtävässä opiskelija valitsee vastauksen valmiiden vastausvaihtoehtojen joukosta. Tehtävään voi olla yksi tai useampi oikea vastaus. Varmista, että

Lisätiedot

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta. Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita

Lisätiedot

Inversio-ongelmien laskennallinen peruskurssi Luento 4

Inversio-ongelmien laskennallinen peruskurssi Luento 4 Inversio-ongelmien laskennallinen peruskurssi Luento 4 Kevät 20 Regularisointi Eräs keino yrittää ratkaista (likimääräisesti) huonosti asetettuja ongelmia on regularisaatio. Regularisoinnissa ongelmaa

Lisätiedot

Puheenkoodaus. Olivatpa kerran iloiset serkukset. PCM, DPCM ja ADPCM

Puheenkoodaus. Olivatpa kerran iloiset serkukset. PCM, DPCM ja ADPCM Puheenkoodaus Olivatpa kerran iloiset serkukset PCM, DPCM ja ADPCM PCM eli pulssikoodimodulaatio Koodaa jokaisen signaalinäytteen binääriseksi (eli vain ykkösiä ja nollia sisältäväksi) luvuksi kvantisointitasolle,

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 1 / 2009 syksy Tentti / 18.12 Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN

Lisätiedot

Johdatus todennäköisyyslaskentaan Normaalijakaumasta johdettuja jakaumia. TKK (c) Ilkka Mellin (2005) 1

Johdatus todennäköisyyslaskentaan Normaalijakaumasta johdettuja jakaumia. TKK (c) Ilkka Mellin (2005) 1 Johdatus todennäköisyyslaskentaan Normaalijakaumasta johdettuja jakaumia TKK (c) Ilkka Mellin (2005) 1 Normaalijakaumasta johdettuja jakaumia Johdanto χ 2 -jakauma F-jakauma t-jakauma TKK (c) Ilkka Mellin

Lisätiedot

Determinantti. Määritelmä

Determinantti. Määritelmä Determinantti Määritelmä Oletetaan, että A on n n-neliömatriisi. Merkitään normaaliin tapaan matriisin A alkioita lyhyesti a ij = A(i, j). (a) Jos n = 1, niin det(a) = a 11. (b) Muussa tapauksessa n det(a)

Lisätiedot

Tekoäly ja koneoppiminen metsävaratiedon apuna

Tekoäly ja koneoppiminen metsävaratiedon apuna Tekoäly ja koneoppiminen metsävaratiedon apuna Arbonaut Oy ja LUT University 26. marraskuuta 2018 Metsätieteen päivä 2018 Koneoppimisen kohteena ovat lukujen sijasta jakaumat Esimerkki 1 Koneoppimisessa

Lisätiedot

SPSS-pikaohje. Jukka Jauhiainen OAMK / Tekniikan yksikkö

SPSS-pikaohje. Jukka Jauhiainen OAMK / Tekniikan yksikkö SPSS-pikaohje Jukka Jauhiainen OAMK / Tekniikan yksikkö SPSS on ohjelmisto tilastollisten aineistojen analysointiin. Hyvinvointiteknologian ATK-luokassa on asennettuna SPSS versio 13.. Huom! Ainakin joissakin

Lisätiedot

SISÄLTÖ. Vuokko Vanhala-Nurmi, 2013 Excel jatko

SISÄLTÖ. Vuokko Vanhala-Nurmi, 2013 Excel jatko Excel 2013 Sisällysluettelo SISÄLTÖ PIVOT-TAULUKKO... 2 Pivot-taulukkoraportti... 2 Pivot-taulukon kokoaminen... 2 Pivot-taulukon muokkaaminen... 4 Kenttien otsikoiden ja jäsentelypainikkeiden piilottaminen...

Lisätiedot

Introduction to Machine Learning

Introduction to Machine Learning Introduction to Machine Learning Aki Koivu 27.10.2016 HUMAN HEALT H ENVIRONMENTAL HEALT H 2016 PerkinElmer Miten tietokone oppii ennustamaan tai tekemään päätöksiä? Historia tiivistettynä Machine Learning

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna. q 0 x solmuina laskennan mahdolliset tilanteet juurena alkutilanne lehtinä tilanteet joista ei siirtymää,

Lisätiedot

GeoGebra-harjoituksia malu-opettajille

GeoGebra-harjoituksia malu-opettajille GeoGebra-harjoituksia malu-opettajille 1. Ohjelman kielen vaihtaminen Mikäli ohjelma ei syystä tai toisesta avaudu toivomallasi kielellä, voit vaihtaa ohjelman käyttöliittymän kielen seuraavasti: 2. Fonttikoon

Lisätiedot

Matematiikan peruskurssi 2

Matematiikan peruskurssi 2 Matematiikan peruskurssi Tentti, 9..06 Tentin kesto: h. Sallitut apuvälineet: kaavakokoelma ja laskin, joka ei kykene graaseen/symboliseen laskentaan Vastaa seuraavista viidestä tehtävästä neljään. Saat

Lisätiedot

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä /+^2 Kirjoita muuten sama, mutta ota välilyönti :n jälkeen / +^2 Kopioi molemmat matematiikka-alueet ja liiku alueen sisällä

Lisätiedot

Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia?

Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia? Muilla kielillä: English Suomi Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia? Kun kaksi fysiikkaoliota törmää toisiinsa, syntyy törmäystapahtuma. Nämä tapahtumat voidaan ottaa kiinni

Lisätiedot

Ohjelmistoradio tehtävät 4. P1: Ekvalisointi ja demodulaatio. OFDM-symbolien generoiminen

Ohjelmistoradio tehtävät 4. P1: Ekvalisointi ja demodulaatio. OFDM-symbolien generoiminen Ohjelmistoradio tehtävät 4 P: Ekvalisointi ja demodulaatio Tässä tehtävässä dekoodata OFDM data joka on sijotetty synknonontisignaalin lälkeen. Synkronointisignaali on sama kuin edellisessä laskutehtävässä.

Lisätiedot

Insinöörimatematiikka D

Insinöörimatematiikka D Insinöörimatematiikka D M. Hirvensalo mikhirve@utu.fi V. Junnila viljun@utu.fi Matematiikan ja tilastotieteen laitos Turun yliopisto 2015 M. Hirvensalo mikhirve@utu.fi V. Junnila viljun@utu.fi Luentokalvot

Lisätiedot

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä

Lisätiedot

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma:

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma: Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0 10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0 100 c. 50 100 3.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Toinen harjoitustyö. ASCII-grafiikkaa 2017 Toinen harjoitustyö ASCII-grafiikkaa 2017 Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt17-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin

Lisätiedot

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit. 3. Muuttujat ja operaatiot Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi.. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen

Lisätiedot

Projektisuunnitelma. Projektin tavoitteet

Projektisuunnitelma. Projektin tavoitteet Projektisuunnitelma Projektin tavoitteet Projektin tarkoituksena on tunnistaa erilaisia esineitä Kinect-kameran avulla. Kinect-kamera on kytkettynä tietokoneeseen, johon projektissa tehdään tunnistuksen

Lisätiedot

Tietorakenteet (syksy 2013)

Tietorakenteet (syksy 2013) Tietorakenteet (syksy 2013) Harjoitus 1 (6.9.2013) Huom. Sinun on osallistuttava perjantain laskuharjoitustilaisuuteen ja tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. Näiden laskuharjoitusten

Lisätiedot