MLP-hermoverkko ja sen soveltaminen kuvien luokitteluun

Samankaltaiset tiedostot
Kuvien (tai muun datan) luokittelusta

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

ImageRecognition toteutus

Johdatus tekoälyn taustalla olevaan matematiikkaan

Inversio-ongelmien laskennallinen peruskurssi Luento 4

Johdatus tekoälyn taustalla olevaan matematiikkaan

JOHDATUS TEKOÄLYYN TEEMU ROOS

Kognitiivinen mallintaminen Neuraalimallinnus, luento 1

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

Johdatus tekoälymatematiikkaan (kurssilla Johdatus Watson-tekn

TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio. Kimmo Berg. Mat Optimointioppi. 9. harjoitus - ratkaisut

Johdatus tekoälyn taustalla olevaan matematiikkaan

JOHDATUS TEKOÄLYYN TEEMU ROOS

MS-C1340 Lineaarialgebra ja

JOHDATUS TEKOÄLYYN TEEMU ROOS

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

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

Luento 8: Epälineaarinen optimointi

1. NEUROVERKKOMENETELMÄT

1. LINEAARISET LUOKITTIMET

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

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

Talousmatematiikan perusteet: Luento 13. Rajoittamaton optimointi Hessen matriisi Ominaisarvot ja vektorit Ääriarvon laadun tarkastelu

Ratkaisuehdotukset LH 7 / vko 47

Backpropagation-algoritmi

1. NEUROVERKKOMENETELMÄT

Kognitiivinen mallintaminen. Nelli Salminen

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

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

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006

Laskennallinen data-analyysi II

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

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

1 Rajoittamaton optimointi

Mat Lineaarinen ohjelmointi

T Neuraalilaskennan perusteet

Oletetaan ensin, että tangenttitaso on olemassa. Nyt pinnalla S on koordinaattiesitys ψ, jolle pätee että kaikilla x V U

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 6: Ääriarvojen luokittelu. Lagrangen kertojat.

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

Inversio-ongelmien laskennallinen peruskurssi Luento 7 8

Numeeriset menetelmät TIEA381. Luento 6. Kirsi Valjus. Jyväskylän yliopisto. Luento 6 () Numeeriset menetelmät / 33

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

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Ei välttämättä, se voi olla esimerkiksi Reuleaux n kolmio:

Luento 8: Epälineaarinen optimointi

Tee-se-itse -tekoäly

Luentorunko perjantaille

Osakesalkun optimointi

Johdatus tekoälyn taustalla olevaan matematiikkaan

Zeon PDF Driver Trial

Numeeriset menetelmät TIEA381. Luento 5. Kirsi Valjus. Jyväskylän yliopisto. Luento 5 () Numeeriset menetelmät / 28

Talousmatematiikan perusteet: Luento 14. Rajoittamaton optimointi Hessen matriisi Ominaisarvot Ääriarvon laadun tarkastelu

Numeeriset menetelmät

12. Hessen matriisi. Ääriarvoteoriaa

Luento 11: Rajoitusehdot. Ulkopistemenetelmät

Luento 10: Optimointitehtävien numeerinen ratkaiseminen; optimointi ilman rajoitusehtoja

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

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

Kohdeyleisö: toisen vuoden teekkari

Diskriminanttianalyysi I

Antti Rasila. Kevät Matematiikan ja systeemianalyysin laitos Aalto-yliopisto. Antti Rasila (Aalto-yliopisto) MS-A0204 Kevät / 16

Etsintä verkosta (Searching from the Web) T Datasta tietoon Heikki Mannila, Jouni Seppänen

Insinöörimatematiikka D

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

SGN-1251 Signaalinkäsittelyn sovellukset Välikoe Heikki Huttunen

x = ( θ θ ia y = ( ) x.

2.5. Matriisin avaruudet ja tunnusluvut

Pienimmän neliösumman menetelmä

MS-A0207 Differentiaali- ja integraalilaskenta 2 Luento 5: Gradientti ja suunnattu derivaatta. Vektoriarvoiset funktiot. Taylor-approksimaatio.

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

Matematiikka B2 - Avoin yliopisto

MS-A0205/MS-A0206 Differentiaali- ja integraalilaskenta 2 Luento 6: Ääriarvojen luokittelu. Lagrangen kertojat.

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

Demo 1: Simplex-menetelmä

4. Lasketaan transienttivirrat ja -jännitteet kuvan piiristä. Piirielimien arvot ovat C =

Kon Konepajojen tuotannonohjaus: ILOG CPLEX Studion käyttö

Likimääräisratkaisut ja regularisaatio

2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio. 2.2 Gaussin eliminaatio

Ohjelmoinnin perusteet Y Python

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

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

Konjugaattigradienttimenetelmä

MS-C1340 Lineaarialgebra ja

Laskennallinen data-analyysi II

Dynaamiset regressiomallit

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

Harjoitus 4: Matlab - Optimization Toolbox

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

SUOMEN AKTUAARIYHDISTYS THE ACTUARIAL SOCIETY OF FINLAND

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1).

SGN Signaalinkäsittelyn perusteet Välikoe Heikki Huttunen

3.1 Lineaarikuvaukset. MS-A0004/A0006 Matriisilaskenta. 3.1 Lineaarikuvaukset. 3.1 Lineaarikuvaukset

Ohjelmoinnin perusteet Y Python

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

Laskennallinen data-analyysi II

Transkriptio:

MLP-hermoverkko ja sen soveltaminen kuvien luokitteluun Konenäkö -kurssin 2008 vierailuluento Tietotekniikan laitos Jyväskylän yliopisto Konenäkö -kurssi, 25.9. ja 30.9.2008

Sisältö 1 Hermoverkon perusidea 2 Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus 3 Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja 4

Sisältö Hermoverkon perusidea 1 Hermoverkon perusidea 2 Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus 3 Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja 4

Neuroni Hermoverkon perusidea http://commons.wikimedia.org/wiki/image:neuron.jpg Hermosoluun saapuu eri lähteistä sähkökemiallisia signaaleja, joiden ylittäessä kynnyksen hermosolu laukeaa ja välittää signaalin eteenpäin. 1950-luvulta asti analogiaa on käytetty pohjana ainakin tietyn laskentamallin markkinoinnissa.

Keinotekoinen neuroni, aktivaatiofunktio Keinotekoinen hermosolu yhdistää herätteet esim. painotetulla summalla. Ulostulo on yksi luku, joka tulee ns. aktivaatiofunktiosta, esim. hyperbolisesta tangentista. Matemaattisesti esim. o = f (b + n i=1 w i(a) i ), missä o on ulostulo, (a) i ovat n kpl syötteitä, w i painokertoimet ja f on aktivaatiofunktio; b on bias- eli painotustermi, joka siirtää aktivaation kynnyspistettä. Demo: Plottaillaan aktivaatiofunktioita Octavella

Kerros, joka koostuu useista neuroneista Laitetaan useita keinotekoisia hermosoluja riviin. Jokaisella neuronilla on omat painokertoimet, ja niissä operoi aktivaatiofunktio. Sekä sisääntulo että ulostulo ovat vektoreita. Matemaattisesti esim. (o l ) j = f j (bj l + n l 1 i=1 w j,i l (ol 1 ) i ), missä o l on ulostulovektori, (o l 1 ) i ovat n l 1 kpl syötteitä, wj,i l on i:nnen syötteen painokerroin j:nnessä neuronissa, f j on aktivaatiofunktio; bj l on j:nnen neuronin bias. Indeksointi l 1 syötevektorille ja l ulostulovektorille ennakoi useiden kerrosten ketjuttamista (seur. kalvo).

Useita kerroksia yhdistämällä saadaan MLP Erikokoisia kerroksia voidaan yhdistää mikä tahansa määrä. Jokaisen kerroksen ulostulo lasketaan periaatteessa samoin. Kerroksen l ulostulo syötetään eteenpäin kerrokselle l + 1 (ilman takaisinkytkentää). Pienellä kikkailulla koko homma painotustermeineen voidaan esittää matriisimuodossa, jossa jokaista kerrosta vastaa yksi kerroinmatriisi ja yksi funktiomatriisi...

MLP:n ulostulo matriisimuodossa Kompakti esitystapa MLP:lle on o 0 = x, o l = F l (W l ô (l 1) ) for l = 1,..., L. (1) Tässä x on syötevektori. Se asetetaan nollannen kerroksen ulostuloksi. Kunkin kerroksen ulostulon kaavassa on erikoismerkintä ô (l 1). Se tarkoittaa operaatiota, jossa vektorin alkuun lisätään ylimääräinen ykkönen. Silloin bias-termit voidaan sijoittaa kutakin kerrosta vastaavan matriisin W l ensimmäiseksi sarakkeeksi ja vaikutus on sama kuin edellä esitettiin. F l puolestaan tarkoittaa sitä, että sovelletaan aktivaatiofunktiota vektorin alkioihin.

Lisähuomioita perus-mlp:stä Aktivaatiofunktioiksi valitaan usein logistinen sigmoidi tai hyperbolinen tangentti. Ovat derivoituvia. Kannattanee olla sama aktivaatiofunktio kaikilla kerroksilla. Viimeisellä kerroksella jätetään usein aktivaatio pois. Näin ollen ulostulojen arvot eivät rajoitu välille [0, 1] (logsig) tai [ 1, 1] (tansig). Riippuu tilanteesta, mitä halutaan.

Hermoverkon sovelluksia MLP on universaali approksimaattori: Matemaattisesti voidaan osoittaa, että mitä tahansa kuvausta voi approksimoida mielivaltaisen tarkasti valitsemalla riittävä määrä neuroneita ja sopivat kertoimet. (Tämä ei anna mitään konstruktiota sille, miten valinta tulisi tehdä!) Tällainen värkki soveltunee siis ilmeisen hyvin tuntemattoman funktion approksimointiin. Muita sovelluksia luokittelu, kohinan poisto,... Ks. kirjallisuus hakusanalla Neural network tai ensihätään esim. http://en.wikipedia.org/wiki/artificial_neural_network

Muita neuraaliarkkitehtuureja Edellä esitettiin yksinkertainen feed-forward eli eteenpäin syöttävä keinotekoinen hermoverkko. Takaisinsyöttö on mahdollinen, jolloin hermoverkosta tulee ajan suhteen elävä olio, jonka sisäinen tila muuttuu syötteen perusteella. Laskenta on niille vaativampaa, mutta ne toimivat luonnollisemmin mm. aikasarjoihin sovellettaessa. Radial basis function networks Itseorganisoituvat verkot Ks. kirjallisuus hakusanoilla Neural network recurrent/self-organizing tai ensihätään se http://en.wikipedia.org/wiki/artificial_neural_network

Transhumanistinen singulariteetti vuonna 2015? Eräänä päivänä ihminen ohjelmoi ihmistä itseään älykkäämmän koneen? (Ks. Matrix-elokuva)

Transhumanistinen singulariteetti vuonna 2015? Eräänä päivänä ihminen ohjelmoi ihmistä itseään älykkäämmän koneen? (Ks. Matrix-elokuva) Realiteetti on, että nykytietokoneella esim. keinotekoinen hermoverkko kykenee käsittelemään luokkaa 10 5 :n neuronin (varsin yksinkertaistettua) mallia kun taas eräs arvio ihmisaivojen hermosolumäärälle on luokkaa 10 12.

Transhumanistinen singulariteetti vuonna 2015? Eräänä päivänä ihminen ohjelmoi ihmistä itseään älykkäämmän koneen? (Ks. Matrix-elokuva) Realiteetti on, että nykytietokoneella esim. keinotekoinen hermoverkko kykenee käsittelemään luokkaa 10 5 :n neuronin (varsin yksinkertaistettua) mallia kun taas eräs arvio ihmisaivojen hermosolumäärälle on luokkaa 10 12. Ilmeisesti ihmiskunta on monen teknisen innovaation päässä omien koneidensa jalkoihin jäämisestä!

Transhumanistinen singulariteetti vuonna 2015? Eräänä päivänä ihminen ohjelmoi ihmistä itseään älykkäämmän koneen? (Ks. Matrix-elokuva) Realiteetti on, että nykytietokoneella esim. keinotekoinen hermoverkko kykenee käsittelemään luokkaa 10 5 :n neuronin (varsin yksinkertaistettua) mallia kun taas eräs arvio ihmisaivojen hermosolumäärälle on luokkaa 10 12. Ilmeisesti ihmiskunta on monen teknisen innovaation päässä omien koneidensa jalkoihin jäämisestä! Ei siis huolta vielä vuonna 2015.

Sisältö Hermoverkon perusidea Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus 1 Hermoverkon perusidea 2 Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus 3 Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja 4

Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus Tavoiteen asettaminen: Millainen verkko halutaan? Esimerkkinä luokittelu: Olkoon tarkoituksena että MLP kuvaa syötevektorin tiettyyn kategoriaan: esim. onko digikuvassa lintu, lentokone vai päärynä. Tai kohinanpoistaja, jolle ei ole suoraan tiedossa mallia: Olkoon tarkoituksena että MLP kuvaa syötteenä olevan häiriöisen digikuvan mahdollisimman häiriöttömäksi vastineeksi.

Kaikki vektoreiksi Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus MLP syö ja tulostaa vektoreita, joten kaikki on koodattava numeerisiksi vektoreiksi. Esim. kuva on kaksiulotteinen, joten täytyy esim. liittää pikselirivit peräkkäin yksiulotteiseksi vektoriksi. Käytännössä toimitaan piirteiden kanssa, ei alkuperäisten bittikarttojen. Ne ovat liian isoja (ellei tehtävänä ole jonkin lokaalin kohteen tarkastelu, esim. 5x5 pikselin alueen pakkaaminen pienempään tallennustilaan)

Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus Kategoristen piirteiden ja tulosteiden koodaus Joku piirre voi olla ns. kategorinen, jollainen on mukava kirjoittaa vaikkapa kokonaislukuna (esim. 1=kuvattu web-kameralla, 2=kuvattu järkkärillä, 3=kaapattu TV-lähetyksestä). Hermoverkon luonteesta johtuen tällaiset on syytä esittää binäärivektoreina, esim. [1-1 -1] = kuvattu web-kameralla, [-1 1-1] = kuvattu järkkärillä. [-1-1 1] = kaapattu TV:stä Sama pätee luokittelutehtävän tulosten eli luokkien koodaamiseen. Syy: Luokkien etäisyys kaikista muista luokista tulee olla sama.

Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus Kustannusfunktio: kuinka huonosti verkko toimii Arvioidaan sitä, miten huonosti verkko toimii! Yritetään löytää huonoutta kuvaavan funktion minimikohta. Esim. keskimääräinen virhe J({W}) = 1 N 2N i=1 N (x i) y i 2 missä N (x i ) on hermoverkon tuloste opetusvektorille x i ja y i on tunnettu totuus siitä, mihin ideaalinen hermoverkko kuvaisi x i :n. Tämä formulointihan näyttää pienimmän neliösumman tehtävältä...

Opetus-, validointi- ja testijoukko Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus Haluamme verkon, joka luokittelee ennaltanäkemätöntä aineistoa mahdollisimman hyvin. Saatavilla oleva aineisto on ns. opetusjoukko. Voi olla myös validointijoukko, jota käytetään opettamisen yhteydessä. (Lopetetaan ennen ylioppimista.) Parhaimmillaan on myös testijoukko, jonka avulla varmistutaan opetetun verkon laadusta. Validointi- ja testijoukko lohkaistaan käytettävissä olevasta opetusaineistosta. Mieluiten sitä siis olisi paljon! Verkon toimivuus riippuu siitä, miten hyvin opetuksessa käytetyt vektorit vastaavat todellisuutta (ja miten hyvin kustannusfunktio on kyetty minimoimaan).

Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus Miten kunkin painon muuttaminen vaikuttaa kustannusfunktioon Merkitään i:nnen opetusvektoriparin aiheuttamaa virhettä e i = N ({W l })(x i ) y i. Osoittautuu, että edellä mainitun kustannusfunktion gradientti voidaan laskea iteratiivisesti matriisimuodossa virheen etenemisen (backpropagation) avulla: missä W l J({W l }) = 1 N N i=1 ξ l i [ô (l 1) i ] T, ξ L i = e i, ξ l i = Diag{(F l ) (W l ô (l 1) i )} (W (l+1) 1 ) T ξ (l+1) i. (3) Kaavassa W (l+1) 1 on matriisi, joka saadaan poistamalla W (l+1) :stä ensimmäinen sarake, jossa on neuronien bias-termit. (2)

Miten huonous minimoidaan Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus Nyt osataan laskea kustannuksen gradientti! Voidaan käyttää esim. jyrkimmän laskun menetelmää: Jokaisella kierroksella jokaisesta painosta vähennetään vakiokertoimella kerrottu osittaisderivaattansa. Pikkuhiljaa verkko konvergoi varmasti kustannusfunktion lokaaliin minimiin, mikäli askelpituus on riittävän pieni.

Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus Muita opetusmenetelmiä ja formulointeja Edellä esitettiin derivoituva kustannusfunktio sekä ehkä yksinkertaisin mahdollinen kustannusfunktion gradienttiin perustuva opetusmenetelmä. Optimointi on tieteenala, joka kehittää jatkuvasti tehokkaampia ja luotettavampia menetelmiä funktion minimointiin. MLP:lle soveltuvia menetelmiä ovat mm. konjugaattigradienttimenetelmät, BFGS-menetelmä, Levenberg-Marquardt,... Mikä ettei myös geneettiset algoritmit! Kustannus voidaan formuloida myös eri tavoin, mm. epäsileäksi funktioksi (jolla ei siis ole kaikkialla gradienttia). Siihenkin on olemassa menetelmiä! Eli ei muuta kuin kirjastoon, hakusana optimization

Sisältö Hermoverkon perusidea Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja 1 Hermoverkon perusidea 2 Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus 3 Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja 4

Esimerkkiohjelmat Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja Katsotaan Matlab-koodia. (Käy myös Octaveen) Testiohjelmana oli varsin yksinkertainen funktioapproksimointi hyvin pienellä opetusjoukolla treenattuna. (Tähän päättyy torstain 25.9.2008 osuus)

Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja Kuvien tunnistaminen piirteiden avulla (Tästä alkaa tiistain 30.9.2008 osuus) Kokeillaan koodia Villen irrottamiin piirteisiin, ja yritetään luokitella ankkoja ym. Samalla tutustutaan testijoukon käyttöön sekä confusion matrix -tulosteeseen Tehdään myös variaatioita verkon kokoon ym. ja katsotaan vaikutusta. Kuvien alkuperä: Columbia University Image Library (COIL-20) http://www1.cs.columbia.edu/cave/software/softlib/coil-20.php

Pitkät piirrevektorit, dimensiokirous Ongelma: Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja Mitä enemmän numeroita piirrevektorissa, sitä enemmän painokertoimia optimoitavana Dimensiokirous : N-ulotteisen avaruuden tilavuudet ja etäisyydet karkaavat käsistä kun N on iso Laskenta hitaampaa ja globaalin optimin löytyminen epävarmempaa Optimointimenetelmät koetuksella myös muistinkäytön suhteen (mm. N 2 -kokoisen Hessen matriisin approksimointi) Epäolennaiset piirteet sekoittavat oppimista Ratkaisuna esimerkiksi: Dimensioreduktio: olennaisimpien piirteiden valitseminen Yksinkertaisimpia keinoja esim. PCA

Suo siellä lokaalit optimit Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja Ongelma: Nopeat, gradienttiin perustuvat optimointimenetelmät löytävät määrittelynsä perusteella lokaalin optimin. Millekään menetelmälle ei voida luvata sen löytävän mistä tahansa funktiosta aina globaalin minimin. Hermoverkon kustannus on mutkikas funktio minimoitavaksi. Ratkaisuna esimerkiksi: Niin vähän neuroneita kuin sovellus sallii. Paljon satunnaisia aloituspisteitä, joista uusi optimointi. Geneettiset algoritmit. Kustannusfunktion ns. regularisointi sakkotermein.

Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja Suuren aineiston ongelmia ja ratkaisuja Ongelma: Opetusaineistoa on paljon (mikä on tietysti hyvä asia). Kustannuksen laskeminen kuitenkin hidastuu lineaarisesti opetusaineiston määrän suhteen. Jos aineisto ei mahdu kerralla muistiin, joudutaan hankaluuksiin. Ratkaisuna esimerkiksi: Valitaan pienempi otanta opetusaineistoksi. Esim. jonkin metriikan mukaan eniten luokkien välisiä eroja kuvaava aineisto Tai sitten satunnaisesti, toivoen että pieni otanta kuvaa alkuperäisen ominaisuuksia hyvin.

Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja Pienen aineiston ongelmia ja ratkaisuja Ongelma: Opetusaineistoa on vähän. Jakaminen validointi- ja testijoukkoihin pienentää varsinaista opetusjoukkoa tuntuvasti. Luokittelija ylioppii opetusjoukon, eikä sillä ole käytössään kaikkea informaatiota. Ratkaisuna esimerkiksi: Ns. cross-validation: Jätetään yksi opetusesimerkki kerrallaan validointia varten, opetetaan kaikilla muilla ja katsotaan luokittuuko poisjätetty oikein. Saadaan jonkinlainen kuva ja luottamus siihen, miten käy kun koko aineisto käytetään opetukseen. Ylioppimista voidaan säännöstellä validointijoukon lisäksi kustannusfunktion regularisoinnilla (auttaa myös minimointia).

Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja Hankalan aineiston ongelmia ja ratkaisuja Ongelma: Se ei opi yhtään mitään Se oppii kaiken muun, mutta tietyt luokat keskenään sekaisin Ratkaisuna esimerkiksi: Onko piirteiden valinta mennyt oikein? Kokeillaan eri piirteitä. Onko opetusaineisto OK? Jos siellä on vääriä luokituksia tai liian kohinaista dataa, ei luokitinta voi opettaa. Käydään aineisto läpi. Käytetään maalaisjärkeä: Esim. jos erilaiset autot erottuvat kumiankoista ym. mutta luokittuvat keskenään sekaisin, ehkä voidaan tehdä erillinen luokitin tunnistamaan pelkästään autoja keskenään. Muodostetaan siis puumaisesti etenevä luokitin. Soveltuuko joku muu luokittelumenetelmä paremmin kuin MLP! Kaikki riippuu datasta, mm. se mikä menetelmä kannattaa valita.

Sisältö 1 Hermoverkon perusidea 2 Datan koodaaminen hermoverkolle sopivaksi Verkon hyvyyden/huonouden arviointi Backpropagation -opetus 3 Ohjelmakoodia Sovellusesimerkki Käytännön ongelmia ja ratkaisuja 4

Tämä oli kahden luennon mittainen esitys MLP-tyyppisen keinotekoisen hermoverkon soveltamisesta kuvien luokittelemiseen: Luonnon hermosolustoa jäljittelevä menetelmä voidaan kuvata matriisilaskujen ja aktivaatiofunktioiden avulla. Pari kuvaruudullista Matlab-koodia riittää toimivan toteutuksen luomiseen. Esim. C:llä tai Javalla on toteutettava matriisilaskut tai käytettävä valmista kirjastoa. Gradienttipohjaiset optimointimenetelmät käyvät opetukseen. Käytetään useimmiten opetus-, validointi- ja testijoukkoa. Lähtödatan kuten kuvien piirteistäminen ja aineiston esikäsittely (valinta, skaalaus, dimensioreduktio ym.) on erittäin tärkeää. Demonstroitiin COIL-20 -kuvilla; lähes 100% luokittelija lienee mahdollinen, jos opetettaisiin tarkentavat luokittimet keskenään samantyyppisille esineille.