4. VEKTORIDATAN TIIVISTÄMINEN JA DEKORRELOINTI Palautetaan mieleen datamatriisi X: { n vektoria }} { d vektori alkiota Usein matriisin sarakkeilla (vektoreilla x(t), t = 1,..., n) ei ole mitään määrättyä järjestystä vaan ne ovat vain otos jostakin X perusjoukosta (esim. tietyn kokoisten digitaalikuvien joukko). Joskus niillä kuitenkin on selkeä ajallinen järjestys; ks. DSS-menetelmä luvun lopussa. Usein vaikeus on vektoreiden suuri dimensio (esim. tekstidokumenttien sanahistogrammit: dimensio voi olla 50.000; digitaalinen kuva rivi riviltä skannattuna: dimensio voi olla 65.000) Kuitenkin vektorialkioiden välillä on voimakkaita riippuvuuksia (esim. kuvan viereiset pisteet)(kuva) Nämä riippuvuudet poistamalla päästään alentamaan dimensiota voimakkaasti. Menetelmiä: pääkomponenttianalyysi, joka poistaa korrelaatiot (2. kertaluvun tilastolliset riippuvuudet); riippumattomien komponenttien analyyysi, joka pyrkii poistamaan kaikki riippuvuudet. 4.1 Pääkomponenttianalyysi Pääkomponenttianalyysi (Principal Component Analysis, PCA; eli Hotelling-muunnos eli Karhunen-Loève -muunnos) on klassinen tekniikka datan ja signaalien analyysisssä PCA poistaa korrelaatiot vektorialkioiden välillä ja samalla löytää kierron vektoriavaruudessa siten että uusilla (kierretyillä) koordinaateilla on maksimaalisen suuret varianssit (energiat). Tietyillä ehdoilla PCA löytää tilastollisesti riippumattomat komponentit (jos data normaalijakautunutta). Katsotaan seuraavassa matemaattisesti miten tämä tehdään. TKK, Informaatiotekniikan laboratorio 1 TKK, Informaatiotekniikan laboratorio 2 TKK, Informaatiotekniikan laboratorio 3 Lähtökohtana ovat datamatriisin sarakkeet: vektorit x joilla on d alkiota. Datamatriisi sisältää otoksen x(1),...,x(n) näitä vektoreita. Tyypillisesti x:n alkiot voivat siis olla piirrearvoja, kuvapikseleiden harmaatasoja, histogrammiarvoja tms. kuten edellisissä luvuissa on esitetty Pääkomponenttimuunnoksessa vektorit x nollakeskiarvoistetaan ensin vähentämällä keskiarvo: x x E{x} Tässä merkintä E{x} tarkoittaa keskiarvoa: käytännössä se lasketaan seuraavasti: E{x} = 1 n x(i) n Oletetaan seuraavassa että tämä on tehty ja vektorit x ovat siis nollakeskiarvoisia. Sitten x muunnetaan lineaarimuunnoksella toiseksi vektoriksi y jossa on m alkiota, m d, niin että korrelaatioista johtuva redundanssi poistuu. TKK, Informaatiotekniikan laboratorio 4 TKK, Informaatiotekniikan laboratorio 5 TKK, Informaatiotekniikan laboratorio 6
x 2 1/2 λ 2 e e 2 1 m 1/2 λ 1 Kuva 1: Vektorijakauman (kuvattu ellipsillä) pääakselit kahdessa dimensiossa: e 1 ja e 2. Keskiarvo on m. Ominaisarvot λ 1 ja λ 2 antavat varianssit pääakselien suunnassa TKK, Informaatiotekniikan laboratorio 7 x1 Samalla kertaa x:n uusille koordinaattiakseleille otettujen projektioiden varianssit maksimoituvat Ensimmäinen akseli (pääkomponentin suunta) vastaa suurinta varianssia, toinen on suurin varianssi ensimmäistä vasten kohtisuorassa suunnassa jne. Viimeisillä pääkomponenteilla on jo niin pieni varianssi, että ne voidaan kokonaan jättää pois. Tähän perustuu vektoreiden tiivistäminen (dimension alentaminen). Matemaattisesti: ajatellaan lineaarikombinaatiota y 1 = d w k1 x k = w1 T x k=1 vektorin x alkioista x 1,..., x n (projektiota suunnalle w 1 ) Summa y 1 on nimeltään x:n ensimmäinen pääkomponentti, jos y 1 :n TKK, Informaatiotekniikan laboratorio 8 varianssi E{y 2 1} on mahdollisimman suuri. Taas varianssi voidaan käytännössä laskea summana yli otoksen x(i). Vektori w 1 on vastaava pääkomponenttivektori. Jotta E{y 2 1} ei kasvaisi äärettömän suureksi, täytyy vektorin w 1 pituutta jotenkin rajoittaa. Kätevin rajoite on että sen normi on vakio, käytännössä 1 Siten PCA-kriteeri on seuraava: maksimoi 1 (w 1 ) = E{y 2 1} = E{(w T 1 x) 2 } = w T 1 E{xx T }w 1 = w T 1 C x w 1 missä w 1 = 1 Matriisi C x = E{xx T } on d d ja nimeltään x:n kovarianssimatriisi Se lasketaan käytännössä nolla-keskiarvoistetusta datamatriisista X kaavalla C x = 1 n XXT TKK, Informaatiotekniikan laboratorio 9 Ratkaisu on w 1 = e 1 missä e 1 on C x :n ominaisvektori vastaten suurinta ominaisarvoa λ 1. Miksi? Katsotaan tätä harjoitustehtävänä, mutta eräs peruste on seuraava: w T 1 C x w 1 on vektoreiden w 1 ja C x w 1 sisätulo, joka on samalla niiden pituuksien (euklidisten normien) tulo kertaa niiden välisen kulman kosini. (Muista sisätulon määritelmä!) Sovittiin että w 1 = 1 joten jää kulman kosini kertaa C x w 1. Kosini maksimoituu kun kulma on nolla, mutta silloin pätee C x w 1 = λw 1 missä λ on jokin skalaarivakio. Tämä on matriisin C x ominaisarvoyhtälö jonka ratkaisuina ovat sen d ominaisvektoria. Mikä niistä pitää valita? Silloin myös pätee C x w 1 = λ joten λ:n pitäisi olla TKK, Informaatiotekniikan laboratorio 10 mahdollisimman suuri. Valitaan siis suurinta ominaisarvoa vastaava ominaisvektori pääkomponenttivektoriksi w 1. TKK, Informaatiotekniikan laboratorio 11 Maksimivarianssikriteeri max E{y 2 k} = E{(w T k x) 2 } voidaan yleistää m:lle pääkomponentille kun lisätään rajoitusehdot: joko tai E{y m y k } = 0, k < m (1) w T i w j = δ ij Ratkaisuna on että k:s pääkomponentti on y k = e T k x, k = 1,...,n Toinen tapa määritellä PCA on vektoreiden x pienimmän neliösumman virhe (MSE) kun ne esitetään PCA-kehitelmässä jossa on mukana m termiä Merkitään joukkoa ortogonaalisia vektoreita w 1,...,w m TKK, Informaatiotekniikan laboratorio 12
MSE-kriteeri: MSE = E{ x (wi T x)w i 2 } (2) On helppo näyttää että voimme kirjoittaa MSE = E{ x 2 } E{ (wi T x) 2 } (3) = trace(c x ) wi T C x w i (4) TKK, Informaatiotekniikan laboratorio 13 Voidaan osoittaa että kriteerin (4) minimi ortogonaalisuusehdon vallitessa on m:n ensimmäisen ominaisvektorin e 1,...,e m muodostama kanta PCA-kehitelmä tietylle vektorille x on silloin x = (e T i x)e i (5) Pienimmän MSE-virheen arvo on silloin n JMSE PCA = λ i (6) i=m+1 Tämä on niiden pienimpien ominaisarvojen summa, jotka vastaavat poisjätettyjä ominaisvektoreita e m+1,...,e n Tästä voi myös laskea kuinka monta pääkomponenttia täytyy ottaa mukaan kehitelmään (5) jotta päästään haluttuun kompressioon. TKK, Informaatiotekniikan laboratorio 14 Seuraava esimerkki näyttää, kuinka datan rekonstruktio paranee kun yhä enemmän pääkomponentteja otetaan mukaan kehitelmään (5) Vasemmanpuoleisessa sarakkeessa on käsinkirjoitettuja numeroita digitoituna 32 32 kuvamatriisiin Seuraavassa sarakkeessa on niiden keskiarvovektori, joka siis vähennetään ennen PCA-analyysiä Vektorien x dimensio on siis 1024 Kuva näyttää rekonstruktion PCA:lla kun 1, 2, 5, 16, 32, ja 64 pääkomponettia on mukana kehitelmässä. TKK, Informaatiotekniikan laboratorio 15 4.2. PCA:n laskeminen on-line-algoritmilla Käytännössä PCA lasketaan estimoimalla ensin kovarianssimatriisi otoksesta ja laskemallla sitten numeerisesti sen ominaisarvot ja -vektorit (esim. QR- algoritmi; Matlab) Joissakin sovelluksissa (etenkin signaalinkäsitttely) valmiiksi kerättyä datamatriisia ei ole, vaan vektorit x(t) saapuvat yksi kerrallaan suurella nopeudella, eikä niitä haluta tallettaa mihinkään On myös mahdollista, että vektoreiden dimensio d on niin suuri, että datamatriisin ja siitä lasketun kovarianssimatriisin käsittely tietokoneella on hyvin hankalaa Silloin on mahdollista käyttää on-line-algoritmeja. Katsotaan vain ensimmäisen pääkomponentin ja pääkomponettivektorin laskemista Klassinen laskentasääntö (Oja, 1982) w 1 w 1 + γ(y 1 x y 2 1w 1 ) (7) missä w 1 vastaa edellä olevaa pääkomponenttivektoria, x on datavektori tietyllä askeleella, y 1 = w T 1 x ja γ on ns. oppimisnopeus (learning rate). Annoin tälle nimeksi Stochastic Gradient Descent (SGA)- algoritmi, koska algoritmi käsittelee yhden inputvektorin kerrallaan Ajan mukana w 1 suppenee ensimmäiseen ominaisvektoriin e 1 Tällä on myös yleistys kaikkien pääkomponenttivektorien laskemiseksi. SGA-algoritmi vie muistia vain n. 2d paikkaa koska vain vektori w 1 TKK, Informaatiotekniikan laboratorio 16 TKK, Informaatiotekniikan laboratorio 17 TKK, Informaatiotekniikan laboratorio 18
ja yksi vektori x kerrallaan on talletettuna. 4.2. Esimerkkejä Eräs suosittu pääkomponenttianalyysin sovellus on ns. ominaiskasvot (eigenfaces) Siinä kerätään joukko kasvokuvia, yleensä normeerattuja niin että kasvonpiirteet ovat suunnilleen samassa paikassa kuva-alueessa Kuvat skannataan vektoreiksi vaakariveittäin Nämä vektorit ovat nyt datamatriisin X sarakkeita. Ohessa joitakin esimerkkejä (kuvat) Näitä voi käyttää kuvien tunnistamiseen projisoimalla kuvat mataladimensoiseen (2- tai 3-dim.) pääkomponenttiavaruuteen; saman henkilön eri kuvat osuvat siellä lähekkäin. Seuraavassa esimerkissä luokitellaan kasvokuvia vs. muita kuvia. Otetaan toinen esimerkki: ilmastodatan ns. kokeelliset ortogonaalifunktiot (Experimental Orthogonal Functions, EOF) Ilmastodata (säädata) tarkoittaa säännöllisin välein (tunneittain, päivittäin jne.) mitattuja lämpötiloja, ilmanpaineita, sademääriä jne. usealla paikkakunnalla Amerikkalainen järjestö NCAR (National Center for Atmospheric Research, Kansallinen ilmakehätutkimuksen keskus) julkaisee Webissä tällaisia mittaustietoja pitkältä ajanjaksolta ja koko maapallon peittävältä mittaushilalta (jossa puuttuvat arvot esim. keskellä valtameriä on käytännössä laskettu tietyillä kaavoilla). Me käytimme heidän dataansa jossa ajanjakso on 1948-2004, mittaukset päivittäisiä, ja hila 2.5 asteen välein maapallon pinnalla Näistä voi tehdä datamatriisin X jossa vaakadimensio on aika (56 x 365 päivää = 20.440 päivää) ja pystydimensio on paikka (73 x 144 TKK, Informaatiotekniikan laboratorio 19 TKK, Informaatiotekniikan laboratorio 20 TKK, Informaatiotekniikan laboratorio 21 = 10.512 mittauspistettä). Matriisin koko siis 10.512 x 20.440. Säätieteilijät haluaisivat hajottaa (keskiarvoistetun) datamatriisin summaksi X = E{X} + w i yi T jossa sarakevektoreilla w i on paikkadimensio ja rivivektoreilla y i on aikadimensio Tämän voi kätevästi tehdä PCA:lla: huomaa että PCA-kehitelmä kaavasta (5) antaa koko datamatriisille X E{X} = e i e T i (X E{X}) ja tässä sarakevektoreilla e i on paikkadimensio, rivivektoreilla e T i (X E{X}) on aikadimensio. Ominaisvektoreita e i, kun ne kuvataan graafisesti karttapinnalla, sanotaan kokeellisiksi ortogonaalifunktioiksi (EOF). Oheinen kuva näyttää 3 ensimmäistä funktiota ja vastaavat aikakäyrät ilmanpainedatalle. (Ne on laskettu vain ajalle 1957-2000). 4.3. DSS-menetelmä: halutunlaisten aikakomponenttien etsiminen Selostetaan seuraavassa lyhyesti kuinka yo. menetelmää voi parantaa jos tiedetään minkälaisia aikakomponentteja halutaan Useat sääilmiöt ovat jaksollisia, esim. vuoden, 2 vuoden jne. jaksoja Tämä voidaan ottaa huomioon yhdistämällä PCA ja aikasuodatus Tehdään ensin säämittausmatriisille X pääkomponenttianalyysi kuten edellä selostetaan Skaalataan sitten aikakäyrät e T i (X E{X}) niin, että niiden varianssi (keskimääräinen energia) on yksi; käytännössä skaalaustekijä on 1/ nλ i missä λ i on ominaisvektoria e i vastaava ominaisarvo Nimittäin E{e T i (X E{X})(X E{X}) T e i } = ne T i C x e i = nλ i TKK, Informaatiotekniikan laboratorio 22 TKK, Informaatiotekniikan laboratorio 23 TKK, Informaatiotekniikan laboratorio 24
. Suodatetaan nyt skaalatut aikakäyrät taajuussuotimella jolla on haluttu taajuusominaisuus ja tehdään vielä toisen kerran pääkomponenttianalyysi Ensimmäinen pääkomponentti vastaa käyrää jolla suodatettuna on suurin varianssi (energia), ja jossa siis on eniten haluttuja taajuuksia. Näin löytyy hyvin El Niño -ilmiö; ks. kuvat. Ilmastodatasta saadaan näin paljastettua uutta tietoa Tämä saattaa olla uusi aluevaltaus ilmastomittausten analyysissä Ensimmäinen julkaisu (Ilin, Valpola, Oja) kesällä 2005. TKK, Informaatiotekniikan laboratorio 25