NEURAALIVERKOT JA NIIDEN KÄYTTÖ KUVIEN ANALYSOINNISSA

NEURAALIVERKOT

Neuraaliverkkoja kohtaan tunnettu kiinnostus on kasvanut huomattavasti viimeisen kymmenen vuoden aikana. Tämä tutkimus koskettelee asioita kuten aivojen tiedonkäsittely, rinnakkainen hajautettu laskenta ja keinotekoiset neuroverkot. Yhteisenä piirteenä näillä on periaate tarkastella aivoja esimerkkinä hyvin toimivasta hajautetusta tietojenkäsittelyjärjestelmästä, joka eroaa huomattavasti tavallisen tietokoneen tiedonkäsittelyn periaatteista. Strategiana on ollut kehittää aivoja jäljitteleviä yksinkertaisia malleja ja sitten tutkia mihin näitä malleja voidaan käyttää. Toisaalta tämä toimii myös toisin päin, ihmisen aivoja koskeva tutkimus on saanut uusia ideoita keinotekoisten neuraalivekkojen tutkimuksesta.

Vaikka eri mallit poikkeavat toisistaan joskus varsin paljon, yhteisenä tekijänä niillä on neuronien ja niiden välisten kytkentöjen käyttö. Neuroni on verkon toiminnan perusyksikkö. Se suorittaa verkon tiedonkäsittelyn ja vastaa ihmisen lyhytkestoista muistia. Neuroni saa syötteensä kytkentöjen avulla muista neuroneista ja lähettää vastaavasti ulostulonsa muihin neuroneihin. Yksinkertaisessa tapauksessa (kuva 1) neuroni laskee syötteiden x (n kappaletta) ja painojen w painotetun summan. Tämän jälkeen epälineaarinen funktio muuntaa summan a ulostuloksi y. Vakio T määrittää epälineaarisen funktion jyrkkyyden.

Kuva 1: Yksinkertainen neuroni, joka laskee syötteiden x painotetun summan ja saa ulostulonsa y muuntamalla summaa epälineaarisen funktion avulla.

Tiedonvälitys neuronien välillä tapahtuu kytkentöjen avulla. Kytkennät ovat painotettuja ja kytkentöjen avulla neuroneihin tulevia syötteitä muunnetaan. Kytkentöjen painoja taas muutetaan niiden oppimislain avulla. Eli neuraaliverkon kyky sopeutua uusiin ympäristöihin, oppiminen, perustuu kytkentöjen painojen muuttamiseen siten, että verkko suoriutuu tehtävästään mahdollisimman hyvin.

Käytetyin neuraaliverkko on kuvan 1 kaltaisista neuroneista koottu monikerros-perceptron, jolle luonteenomaista verkon arkkitehtuuria esittää kuva 2. Tässä esimerkissä kolmesta neuronista koostuva syötekerros ottaa vastaan syötteen x = [ x_1 , x_2 , x_3 ]. Toinen, "piilotettu" kerros koostuu neljästä neuronista. Kerroksen tarkoituksena on muodostaa syötteistä oma esitys, jonka ansiosta verkko pystyy ratkaisemaan hyvinkin vaikeita ongelmia. Kolmas, ulostulokerros koostuu kahdesta neuronista, ja se välittää syötettä x vastaavan ulostulon y = [ y_1 , y_2 ] verkon käyttäjälle. Oppimislakina käytetään virheen takaisinkorjaus menetelmää. Oppimislain englanninkielisestä nimestä error backpropagation johtuen verkkoa kutsutaankin yleisesti backpropagation-verkoksi. Oppiminen perustuu esimerkkien käyttöön, eli syöte syötetään verkkoon ja se laskee koko verkon ulostulon. Sitten laskettua ulostuloa verrataan haluttuun ulostuloon ja kytkentöjen painoja muutetaan siten, että seuraavalla kerralla verkko tekee pienemmän virheen.

Kuva 2: Esimerkki monikerros-perceptron verkon arkkitehtuurista.

