JAANA KORPELA KÄSINKIRJOITETTUJEN NUMEROIDEN TUNNISTUS NEU- ROVERKKOJEN AVULLA. Kandidaatintyö
|
|
- Hannu Nurminen
- 6 vuotta sitten
- Katselukertoja:
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 Sami Hokuni 12 Syyskuuta, 2012 1/ 54 Sami Hokuni Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Turun Yliopisto. Gradu tehty 2012 kevään
LisätiedotJohdatus 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ätiedotImageRecognition 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ätiedotTee-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ätiedotJohdatus 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ätiedotKognitiivinen 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ätiedotKognitiivinen 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ätiedotTä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ätiedotJohdatus 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ätiedotJohdatus 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ätiedotTEEMU 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ätiedotJohdatus 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ätiedotJohdatus 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ätiedotJOHDATUS 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ätiedotJOHDATUS 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ätiedotJOHDATUS 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ätiedotTekoä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ätiedotTilastotiede 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ätiedot1. 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ätiedotPuheentunnistus. 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ätiedotValokuvien 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ätiedotTilastotiede 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ätiedotTä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ätiedotLaskut 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ätiedotSovellettu 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ätiedotS09 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ätiedotMatriisit, 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ätiedotLaskuharjoitus 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ätiedotTä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ätiedotRatkaisuehdotukset 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ätiedot1. 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ätiedotMatriisit, 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ätiedotTekoä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ätiedotJohdantoa. 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ätiedotS-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ätiedotTilastolliset 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ätiedotMatriisit, 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ätiedotYKSIKÖ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ätiedotOhjelmoinnin 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ätiedotTAMPEREEN 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ätiedotKognitiivinen 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ätiedotCondes. 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ätiedotMatriisit 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ätiedotE. 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ätiedotMatematiikan 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ätiedot1 + 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ätiedotTL5503 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ätiedotHY / 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ätiedotBackpropagation-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ätiedotJohdatus 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ätiedotTä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ätiedotSiltaaminen: 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ätiedotKohdeyleisö: 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ätiedotTeknillinen 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ätiedotS 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ätiedotYipTree.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ätiedotOsoitin 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ätiedot1. 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ätiedotTekoä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ätiedotSmart 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ätiedotPERUSLASKUJA. 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ätiedotDatatä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 ane@iki.fi Sisällys Taustaa Kuljetusongelma Datan tuominen vaikeaa Teoriaa Tiedostojen väliset linkit Mikä sarake on mikäkin? Ratkaisutoteutus
LisätiedotTieteellinen 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ätiedotToinen 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ätiedotMitä 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ätiedotMS-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ätiedotMoottorin 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ätiedotKokonaislukuaritmetiikka 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ätiedotMatematiikan 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ätiedotA 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ätiedotYhtä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ätiedotBM20A0700, 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ätiedotRekursiolause. 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ätiedotTentti 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ätiedotKirjoita 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ätiedotInversio-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ätiedotPuheenkoodaus. 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ätiedotOhjelmointi 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ätiedotJohdatus 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ätiedotDeterminantti. 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ätiedotTekoä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ätiedotSPSS-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ätiedotSISÄ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ätiedotIntroduction 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ätiedotOhjelmoinnin 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ätiedotEpä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ätiedotGeoGebra-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ätiedotMatematiikan 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ätiedotPERUSLASKUJA. 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ätiedotJypelin 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ätiedotOhjelmistoradio 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ätiedotInsinöö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ätiedotPong-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ätiedotKerta 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ätiedotOhjelmoinnin 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ätiedotToinen 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ätiedotSisä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ätiedotProjektisuunnitelma. 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ätiedotTietorakenteet (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