Tämän luennon sisältö Luku 7. T-6.2 Datasta tietoon, syksy 2 professori Erkki Oja Tietojenkäsittelytieteen laitos, Aalto-yliopisto 24..2 (SOM) Itseorganisoivan kartan yhteys biologiaan Itseorganisoivan kartan suppenevuus -ulotteisessa tapauksessa Käytännön valintoja Mihin SOM:ia käytetään? / 44 2 / 44 (SOM) SOM-algoritmin perusiea Kertaus: c-means (Self-Organizing Map, SOM) on informaatiotekniikan laboratoriossa professori Teuvo Kohosen 98-luvun alussa kehittämä neuroverkkomalli Siitä on tullut 25 vuoen aikana eräs eniten käytettyjä neuroverkkoalgoritmeja maailmassa (viitteitä SOM:ään löytyy yli 7) Katsotaan tässä luvussa mikä SOM on, mikä on sen yhteys neuroverkkoihin, miten se toimii ja esimerkkien avulla joitakin sovellusmahollisuuksia. SOM-foneemikirjoitin SOM-köyhyyskartta Hyvä lähtökohta SOM-algoritmin ymmärtämiselle on ryhmittelyanalyysin c-means-algoritmi (Luku 6). Sehän meni seuraavasti: Valitse satunnaisesti c vektoria opetusjoukosta x,..., x n pisteiksi m,..., m c ; 2 Toista kunnes pisteet m,..., m c eivät muutu Sijoita kukin vektori x,..., x n siihen ryhmään C i jonka keskipiste m i on lähinnä; Laske uuet keskipisteet kaavalla m i = n i x C i x missä n i on C i :n vektoreien lukumäärä. 3 / 44 4 / 44
SOM-algoritmin perusiea (2) Kertaus: c-means SOM-algoritmin perusiea (3) Kertaus: c-means Tässä on oleellisesti kaksi vaihetta:. Voittajan valinta: Voiaan ajatella että ryhmät, joita eustavat niien keskipistevektorit m,..., m c, kilpailevat kustakin opetusvektorista x j ja se, joka on lähinnä, voittaa kilpailun. Matemaattisesti: voittaja vektorille x j on ineksi b jolle b = b(x j ) = argmin i=,...,c x j m i 2. Voittajan mukautuminen/oppiminen: kun voittaja on kaapannut uuen vektorin, sen täytyy päivittää keskipistevektorinsa m b. c-means-algoritmissa tämä tehään vasta kun kaikki x j :t on uuelleensijoitettu ryhmiin, mutta sen voi tehä myös lennossa eli aina heti kun yksikin vektori on uuelleensijoitettu (ns. ISODATA-algoritmi). 5 / 44 SOM-algoritmi on helpompi ymmärtää jos kirjoitetaan keskipisteen päivitys uuella tavalla: olkoon b keskipiste sen jälkeen, kun uusi vektori x j on lisätty ryhmään C b Silloin myös ryhmän koko n b kasvaa yhellä Pätee: b = = = n b + [ x C b x + x j ] () n b + [x j + n b m b ] (2) n b + [x j + (n b + )m b m b ] (3) = m b + n b + [x j m b ] (4) 6 / 44 SOM-algoritmin perusiea (4) Kertaus: c-means SOM-algoritmin perusiea Voittajan yhteistyö naapurien kanssa Geometrisesti tämä merkitsee että uusi keskipiste b on liikkunut vanhan keskipisteen m b ja uuen opetusvektorin x j välisellä janalla pienen matkan kohti x j :tä, ikään kuin x j vetäisi sitä puoleensa. Liike on sitä pienempi mitä enemmän ryhmässä on pisteitä Kuva: c-means-algoritmin päivitysaskel SOM sisältää vielä yhen aivan uuen periaatteen, joka tekee siitä eri menetelmän kuin c-means: 3. Voittajan yhteistyö naapureiensa kanssa: Kun eellä vain voittajan keskipistevektori m b liikkui, niin SOM-menetelmässä myös voittajan naapureien keskipistevektorit liikkuvat. Tämä sisältää kaksi kysymystä:. Mikä on voittajan naapuri? 2. Miten naapureien keskipistevektorit liikkuvat? Siinä siis oli c-means-algoritmi hiukan uuelleenmuokattuna. 7 / 44 8 / 44
SOM-algoritmin perusiea Voittajan naapurusto SOM-algoritmin perusiea (2) Voittajan naapurusto Naapurusto määritellään aivan uuella tavalla (ei ole sama kuin esim. lähimmän naapurin luokitin!) Ajatellaan että itse asiassa keskipistevektorit ovat joienkin laskentayksiköien tai keinotekoisten neuroneien painovektoreita, ja nämä yksiköt tai neuronit on järjestetty säännölliseen hilaan m m 2 m 5 m 6 m 9 m m 3 m 4 Kuva: Kaksiulotteinen SOM-verkko: neuronin m naapureita ovat m 7, m, m 2 ja m 5 Tämä voisi vastata toellista fyysistä laskentapiiriä tai pientä aivokuoren osaa, vaikka SOM lähes aina toteutetaan ohjelmoimalla Hila on yleensä 2-ulotteinen kuten kuvassa, mutta voi olla myös - tai 3-ulotteinen (tai K-ulotteinen mutta silloin visualisointi vaikeaa). m 3 m 7 m m 5 m 4 m 8 m 2 m 6 9 / 44 / 44 SOM-algoritmin perusiea (3) Voittajan naapurusto SOM-algoritmin perusiea Naapureien keskipistevektorien päivittäminen Nyt hila määrittelee naapurit: esim. 2-ulotteisessa hilassa lähimmät naapurit ovat viereiset laskentayksiköt oikealle, vasemmalle, ylös, alas (ns. 4-naapurusto, kuvassa m :n naapurit ovat m 7, m, m 2 ja m 5 ), tai lisäksi iagonaalisesti (ns. 8-naapurusto) tai siihen voi kuulua myös seuraavat 6 ympäröivää yksikköä jne. -ulotteisessa hilassa yksiköt b, b +, tai myös b 2, b + 2 jne. (naapuruston koosta myöhemmin) Entäs toinen kysymys: Miten naapureien keskipistevektorit liikkuvat? Merkitään kaavassa (4) olevaa kerrointa /(n b + ) merkinnällä α, ja nyt saaaan SOM-päivityskaava painovektoreille: b = m b + α[x j m b ] voittajayksikölle b k = m k + α[x j m k ] voittajan b naapuriyksiköille k l = m l muille yksiköille. Osoittautuu että α:ksi voiaan valita sopivan pieni luku, jonka ei tarvitse olla yhtäsuuri kuin /(n b + ) / 44 2 / 44
SOM-algoritmin perusiea (2) Naapureien keskipistevektorien päivittäminen SOM poikkeaa c-means:stä siinä, että myös voittajan naapureita opetetaan. Alla olevassa kuvassa on -ulotteinen SOM, jossa painovektorit m, m 2 ja m 3 vierekkäisen vektorin naapurustolla. Kun m 3 voittaa ( best matching unit, BMU), niin sitä ja myös sen naapuria m 2 siirretään uuen atan suuntaan Kuva: SOM-kartan (D) päivittyminen: sekä voittaja että sen naapuri päivittyvät SOM-algoritmin perusiea (3) Naapureien keskipistevektorien päivittäminen Tässä kaavassa esitetään vain yksi askel SOM-algoritmia, yhelle opetusvektorille Opetusta on jatkettava koko opetusjoukon yli, ja useaan kertaan (joitakin kymmeniä kertoja tyypillisesti) Koko esimerkki 2D-ata ja 2D-kartta opetuksen aikana Mitä tapahtuu? Kaksi asiaa:. Painovektorit levittäytyvät koko opetusjoukon alueelle (vrt. ryhmittely) 2. Naapuriyksiköien painovektorit pyrkivät olemaan lähekkäin (ns. topologinen kartta) 3 / 44 4 / 44 SOM-algoritmin perusiea Kartan ja atan visualisointi SOM-algoritmin perusiea (2) Kartan ja atan visualisointi Opetuksen tuottaman painovektorien levittäytyminen ja naapureien läheisyys voiaan kuvata graafisesti kahella tavalla näyttämällä itse SOM-karttahilan ja kussakin neuronissa sen painovektorin SepalL 7.26 5.97 4.67 7.26 5.97 4.67 SepalW 3.9 3.8 2.45 3.9 3.8 2.45 PetalL 3.74.4 6.7 3.74.4 PetalW.22.85 2.25.22.85 näyttämällä syöteavaruuen (jonka silloin oltava -, 2- tai tietokoneavusteisesti 3-ulotteinen) ja siinä olevat opetusvektorit ja SOM-painovektorit. Naapuruus näytetään yhistämällä naapurineuronien painovektorit viivalla ( elastinen verkko ) Kohosen kaktus Kuva: 2-ulotteisen SOM-kartan neljä kompenttitasoa (4-ulotteiset painovektorit), kun syötteenä 4-ulotteista ataa. Karttahila ja painovektorit komponenteittain 5 / 44 6 / 44
Yhteys biologiaan Yhteys biologiaan (2) Isojen aivojen aivokuorella (apinoilla, kissoilla, hiirillä, ihmisillä, yms.) on sensorisia alueita, jotka käsittelevät esim. näköhavaintoja Erityisen paljon on tutkittu, kuinka yksinkertaiset visuaaliset havainnot, esimerkiksi tietynsuuntaiset viivat, kuvautuvat aivoihin Osoittautuu että näköaivokuoren tietyllä alueella on ns. suuntakarttoja, joissa kaikki eri suuntaiset viivat on kooattu samaan tapaan kuin SOM-pinnalla: kaikki suunnat ovat eustettuina, ja viereiset neuronit kooaavat lähes samansuuntaisia viivoja Suuntakartat eivät määräyy geneettisesti vaan oppimisen kautta SOM-algoritmi jäljittelee yksinkertaista oppimislakia, jolla toelliset hermosolut saattaisivat muoostaa topologisia suuntakarttoja. Kuva: Hermosoluja 7 / 44 8 / 44 Suppenevuus -ulotteisessa tapauksessa Suppenevuus -ulotteisessa tapauksessa (2) Katsotaan nyt eellä esitettyä SOM-algoritmia: b = m b + α[x j m b ] voittajayksikölle b k = m k + α[x j m k ] voittajan b naapuriyksiköille k l = m l muille yksiköille. Oletetaan mahollisimman yksinkertainen tapaus: -ulotteinen hila, - ulotteinen opetusata: silloin painovektorit ovat skalaareja, suoran pisteitä m,..., m c. Naapurusto määritellään niin että neuronin j naapurit ovat j, j + paitsi päissä joissa neuronilla on naapurina vain 2 ja neuronilla c vain c. Ajatellaan iso joukko opetusvektoreita (nyt skalaareja) x. Tässä tapauksessa on mahollista toistaa että painoluvut m i järjestyvät varmasti opetuksessa joko suuruus- tai pienuusjärjestykseen, jos < α <. Ensinnäkin, voiaan aina konstruoia sopiva joukko opetuslukuja x siten että ne järjestävät m i :t D-kartan järjestyminen Toiseksi, jos m i :t ovat järjestyksessä, niitä on mahoton saaa enää epäjärjestykseen. Oletetaan että m c > m c >... > m 2 > m. Oletetaan että b:s yksikkö voittaa. Silloin vain m b, m b, m b+ muuttavat paikkaa, muut pysyvät ennallaan. 9 / 44 2 / 44
Suppenevuus -ulotteisessa tapauksessa (3) Silloin b mb uusi = m b + α(x m b ) m b α(x m b ) = ( α)(m b m b ) > joten niien kohalla järjestys säilyy. Aivan samoin osoitetaan että mb+ uusi muusi b >. Sitten Käytännön valintoja Yleisimmät hilat ovat - tai 2-imensioisia, koska kartta on silloin helppo visualisoia 2-imensioisella hilalla on kaksi perusrakennetta: suorakaiehila ja kuusikulmiohila m m 4 m 7 m m 3 m m 4 m 7 m m 3 mb uusi b 2 = m b + α(x m b ) m b 2 = m b m b 2 + α(x m b ) m 2 m 3 m 5 m 6 m 8 m 9 m m 2 m 4 m 5 m 3 m 2 m 6 m 5 m 9 m 8 m m 4 m 2 m 5 mutta tämä on positiivinen koska m b m b 2 > ja toisaalta x m b >. Jälkimmäinen pätee siksi, että yksikkö b on voittaja ja siis x on lähempänä m b :tä kuin m b :tä. Aivan samoin osoitetaan että mb+2 uusi muusi b+ >. 2 / 44 Kuva: SOM:n suorakaiehila ja kuusikulmiohila Kuusikulmio- eli heksagonaalihilan etu on se, että kullakin yksiköllä on 6 naapuria jotka kaikki ovat yhtä etäällä siitä 22 / 44 Käytännön valintoja (2) Reunoilla naapurusto on epätäyellinen, paitsi jos hila ajatellaan kierretyksi munkkirinkeliksi (toruspinnaksi), jolloin se on jatkuva eikä mitään reunoja ole 2.5 2.5.5.5.5 2 2.5 2 Toroii Kuva: SOM-hila munkkirinkilinä 2 Käytännön valintoja (3) Naapuruston koko: käytännössä osoittautuu, että SOM-algoritmissa on syytä pienentää naapurustoa vähitellen, samoin algoritmissa olevaa α-kerrointa. Näin saaaan parempia tuloksia. Nämä molemmat voiaan itse asiassa yhistää kirjoittamalla SOM-algoritmi hieman toiseen muotoon: Sen sijaan että olisi b = m b + α[x j m b ] voittajayksikölle b k = m k + α[x j m k ] b:n naapuriyksiköille k l = m l muille yksiköille. kirjoitetaankin tämä seuraavasti: k = m k + αh(k, b)[x j m k ] kaikille yksiköille k 23 / 44 24 / 44
Käytännön valintoja (4) Tämä on täysin sama kuin eellä oleva SOM-algoritmi, jos kaavassa oleva uusi termi, ns. naapuruusfunktio on { jos k kuuluu voittajan b naapurustoon h(k, b) = muuten Jotta kaavat olisivat aivan yhenpitävät, on oltava myös h(b, b) = eli pitää ajatella että b itsekin kuuluu omaan naapurustoonsa Nyt naapuruston valintaa voiaan pehmentää valitsemalla funktioksi h(k, b) sileämpi funktio, esim. gaussinen h(k, b) = e β 2 (k,b) missä (k, b) on yksikön k etäisyys voittajasta b hilaa pitkin mitattuna (huomaa että nytkin h(b, b) = ) Käytännön valintoja (5) Esim. yksiulotteisessa hilassa missä on yksiköt, 2,..., c, määritellään (k, b) = k b Paljon tämänkaltaisia virityksiä on valmiina ohjelmapaketissa SOM Toolbox http://www.cis.hut.fi/projects/somtoolbox/ 25 / 44 26 / 44 Mihin SOM:ia käytetään? Mihin SOM:ia käytetään? (2) On taas erotettava toisistaan SOM:in oppimisalgoritmi, josta eellä puhuttiin, ja valmiin opetetun SOM-kartan käyttö Kartan käyttöä luonnehtii oheinen kuva: SOM muoostaa kuvauksen (funktion) syöteavaruuen R ja karttahilan välille Kuva: SOM: kuvaus syöteavaruuen ja karttahilan välillä 27 / 44 28 / 44
Mihin SOM:ia käytetään? (3) Kukin syöteavaruuen piste x (esim. kukin opetusjoukon vektori) kuvautuu hilaan siihen yksikköön joka on x:lle voittaja, eli yksikköön b = b(x) = argmin i=,...,c x m i Siten SOM on ryhmittelyalgoritmi, jos kukin hilapiste ajatellaan omana ryhmänään (klusterinaan). Tiettyyn hilapisteeseen kuvautuu samankaltaisia vektoreita x Verrattuna tavalliseen ryhmittelyyn (esim. c-means) SOM:illa on ylimääräinen ominaisuus: vierekkäisiin hilapisteisiin kuvautuu yleensä myös samankaltaisia vektoreita Siten syöteavaruuen se alue, johon opetusvektorit kuuluvat, kuvautuu lähes jatkuvasti (topologisesti) hilaan Mihin SOM:ia käytetään? (4) Hilaa voi nyt käyttää ikäänkuin karttapintana tietokoneen ruuulla hakemaan erilaisia syöteavaruuen osia, se on siis tehokas visualisointikeino hyvinkin korkeaimensioiselle atalle Kukin hilapiste k kuvautuu vastaavasti syöteavaruuteen R pisteeseen m k Siten SOM on myös vektorikooausalgoritmi. Kuvaus syöteavaruuen ja SOM-hilan välillä ei kuitenkaan matemaattisessa mielessä voi olla puhtaasti topologinen (jatkuva molempiin suuuntiin), koska hilan imensio on yleensä 2 ja syöteavaruuen > 2. Kartassa on siellä täällä hyppäyksiä (vrt. tapaus 2-ulotteinen syöteavaruus, -ulotteinen kartta). 29 / 44 3 / 44 Mihin SOM:ia käytetään? Esimerkkejä Yhteenveto WEBSOM: menetelmä suurten tekstiaineistojen kuvaamiseksi kartalle PicSOM: kuvatietokantojen interaktiivinen hakumenetelmä Teollisuusssovelluksia. Tässä luvussa esiteltiin itseorganisoiva kartta (SOM), jota voiaan käyttää korkeaulotteisen atan ryhmittelyyn ja visualisointiin. SOM:n keksijä on akateemikko Teuvo Kohonen. 3 / 44 32 / 44
.6.4.2.8.6.4.2.9.8.7.6.5.4.3.2. 5/5 opetusaskelta 5/5 opetusaskelta.4.2.8.6.4.2.9.8.7.6.5.4.3.2. /5 opetusaskelta 25/5 opetusaskelta.9.8.7.6.5.4.3.2..9.8.7.6.5.4.3.2. 5/5 opetusaskelta 5/5 opetusaskelta Foneemikirjoitin Köyhyyskartta Kuva: Erilaiset puheen spektrit kuvautuvat SOM-karttapinnalle. Neuronissa on piirrettynä äännettä vastaava spektrikuvio. Kuva: Valtioien talouelliset inikaattorit SOM-karttapinnalla. Korkeaulotteinen ata on saatu visualisoitua mielekkääksi 2-ulotteiseksi kuvaksi. Vierekkäisiin neuroneihin kuvautuu samankaltaisia atavektoreita (maita). Takaisin kalvoihin Takaisin kalvoihin 33 / 44 34 / 44 Esimerkki 2D-ata ja 2D-kartta opetuksen aikana Esimerkki 2D-ata ja 2D-kartta opetuksen aikana (2) Alkutilanne: atanäytteitä (+) yksikköneliössä ja 6 6 -kokoinen suorakulmaisen hilan SOM-kartta järjestäytymättömänä. Mustat pallot painovektoreita m j. Opetuksen aikana kartta levittäytyy ja järjestyy opetusjoukon alueelle. Kuvat 5,, 5, 5, 25 ja 5 kierroksen jälkeen. 2 Data ja alkuperainen SOM kartta.8.6.4.2.4.6.8.2.4.6.2.4.6.8.2.4.2.4.6.8.2.4.2.8.6.4.2..2.3.4.5.6.7.8.9..2.3.4.5.6.7.8.9..2.3.4.5.6.7.8.9.2.4.6.8.2.4.6.8 2 35 / 44 36 / 44
.5.5.9.8.7.6.5.4.3.2. 5/5 opetusaskelta 5/5 opetusaskelta.4.2.8.6.4.2.9.8.7.6.5.4.3.2. /5 opetusaskelta 25/5 opetusaskelta.9.8.7.6.5.4.3.2..9.8.7.6.5.4.3.2. 5/5 opetusaskelta 5/5 opetusaskelta Esimerkki 2D-ata ja 2D-kartta opetuksen aikana (3) Alkutilanne #2: atanäytteitä (+) yksikköneliössä ja 6 6 -kokoinen suorakulmaisen hilan SOM-kartta järjestäytymättömänä. Mustat pallot painovektoreita m j. Esimerkki 2D-ata ja 2D-kartta opetuksen aikana (4) Opetuksen aikana kartta levittäytyy ja järjestyy opetusjoukon alueelle. Kuvat 5,, 5, 5, 25 ja 5 kierroksen jälkeen. 2 Data ja alkuperainen SOM kartta.8.6.4.2.4.6.8.2.4.6.2.4.6.8.2.4..2.3.4.5.6.7.8.9.2.8.6.4.2..2.3.4.5.6.7.8.9..2.3.4.5.6.7.8.9..2.3.4.5.6.7.8.9.2.4.6.8.2.4.6.8 2 Lähe: SOM Toolboxin som_emo. Takaisin kalvoihin 37 / 44 38 / 44 SOM:n komponenttitasoesitys SOM:n komponenttitasoesitys (2) Datana tässä esimerkissä on käytetty klassista Fisherin liljaataa (Iris), jossa 5 neliulotteista havaintoa kolmesta liljalajista ( Setosa, Virginica, Versicolor ). Mitatut ominaisuuet aluslehen ( Sepal ) pituus ( L ) ja leveys ( W ) sekä terälehen ( Petal ) vastaavat. SepalL 5. 4.9... SepalW 3.5 3.... X = PetalL.4.4... PetalW.2.2... Setosa Setosa... SepalL 7.26 5.97 4.67 7.26 5.97 4.67 SepalW 3.9 3.8 2.45 3.9 3.8 2.45 Painovektorikartat komponenteittain eli ns. komponenttitasot. Yhen painovektorin m 2 R 4 kohta on osoitettu punaisella pisteellä. Kyseisen kohan arvot ovat pieniä muuttujille SepalL, PetalL ja PetalW, mutta verrattain suuri muuttujalle SepalW. PetalL 3.74.4 6.7 3.74.4 PetalW.22.85 2.25.22.85 Koska ata x R 4, niin myös painovektorit m R 4. 39 / 44 4 / 44
SOM:n komponenttitasoesitys (3) Elastinen verkko: Kohosen kaktus Setosa Setosa Setosa Setosa Setosa Setosa Setosa Setosa Setosa Setosa Setosa Setosa Setosa Setosa Setosa Setosa Setosa Versicolor Versicolor Versicolor Versicolor Versicolor Versicolor Versicolor Versicolor Versicolor Versicolor Versicolor Versicolor Versicolor Versicolor Versicolor Versicolor Virginica Versicolor Versicolor Virginica Virginica Virginica Versicolor Versicolor Versicolor Versicolor Virginica Virginica Virginica Virginica Virginica Virginica Virginica Virginica Virginica Virginica Virginica Virginica Virginica Vasemmalla ns. U-matriisi, joka näyttää harmaasävyllä vierekkäisten m i :n etäisyyet, joista voi päätellä klusterirajoja. Värillinen täplä osoittaa kuinka monen havainnon lähin m i on. Setosa-laji (punainen) on selkeästi erillään kahesta muusta lajista, koska PetalL ja PetalW ovat pieniä (kts. komponenttitasot). Oikealla kunkin neuronin pääasiallisin laji. Takaisin kalvoihin Kuva: Kohosen kaktus : kolmiulotteinen ata ja kaksiulotteinen SOM. Kartta pyrkii täyttämään kolmiulotteisen muoon taipumalla atan mukaan. Takaisin kalvoihin 4 / 44 42 / 44 D-kartan järjestyminen sopivalla D-atalla x D-kartan järjestyminen sopivalla D-atalla x (2) Uusi opetuspiste x. Lähimpänä m. Yksiulotteiset painovektorit m 4, m, m 3 ja m 2 suoralla. Tavoitteena etsiä sellainen atasyöte x, x 2,... että painovektorit tulevat järjestykseen. Voittaja m ja sen naapuri m 2 liikkuvat. Opetusvektori (piste) x vasemmalla. Lähimpänä m 4. Uusi opetuspiste x 3. Lähimpänä m 3. Voittaja m 4 ja sen naapuri m 3 liikkuvat. 43 / 44 Liikutetaan voittajaa m 3 ja sen naapureita m 2 ja m 4. Nyt kartta on järjestynyt m 4 < m 3 < m 2 < m. Takaisin kalvoihin 44 / 44