Backpropagation verkkoa on käytetty varsin menestyksellä ongelmiin kuten kirjainten ja puheen tunnistaminen, backgammonin pelaaminen, talouden ennustaminen ja yksinkertaisten lauseiden jäsentämiseen. Kaukokartoituksen piirissä tälläistä verkkoa voidaan käyttää luokitteluun (muunnetaan satelliittikuvan pikseli pikseliä vastaavaksi esim. maankäyttöluokaksi) ja regressioanalyysin suorittamiseen (muunnetaan satelliittikuvan pikseli vastaavaksi esim. puuston kuutiomääräksi).

Hyvistä käytännön tuloksista huolimatta backpropagation verkon käytössä on myös ongelmia. Ensinnäkin, vaikka verkko on soveltunut hyvin käytännön ongelmiin, ei voida matemaattisesti todistaa aina käyvän näin. Tähän liittyy myös verkon arkkitehtuurin valinta, eli ei ole teoreettista pohjaa neuronien lukumäärän valitsemiseksi. Käytännössä sopiva verkon arkkitehtuuri joudutaan kokeilemaan yrityksen ja erehdyksen avulla. Kokeileminen on lisäksi vasrin aikaavievää, koska käytännössä verkkoa joudutaan simuloimaan tavallisella tietokoneella. Vaihtoehtona on tietenkin käyttää rahaa tietokoneen varustamiseen erikoiskorteilla, jotka hoitavat verkon vaatiman rinnakkaislaskennan. Lopuksi verkolla pitäisi olla kyky yleistää, eli verkon pitäisi antaa läheinen ulostulo läheisille syötteille. Tämän aikaansaaminen vaatii suuren opetusjoukon käyttämistä.

KOHOSEN ITSEORGANISOITUVA PIIRREKARTTA

Kirjoittajan mielenkiinnon kohteena on hieman toisenlainen neuraaliverkko, nimeltään Kohosen itseorganisoituva piirrekartta. Kun backpropagation verkko opetetaan käyttäen esimerkkejä syötteistä ja halutuista ulostuloista, niin Kohosen itseorganisoituva piirrekartta muodostaan oman esityksen syötteiden avulla ilman tietoa halutusta ulostulosta. Tätä ominaisuutta kutsutaan itseorganisoinniksi ja se saavutetaan käyttäen kilpailuoppimista. Kilpailuoppimisessa verkon neuroneja kilpailutetaan, eli voittajaneuroni valitaan sopivan kriteerin avulla. Esimerkiksi voittajasolmuksi valitaan se, jonka painovektorin ja syötevektorin välinen etäisyys on pienin. Voittajaneuronin löydyttyä sen painoja muutetaan oppimislain avulla. Oppimislain periaatteen on siirtää neuronin painovektoria syötevektoria kohti. Tätä toistettaessa painovektorit oppivat syötteiden tiheysfunktion ja löytävät syötteiden tärkeimmät ominaisuudet. Toisin sanoen, syötejoukon tiheimmille kohdille tulee monta painovektoria ja harvemmille kohdille vähemmän.

Neuronit järjestetään usein kaksiulotteiseksi hilaksi, kuten kuvassa 3 on tehty, mutta myös muita ulottuvuuksia voidaan käyttää. Kuvassa 3 syötteestä x = [ x_1 , x_2 , x_3 ] lähtevät viivat kuvaavat painoja, mustat pallot neuroneita ja viivat yhdistävät naapurineuronit toisiinsa. kohosen itseorganisoituvan piirrekartan oppiminen eroaa perinteisestä kilpailuoppimisesta siten, että pelkän voittajaneuronin sijaan myös muita lähellä olevia naapurineuroneja opetetaan. Opetusprosessin alussa opetetaan suurta määrää naapureita ja päästäessä prosessissa pidemmälle naapureiden määrää pienennetään. Prosessin loppupuolella suoritetaan kartan hienosäätö, jolloin vain voittajaneuronia opetetaan.

Kuva 3: Kohosen itseorganisoituva piirrekartta järjestettynä kaksiulotteiseksi hilaksi. Syötteestä x = [ x_1 , x_2 , x_3 ] lähtevät viivat kuvaavat painoja, mustat pallot neuroneita ja viivat yhdistävät naapurineuronit toisiinsa.

