Kuvien (tai muun datan) luokittelusta

Samankaltaiset tiedostot
MLP-hermoverkko ja sen soveltaminen kuvien luokitteluun

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

Johdatus tekoälyn taustalla olevaan matematiikkaan

Johdatus tekoälyn taustalla olevaan matematiikkaan

ImageRecognition toteutus

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

Johdatus tekoälyn taustalla olevaan matematiikkaan

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

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

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

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

JOHDATUS TEKOÄLYYN TEEMU ROOS

Johdatus tekoälymatematiikkaan (kurssilla Johdatus Watson-tekn

1. NEUROVERKKOMENETELMÄT

JOHDATUS TEKOÄLYYN TEEMU ROOS

Kognitiivinen mallintaminen Neuraalimallinnus, luento 1

JOHDATUS TEKOÄLYYN TEEMU ROOS

Numeeriset menetelmät

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

Backpropagation-algoritmi

Johdatus tekoälyn taustalla olevaan matematiikkaan

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

1. NEUROVERKKOMENETELMÄT

2.5. Matriisin avaruudet ja tunnusluvut

Luento 8: Epälineaarinen optimointi

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

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

Kognitiivinen mallintaminen. Nelli Salminen

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

Talousmatematiikan perusteet: Luento 6. Derivaatta ja derivaattafunktio Derivointisääntöjä Ääriarvot ja toinen derivaatta

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

Luku 14 - Koneoppiminen ja luokittelu

Tee-se-itse -tekoäly

Luento 8: Epälineaarinen optimointi

Luentorunko perjantaille

12. Hessen matriisi. Ääriarvoteoriaa

805306A Johdatus monimuuttujamenetelmiin, 5 op

MS-C1340 Lineaarialgebra ja

jens 1 matti Etäisyydet 1: 1.1 2: 1.4 3: 1.8 4: 2.0 5: 3.0 6: 3.6 7: 4.0 zetor

Laskennan vaativuus ja NP-täydelliset ongelmat

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

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi

Ohjelmointi 1 / syksy /20: IDE

805306A Johdatus monimuuttujamenetelmiin, 5 op

Johdatus verkkoteoriaan 4. luento

Ongelmien ja menetelmien tyypittelyä. Käyttötarkoituksia. Konsistentti ja epäkonsistentti data. Esimerkki: Deterministinen luokittelu

Inversio-ongelmien laskennallinen peruskurssi Luento 4

Mat Lineaarinen ohjelmointi

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

Talousmatematiikan perusteet: Luento 6. Derivaatta ja derivaattafunktio Derivointisääntöjä Ääriarvot ja toinen derivaatta

Talousmatematiikan perusteet: Luento 10. Lineaarikuvaus Matriisin aste Determinantti Käänteismatriisi

1. LINEAARISET LUOKITTIMET (jatkoa)

Seuraavassa taulukossa on annettu mittojen määritelmät ja sijoitettu luvut. = 40% = 67% 6 = 0.06% = 99.92% 6+2 = 0.

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 4: Derivaatta

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

Mistä on kyse? Pilvien luokittelu satelliittikuvissa. Sisältö. Satelliittikartoitus. Rami Rautkorpi Satelliittikartoitus

1 Rajoittamaton optimointi

Tietotekniikan valintakoe

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

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

1. LINEAARISET LUOKITTIMET

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

Johdatus tekoälyn taustalla olevaan matematiikkaan

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

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

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

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

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Simplex-algoritmi. T Informaatiotekniikan seminaari , Susanna Moisala

Ohjelmoinnin perusteet Y Python

Algoritmit 1. Luento 1 Ti Timo Männikkö

Ohjelmoinnin perusteet, syksy 2006

Dynaamiset regressiomallit

Poikkeavuuksien havainnointi (palvelinlokeista)

2D piirrelaskennan alkeet, osa I

Koodausteoria, Kesä 2014

Pienimmän neliösumman menetelmä

f(x 1, x 2 ) = x x 1 k 1 k 2 k 1, k 2 x 2 1, 0 1 f(1, 1)h 1 = h = h 2 1, 1 12 f(1, 1)h 1 h 2

MS-A0102 Differentiaali- ja integraalilaskenta 1

SUOMEN AKTUAARIYHDISTYS THE ACTUARIAL SOCIETY OF FINLAND

Matematiikka B2 - TUDI

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

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

Lineaarisen kokonaislukuoptimointitehtävän ratkaiseminen

ALGORITMIT & OPPIMINEN

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

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

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37

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

Insinöörimatematiikka D

Data Envelopment Analysis (DEA) - menetelmät + CCR-DEA-menetelmä

T Neuraalilaskennan perusteet

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

Mat. tukikurssi 27.3.

Luento 9: Newtonin iteraation sovellus: optimointiongelma

1. TILASTOLLINEN HAHMONTUNNISTUS

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

Transkriptio:

Konenäkö -kurssin 2010 materiaalia Tietotekniikan laitos Jyväskylän yliopisto Konenäkö -kurssi, 16.11.2010

Sisältö Automaattinen luokittelu 1 Automaattinen luokittelu Tavoite: esimerkiksi kirjaintunnistus (OCR) Esikäsittely Datan piirteytys, miksi ja miten 2 Perusmenetelmä: lähimmät naapurit Täydellinen luokittelu usein mahdotonta Kuinka hyvin luokittuu? Sekaannusmatriisi Erilaisia luokittimia 3

Tavoite: esimerkiksi kirjaintunnistus (OCR) Esikäsittely Datan piirteytys, miksi ja miten Mitä on luokittelu? Miksi automatisoida se? Luokittelu on vastauksen hakemista esim. tällaisiin: Kuulostaako musiikkikappale Abbalta vai Beatlesiltä? Onko valokuvassa Ananas, Banaani vai Cayennepippuri? Onko kuvassa kirjain A, B, vai C, D, E, F,..., Ä,...? Luokittelu, eli kategorian tunnistaminen, on ihmiselle usein helppoa, jos hänellä on riittävästi kokemusta aihepiiristä. Ihminen on kuitenkin aika hidas luokittelija jos täytyisi tunnistaa 100 000 kuvaa, haluaisimme tietokoneen tekevän tämän automaattisesti, ettei työ kestäisi vuosikausia.

Esimerkki: kirjaintunnistus Tavoite: esimerkiksi kirjaintunnistus (OCR) Esikäsittely Datan piirteytys, miksi ja miten Mikä 80-numeroinen luku tässä on: (ensimmäiset 80 merkkiä MNIST -datasta http://yann.lecun.com/exdb/mnist/) Optinen merkintunnistus (optical character recognition, OCR): Sovelluksina kirjojen digitointi, lomakkeiden, postinumeroiden ym. käsittely,... Vähentää manuaalista työtä kummasti! Saattaapi olla haasteellista (esim. erilaiset käsialat) Merkintunnistus on vain yksi esimerkki kuvan luokittelusta...

Tavoite: esimerkiksi kirjaintunnistus (OCR) Esikäsittely Datan piirteytys, miksi ja miten Muita esimerkkejä: pohjaeläimet, paperin viat Viimeaikaista tutkimusta Jyväskylän yliopiston tietotekniikan laitoksella: Tuotevikojen havainnointi ja luokittelu paperirainasta otetuista kuvista. Pohjaeläimien lajintunnistus biomonitorointia varten (kuva oikealla). Kuvan tai sen osasen tunnistaminen on yleensä osa laajempaa järjestelmää/sovellusta, joka sitä hyödyntää em. esimerkeissä siis tekstin digitointi, paperin vika-analyysi, vesistöjen tilan kartoitus.

Tavoite: esimerkiksi kirjaintunnistus (OCR) Esikäsittely Datan piirteytys, miksi ja miten Tavoite: luokittelija on oppiva järjestelmä Tavoitteena on tietysti luoda sellainen luokittelija, joka osaa luokitella kuvia, joita se ei ole aikaisemmin nähnyt (mutta jotka oletettavasti kuuluvat niihin luokkiin, joiden tunnistamiseksi se on tehty, esim. kirjoitettuihin merkkeihin). Luokittelijalla täytyy olla jonkinlainen muisti. Käytetään ns. opetusaineistoa, jonka luokat tunnetaan ja joka syötetään luokittelijalle ennen kuin se päästetään kentälle töihin. Tarvitaan oppivia ja muistavia algoritmeja. Algoritmien testaamiseen ja vertailuun käytetään testiaineistoa, jonka luokittelu myös tunnetaan, mutta jossa ei ole samoja yksilöitä kuin opetusaineistossa.

Esikäsittely Automaattinen luokittelu Tavoite: esimerkiksi kirjaintunnistus (OCR) Esikäsittely Datan piirteytys, miksi ja miten Luokittelu tehdään tyypillisesti erikseen jokaiselle osakuvalle, joka on kiinnostava (esim. yksi merkki tekstin osana, yksi pohjaeläin monista, maamerkki kaupunki- tai maastokuvassa, yhdet kasvot valvontakamerassa... ). Kiinnostava(t) osakuva(t) löydetään esikäsittelymenetelmin, jollaisia kurssilla on tähän asti käsitelty (kynnystykset, reunahaut ym.). Pikselidatan perusteella ei kannata luokitella (liian paljon dataa, ei siirto-/rotaatioinvarianssia) vaan on syytä hakea pienempi määrä hyödyllisiä piirteitä (pinta-alat, histogrammit, fourier descriptorit ym.) joiden perusteella eri luokkiin kuuluvat kuvat toivottavasti erottuvat.

Tavoite: esimerkiksi kirjaintunnistus (OCR) Esikäsittely Datan piirteytys, miksi ja miten Oppikirjaesimerkki: koripalloilijat ja ratsastajat Piirrevektoriin on kerätty objektia kuvaavia suureita eli piirteitä. Henkilöitä kuvaavia piirteitä voisivat olla pituus ja paino. Seuraavassa kuvassa (adaptoitu kurssin oppikirjasta) voisi olla koripalloilijoita (X) ja ratsastajia (o) merkittynä piirreavaruuteen: Kahden piirteen avaruus voidaan visualisoida, mutta oikeasti luokitteluun tarvitaan varmasti useampia. Menetelmät ja käsitteet yleistyvät n-ulotteiseen piirreavaruuteen.

Perusmenetelmä: lähimmät naapurit Muistina referenssijoukko, jonka luokitus tunnetaan. Pyritään tunnistamaan uusi, ennennäkemätön datapiste. Valitaan K kpl lähintä naapuria referenssijoukosta. Annetaan vastaukseksi se luokka, johon kuuluu enemmistö tästä lähinaapurustosta. Perusmenetelmä: lähimmät naapurit Täydellinen luokittelu usein mahdotonta Kuinka hyvin luokittuu? Sekaannusmatriisi Erilaisia luokittimia

Perusmenetelmä: lähimmät naapurit Täydellinen luokittelu usein mahdotonta Kuinka hyvin luokittuu? Sekaannusmatriisi Erilaisia luokittimia Epätriviaaliin tehtävään ei löydy täydellistä ratkaisua Reaalimaailmassa meillä on: Häiriöinen ja epätäydellinen syöte (kaikkea kohinaa ja epäfokusta ei saada pois millään) Päällekkäiset jakaumat (vrt. MNIST-kuvat: onko merkki 3 vai huonosti piirretty 5? Onko 1, 7, vai 9? Rotaatioinvariantti piirre merkeille 6 ja 9 tekisi mitä?) Voi olla täysin mahdotonta saada 100% tarkka luokittelu. Teoreettista maksimia ei edes voida tietää! Lisäksi (ainakin): Virheet mahdollisia opetusaineiston keräämisessä tai tallennuksessa. Mitä luokittelumenetelmää kannattaa käyttää, riippuu sovelluksesta. Testiaineiston avulla haetaan tunnuslukuja, joilla algoritmien pätevyyttä voidaan vertailla.

Sekaannusmatriisi (confusion matrix) Perusmenetelmä: lähimmät naapurit Täydellinen luokittelu usein mahdotonta Kuinka hyvin luokittuu? Sekaannusmatriisi Erilaisia luokittimia Binääriluokitin ( onko kuvassa juuri tietty numero?) antaa vastauksen kyllä (positiivinen) tai ei (negatiivinen). Toinen sana luokittimen arvaukselle on ennuste. Se voi sitten olla oikein tai väärin verrattuna testiaineiston tunnettuun totuuteen. Oikein ja väärin menneiden testiennusteiden lukumäärät merkitään nelikenttään nimeltä sekaannusmatriisi (confusion matrix): totuus pos. neg. ennuste pos. TP FP ennuste neg. FN TN Luvuille käytetään kuvaavia nimiä: TP=true positive, FP=false positive, FN=false negative, TN=true negative. Yleinen onnistumisprosentti on (TP+TN) / (TP+FP+FN+TN). Sensitiivisyys TP / (TP+FN). Spesifisyys TN / (TN+FP).

Sekaannusmatriisi monelle luokalle Perusmenetelmä: lähimmät naapurit Täydellinen luokittelu usein mahdotonta Kuinka hyvin luokittuu? Sekaannusmatriisi Erilaisia luokittimia Monen luokan luokittimelle voidaan tehdä samanlainen taulukko: totuus 1 2 3 4 ennuste 1 o v v v ennuste 2 v o v v ennuste 3 v v o v ennuste 4 v v v o Oikeiden ennusteiden määrät voidaan lukea diagonaalilta. Väärin menneistä nähdään mm. mitkä luokat mahdollisesti sekoittuvat helpoiten keskenään.

Erilaisia luokittimia Perusmenetelmä: lähimmät naapurit Täydellinen luokittelu usein mahdotonta Kuinka hyvin luokittuu? Sekaannusmatriisi Erilaisia luokittimia Luokitusmenetelmiä on monia, mm.: lähin naapurusto hermoverkot tukivektorikoneet päätöspuut Käydään seuraavaksi tarkemmin läpi vaikkapa eräs hermoverkko.

Neuroni http://commons.wikimedia.org/wiki/image:neuron.jpg Luonnon hermosolu inspiraationa matemaattiselle mallille: Hermosoluun saapuu eri lähteistä sähkökemiallisia signaaleja. Mikäli signaalien summa ylittää tietyn kynnyksen, hermosolu laukeaa ja välittää signaalin eteenpäin.

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 (logsig, tanh eri biaseilla ja jyrkkyysparametreilla)

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 (MLP = multilayer perceptron ) 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 (ei takaisinkytkentöjä; feedback-hermoverkot ovat toinen stoorinsa). 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.

Luokkien koodaaminen monikerrosverkolle Luokat koodataan binäärivektoreina, esim: (1, 1, 1) = ananas, ( 1, 1, 1) = banaani, ( 1, 1, 1) = cayennepippuri. Hermoverkko kuvaa datan luokitteluavaruuteen; tulokseksi voi ottaa lähimmän prototyyppipisteen. Etäisyys koodivektorista kuvaa tietyllä tapaa luokitustuloksen epävarmuutta.

Lisähuomioita perus-mlp:stä Hermoverkon iloja ovat mm. epälineaarisuus (käyrät jakopinnat), yleispätevyys (teoriassa voi approksimoida mitä tahansa jatkuvaa funktiota), laskennan rinnakkaistuvuus, kiehtova biologinen analogia (joskin nykytiedon valossa epärealistinen). Aktivaatiofunktioiksi valitaan usein logistinen sigmoidi tai hyperbolinen tangentti. Ovat derivoituvia, minkä hyöty selviää seuraavilla kalvoilla. Kannattanee olla sama aktivaatiofunktio kaikilla kerroksilla. Viimeisellä kerroksella voi käyttää lineaarista aktivaatiofunktiota. Näin ollen ulostulojen arvot eivät rajoitu välille [0, 1] (logsig) tai [ 1, 1] (tanh). Riippuu tilanteesta, mitä halutaan.

Kustannusfunktio: kuinka huonosti verkko toimii Verkon opettamisen tavoitteena on saada piirrevektorit kuvautumaan mahdollisimman lähelle todellisen luokan koodausta. (Opetusdatalle tämä on liiankin helppoa; tärkeintä on varmistaa että kuvaus yleistyy testidatalle). Arvioidaan sitä, miten huonosti verkko toimii! Yritetään löytää huonoutta kuvaavan funktion minimikohta. Kustannukseksi käy 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.

Backpropagation -opetus 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: W l J({W l }) = 1 N N i=1 ξ l i [ô (l 1) i ] T, missä (aloittaen viimeisestä eli L:nnestä kerroksesta) ξ 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 Koska käytettävissä on kustannuksen gradientti, voidaan käyttää esim. jyrkimmän laskun menetelmää: Jokaisella kierroksella jokaisesta painosta vähennetään pienellä vakiokertoimella kerrottu osittaisderivaattansa. Pikkuhiljaa verkko konvergoi varmasti kustannusfunktion lokaaliin minimiin, mikäli askelpituus on riittävän pieni.

Muita opetusmenetelmiä ja formulointeja Edellä esitettiin derivoituva kustannusfunktio sekä ehkä yksinkertaisin mahdollinen kustannusfunktion gradienttiin perustuva opetusmenetelmä (myös melkolailla tehottomin). Tehokkaampia MLP:lle soveltuvia optimointimenetelmiä ovat mm. konjugaattigradienttimenetelmät, BFGS-menetelmä, Levenberg-Marquardt,... Geneettiset algoritmit käyvät myös. Kustannus voidaan formuloida myös eri tavoin, mm. epäsileäksi funktioksi (jolla ei siis ole kaikkialla gradienttia). Siihenkin on olemassa menetelmiä!

Käytännön demo (Tässä kohtaa luentoa vilkaistiin Matlabissa/Octavessa toimivaa hermoverkkokoodia. Ajeltiinkin esimerkkiskriptejä, ja nähtiin kun ne tulostelivat minimoinnin edetessä mm. kustannusfunktion arvoa, gradientin suuruutta sekä kolmen luokan sekaannusmatriisia (datana oli muuten kolmen iiris-kukkalajikkeen yksilöitä, piirteenä terä- ja varsilehtien pituus ja leveys). Odotetusti diagonaalille alkoi kertyä valtaosa luokituksista. Vääriäkin luokituksia jäi, mikä on myös normaalia. Iirisdata luokittuu lähes täysin, mutta jyrkimmän laskun menetelmällä kestää kauan eikä ekasta lähtöpisteestä aina löydy hyvää lokaalia minimiä. Koodit olivat vuoden 2008 bugisia malleja; ne löytyvät jonkun linkin takaa nettisivultani, jos haluaa ja uskaltaa niitä katsella. Vähempibugiset versiot pittäisi tulla ihan meidän YouSource -järjestelmään jahka ennätän ne sinne laittamaan.)

Yhteenveto Luokittelua tarvitaan monessa konenäköjärjestelmässä. Kohteen paikannus, esikäsittely ja piirteytys tarpeen ennen luokittelua. Luokat ja luokittelun tulkinta riippuu sovelluksesta. Algoritmeja on monia; tässä käytiin esimerkin vuoksi läpi MLP-neuroverkko. Sekaannusmatriisit ja tunnusluvut apuna menetelmien vertailussa. Tässä lyhyessä luennossa jätettiin huomioimatta paljon, mm. luokittelun lähisukulainen klusterointi ja siihen liittyvät ohjaamattoman oppimisen menetelmät. MLP-hermoverkosta esitettiin vain perusperusteet. Hermoverkoissa yleisesti ottaen ja myös muissa luokittelumenetelmissä olisi paljon ammennettavaa, erityisesti tukivektorikoneet (SVM), päätöspuut (decision trees) sekä boosting-tyyppiset ratkaisut (esim. Haar Cascades). Kiinnostunut lukija ohjaa itsensä kirjallisuusviitteisiin tahi Internetin ihmemaahan hakusanojen kera.

Kirjallisuutta Automaattinen luokittelu Kirjoja hermoverkko- ja tukivektoriluokittelusta: Simon Haykin: Neural Networks and Learning Machines, Prentice Hall, 2008 Cristopher M. Bishop: Neural networks for pattern recognition, Oxford University Press, 1995 John Shawe-Taylor & Nello Christianini: An Introduction to Support Vector Machines and Other Kernel-based Learning Methods, Cambridge University Press, 2000 Valmiita avoimen lähdekoodin ohjelmakirjastoja löytyy, esim.: libsvm tukivektorikone, http://www.csie.ntu.edu.tw/ cjlin/libsvm/ fann monikerroshermoverkko, http://leenissen.dk/fann/ flann nopea lähinaapurialgoritmi, http://www.cs.ubc.ca/ mariusm/index.php/flann/flann