Opetusprosessin tuloksena Kohosen itseorganisoituva piirrekartta luo topologisesti järjestäytyneen muunnoksen syötteiden ja neuronien välille. Topologinen järjestäytyneisyys tarkoittaa, että tiettyyn syötteeseen suurimmat ulostulot saavat neuronit ovat lähellä toisiaan kartassa. Motivaationa Kohosen itseorganisoituvan piirrekartan kehittämiselle on ollut huomio, että eräät aistihavaintoja käsittelevät alueet ovat järjestäytyneet samalla tavalla.

Kuvassa 4 on pienen Spot-monikanavakuvan (kuva 11) pikseleiden jakauma. Oikea vaaka-akseli tarkoittaa vihreää kanavaa, vasen vaaka-akseli punaista kanavaa ja pystyakseli infrapunakanavaa. Kuvassa 5 on kuvattu yksiulotteisen kartan painovektorien (81 kappaletta) paikat tähdillä (*). Viivat yhdistävät kartalla lähinnä olevat painovektorit. Kuvassa 6 on kuvattu kaksiulotteisen kartan painovektorien (9*9 kappaletta) paikat. Huomataan, että oppimisprosessin tuloksena painovektorit ovat sijoittuneet siten, että niillä alueilla joissa on paljon kuvapikseleitä, on myös paljon painovektoreita lähellä toisiaan ja päinvastoin. Lisäksi lähellä toisiaan olevat painovektorit ovat myös lähellä toisiaan kartalla.

Kuva 4: Spot-monikanavakuvan pikseleiden jakauma.

Kuva 5: Yksiulotteisen kartan painovektorien paikat.

Kuva 6: Kaksiulotteisen kartan painovektorien paikat.

SOVELLUTUKSISTA

Yksinkertaisuudestaan huolimatta Kohosen itseorganisoituvalla piirrekartalla on käyttöä analysoitaessa kuvia. Näitä sovellutuksia ovat piirteiden irroitus, ryhmittely ja luokittelu.

Piirteiden irroitus

Satelliittikuvan sisältää tietomäärä on valtava, joten sitä on syytä tiivistää ja hakea vain se tieto mikä tarvitaan tehtävän suorittamiseen. Piirteiden irroituksessa kuvaa tiivistetään siten, että muunnoksen avulla muodostetaan tiivistetty kuva. Jos käytössä on yksi kuva, kuvasta haetaan tarpeelliset asiat (esimerkiksi alueiden reunaviivat). Monikanavakuvan tapauksessa, eli kuva sisältää useamman eri aallonpituuksilla otetun kuvan, pyritään pienentämään kuvan ulottuvuutta eli yksittäisten kuvien lukumäärää samalla kuitenkin säilyttäen mahdollisimman paljon kuvien sisältämää informaatiota.

Kuvassa 7 on käänteinen kasvillisuusindeksikuva, eli kasvillisuutta olevat alueet näkyvät tummina ja kasvittomat alueet vaaleina. Kuvasta otettiin 5*5 pikselin kokoisia kuvaikkunoita ja 7*5 neuronin kokoinen kartta opetettiin käyttäen ko. ikkunoita. Kuvassa 8 ovat neuronien painovektorit opetuksen jälkeen. Kuvasta huomataan, että painovektoreilla on selkeä järjestys ja ne vastaavat erilaisia alkuperäisellä kuvalla olevia asioita eli painovektorit ovat suorittaneet piirteiden irroituksen. Koordinaateiltaan (1,1) oleva painovektori on kokonaan musta, eli kyseinen neuroni vastaa kasvillista aluetta. Vastaavasti painovektori (7,5) on valkoinen, eli kyseinen neuroni vastaa kasvitonta aluetta. Suurin osa muista neuroneista vastaa siirtymisiä kasvittomasta alueesta kasvilliseen alueeseen ja päinvastoin. Esimerkiksi neuroni (7,1) vastaa siirtymista kasvillisesta alueesta kasvittomaan ja neuroni (1,5) kasvittomasta alueesta kasvilliseen. Nämäkin neuronit sijaitsevat vastakkaisilla puolilla karttaa. Kuvassa 9 on neuroneja (1,1) ja (2,2) vastaavat alueet merkitty valkoisella. Kyseiset alueet vastaavat alkuperäisen kuvan laajoja kasvillisuusalueita. Kuvassa 10 on neuroneja (7,4) ja (7,5) vastaavat alueet merkittynä valkoisella. Kyseiset alueet vastaavat alkuperäisen kuvan laajoja kasvittomia alueita.

Kuva 7: Käänteinen kasvillisuusindeksikuva, tummat alueet ovat kasvillisuutta ja vaaleat kasvitonta.

Kuva 8: Kasvillisuusindeksikuvasta otetuilla 5*5 kuvaikkunoilla opetetun kartan painovektorit.

Kuva 9: Neuroneja (1,1) ja (2,2) vastaavat alueet on merkitty valkoisella. Kyseiset alueet vastaavat alkuperäisen kuvan laajoja kasvillisuusalueita.

Kuva 10: Neuroneja (7,4) ja (7,5) vastaavat alueet merkittynä valkoisella. Kyseiset alueet vastaavat alkuperäisen kuvan laajoja kasvittomia alueita.

Käytettäessä karttaa monikanavakuvan ulottuvuuden pienentämiseen käytetään hyödyksi neuronien koordinaatteja. Haluttaessa muuntaan Spot-monikanavakuvan kolme kuvaa kahdeksi kuvaksi, ensin kaksiulotteisen kartan painovektorit opetetaan käyttäen kuvapikseleitä jolloin painovektorit oppivat kuvapikselien jakauman (vertaa kuva 4, 5 ja 6). Tämän jälkeen kullekin kuvapikselille etsitään voittajaneuroni ja kyseisen pikselin koordinaatteja käytetään pikselin uusina arvoina. Jos kartta on pienikokoinen, voidaan pikselin uudet arvot laskea lähimpien painovektorien etäisyyksillä painotettuna keskiarvona. Kokeiltaessa ulottuvuuden pienentämistä Landsat TM-kuvan kuudelta kanavalta (lämpökanavaa ei käytetty) otetut opetusalueet muunnettiin kahdeksi kanavaksi käyttäen karttaa ja pääkomponenttimuunnosta. Muunnetut kanavat luokiteltiin käyttäen Bayesin päätössääntöä pienimmälle virheelle ja tiheysfunktiot estimoitiin k-lähimmän naapurin menetelmällä. Alkuperäisen opetusjoukon luokitteluvirhe oli 16%, pääkomponenttimuunnoksella pienennetyn joukon luokitteluvirhe 18% ja kartan avulla muunnetun joukon luokitteluvirhe 16%. Eli tässä tapauksessa ulottuvuuden pienentäminen ei ilmeisesti vähennä kuvien sisältämää informaatiota.

Ryhmittely

Ryhmittelyn eli ohjaamattoman luokittelun avulla haetaan datajoukossa olevia kasautumia. Eli datajoukon luokat ovat tuntemattomia ja yleensä myös luokkien lukumäärä on tuntematon. Tälläisessä tapauksessa yritetään löytää ne kuvapikselit jotka ovat lähellä toisiaan ja liittää ne samaan ryhmään. Vastaavasti kaukana toisistaan olevat kuvapikselit kuuluvat eri ryhmiin

Kohosen itseorganisoituva piirrekartta sopii vallan mainiosta ryhmittelyyn. Tällöin yksinkertaisimmassa tapauksessa kukin kartan neuroni vastaa omaa ryhmää. Jos neuroneita on paljon, niitä voidaan kasauttaa ja täten pienentää ryhmien lukumäärää. Kuvassa 11 on Spot-monikanavakuva. Tummanpunaiset alueet vastaavat puustoa, vaaleamman punaiset alueet peltoja, musta vettä ja vaaleat alueet paljasta maata, teitä tai ihmisen tekemiä kohteita. Kuvassa 12 on kyseinen Spot-kuva ryhmitelty kuuteen ryhmään; valkea ja ruskea vastaavat paljasta maat ja ihmisen tekemiä kohteita, pelto keltaista, tumman vihreä puustoa, vaalean vihreä muuta kasvillisuutta ja sininen vettä.

Kuva 11: Spot-monikanavakuva.

Kuva 12: Ryhmitelty Spot-kuva. Kuusi ryhmää; ruskea ja valkoinen vastaavat paljasta maata ja ihmisen tekemiä kohteita, pelto keltaista, tumman vihreä puustoa, vaalean vihreä muuta kasvillisuutta ja sininen vettä.

Toinen esimerkki ryhmittelystä koskee parallaksikartan segmentointia pinnan orientoinnin mukaan. Parallaksikartta on kahdesta tai useammasta kuvasta laskettu kohteen matriisimuotoinen korkeusmalli. Kuvassa 13 on kartion parallaksikartta kuvattuna kolmiulotteisena. Nyt tämä pitää segmentoida eli jaotella ryhmiin pinnan orientoinnin mukaan. Ensinnä täytyy määrittää kullekin parallaksikartan pikselille paikallinen pinnan orientointi. Tämä tapahtuu ottamalla pikselin ympäriltä 3*3 kuvaikkuna ja vähentämällä reunimmaisista pikseleistä keskimmäisin pikseli. Näin saadaan tulokseksi 8-ulotteinen vektori, joka määrittää pinnan orientoinnin kyseisen pikselin kohdalla. Tämän jälkeen yksiulotteinen kohosen itseorganisoituva piirrekartta opetetaan käyttäen näitä vektoreita ja vektorit ryhmitellään lähimmän neuronin mukaan. Kuvassa 14 on vasemmalla ylhäällä parallaksikartta kaksiulotteisena kuvana, oikealla ylhäällä parallaksikartta on jaettu viiteen eri orientoinnin omaavaan ryhmään, vasemmalla alhaalla seitsemään ryhmään ja oikealla alhaalla yhdeksään ryhmään. Kuvista huomataan, että syntyneet ryhmät todella vastaavat eri pinnan orientointeja eli Kohosen itseorganisoituvan piirrekartan neuronit ovat oppineet ne.

Kuva 13: Kartion parallaksikartta kuvattuna kolmiulotteisena.

Kuva 14: Vasemmalla ylhäällä parallaksikartta kaksiulotteisena kuvana, oikealla ylhäällä parallaksikartta on jaettu viiteen eri orientoinnin omaavaan ryhmään, vasemmalla alhaalla seitsemään ryhmään ja oikealla alhaalla yhdeksään ryhmään.

Luokittelu

Kohosen itseorganisoituvaa piirrekarttaa voidaan käyttää myös luokitteluun. Tällöin kartta opetetaan tavalliseen tapaan. Tämän jälkeen kullekin neuronille annetaan luokka opetusjoukon avulla. Luokitteluvaiheessa kuvapikselille etsitään lähin neuroni ja luokitellaan neuronia vastaavaan luokkaan. Kartan luokittelua voidaan hienosäätää käyttämällä oppivaa vektorikvantisointia. Näitä on useampia hieman toisistaan poikkeavia menetelmiä, mutta yhteisenä piirteenä on hakea opetusjoukon vektorille yksi tai kaksi lähintä painovektoria ja siirtää painovektoreita lähemmäksi jos ne kuuluvat samaan luokkaa tai kauemmaksi jos ne kuuluvat eri luokkiin.

Testissä luokittelu tapahtui käyttäen Kohosen itseorganisoituvaa karttaa, oppivaa vektorikvantisointia ja Bayesin päätössääntöä pienimmälle virheelle (k-lähimmän naapurin tiheysfunktion estimointimenetelmä). Varsin suuret opetus- ja testijoukko saatiin ottamalla alueita 14 eri aikaan otetuista ERS-1 SAR-kuvista. Kun luokittelu suoritettiin Kohosen itseorganisoituvalla piirrekartalla, luokitteluvirhe oli hieman yli 14.6%. Tätä luokittelua parannettiin oppivan vektorikvantisoinnin avulla, jolloin luokitteluvirheeksi saatiin 11.2%. Bayesin päätössäännön luokitteluvirhe oli hieman alle 10%. Kohosen isteorganisoituvan piirrekartan ja oppivan vektorikvantisoinnin etuna on nopeus, luokittelu näillä menetelmillä tässä tapauksessa kesti hieman toista tuntia, kun luokittelu Bayesin päätössäännöllä kesti yli kymmenen tuntia. Eli saadaan melkein yhtä hyviä tuloksia huomattavasti lyhyemmässä ajassa.

Spot-kuva

Spot monikanavakuva on saatu Maanmittaislaitoksen Satelliittikuvakeskuksen esimerkkikuvapakkauksesta: WWW-sivulta http://www.nls.fi/sat/satelesi/allsat.zip, copyright CNES, Satellitbild, MML/Satelliittikuvakeskus .