Laskennallinen data-analyysi II Patrik Hoyer Bayesiläiset menetelmät 18 19.4.2007
LDA II: Bayesiläiset menetelmät Luennot (18.4 ja 19.4) - filosofiaa, ideat, esimerkkejä (kalvot kotisivulla 19.4 illalla) Lukemista - seuraavalla kalvolla tarkka lista - yksityiskohdat, matematiikka, tarvitaan harjoitustehtäviä ja projektityötä varten! Harjoitustehtävät - kurssin kotisivulla 19.4 illalla; käydään läpi 25.4 - laskemista, ymmärtämistä Projektityö - kurssin kotisivulla 20.4 illalla; viim. palautuspäivä 30.4 - käytännön kokeilemista Matlabissa 2
Lukemista (Bayesiläiset menetelmät) Bishop PRML: (noin 50 sivua) - 1.2.6 sekä 1.3 (vaatii 1.1-1.2.5 kertaamista) - 1.5-2.3.6-2.3.7 (vaatii 2.3.1-2.3.4 kertaamista) - 2.3.9-3.3 (ei 3.3.3) ja 3.4 (vaatii 3.1-3.2 kertaamista) - 4.2 (ei 4.2.3-4.2.4) - 9.2 (vaatii 9.1 kertaamista) - 12.2 (ei 12.2.2-12.2.3) (vaatii 12.1 kertaamista) Bootstrap-menetelmää ei juurikaan käsitellä Bishopin kirjassa. Tässä helppolukuinen johdanto (erityisesti osat 14.1-14.3): http://www.cs.helsinki.fi/group/lda/lda-ii-tiedostot/bootstrap-intro.pdf 3
Huom: Kurssikoe 3.5 LDA II kurssikoe pidetään 3.5 klo 16-19. Tarkat tiedot ajasta ja paikasta: http://www.cs.helsinki.fi/kokeet/kkokeetk07.html Kurssin kotisivulle ilmestyy pian enemmän tietoa siitä minkälaisia tehtäviä kokeessa voi olla ja mitä osia kirjasta kannattaa lukea. (Edellinen kalvo koski siis ainoastaan tätä kurssin viimeistä osiota bayesiläisistä menetelmistä; koko kurssin tenttiä varten tulee erillinen lista, verkkosivulle!) 4
Regressio: epävarmuuden mallintaminen... Oikealla oleva datajoukko mallinnetaan mallilla y = f(x) + n y x 5
Regressio: epävarmuuden mallintaminen... Oikealla oleva datajoukko mallinnetaan mallilla y = f(x) + n Liian monimutkainen malli johtaa ylisovittamiseen y x 6
Regressio: epävarmuuden mallintaminen... Oikealla oleva datajoukko mallinnetaan mallilla y = f(x) + n Liian monimutkainen malli johtaa ylisovittamiseen Liian yksinkertainen malli ei pysty kuvaamaan dataa y x 7
Regressio: epävarmuuden mallintaminen... Oikealla oleva datajoukko mallinnetaan mallilla y = f(x) + n Liian monimutkainen malli johtaa ylisovittamiseen Liian yksinkertainen malli ei pysty kuvaamaan dataa Oikea monimutkaisuus voidaan löytää esim ristiinvalidoinnilla y x 8
Regressio: epävarmuuden mallintaminen... Oikealla oleva datajoukko mallinnetaan mallilla y = f(x) + n Liian monimutkainen malli johtaa ylisovittamiseen Liian yksinkertainen malli ei pysty kuvaamaan dataa Oikea monimutkaisuus voidaan löytää esim ristiinvalidoinnilla Löydetty malli antaa prediktiivisen todennäköisyyden p(y x) y x 9
Regressio: epävarmuuden mallintaminen... Oikealla oleva datajoukko mallinnetaan mallilla y = f(x) + n Liian monimutkainen malli johtaa ylisovittamiseen Liian yksinkertainen malli ei pysty kuvaamaan dataa y Oikea monimutkaisuus voidaan löytää esim ristiinvalidoinnilla Löydetty malli antaa prediktiivisen todennäköisyyden p(y x) Mutta intuitiivisesti voisi olettaa että olemme epävarmempia siellä missä datapisteitä on vähän! (Kurssilla tähän asti käsitellyt menetelmät eivät ota tätä huomioon.) x 10
Luokittelu: epävarmuuden mallintaminen... Oikealla oleva datajoukko luokitellaan lineaarisesti: ˆt = sign(w T x + b) x 2 x 1 11
Luokittelu: epävarmuuden mallintaminen... Oikealla oleva datajoukko luokitellaan lineaarisesti: ˆt = sign(w T x + b) x 2 90% 50% 90% Yleisesti olisi toivottavaa että malli antaisi prediktiivisen todennäköisyyden p(t x). Yksinkertaisimmillaan se olisi funktio pisteen etäisyydestä päätöspintaan... x 1 12
Luokittelu: epävarmuuden mallintaminen... Oikealla oleva datajoukko luokitellaan lineaarisesti: ˆt = sign(w T x + b) x 2 90% 50% Yleisesti olisi toivottavaa että malli antaisi prediktiivisen todennäköisyyden p(t x). Yksinkertaisimmillaan se olisi funktio pisteen etäisyydestä päätöspintaan... Mutta olisi perusteltua olla epävarmempi kun ollaan kaukana datasta 90% x 1 13
Luokittelu: epävarmuuden mallintaminen... Oikealla oleva datajoukko luokitellaan lineaarisesti: ˆt = sign(w T x + b) x 2 90% 50% Yleisesti olisi toivottavaa että malli antaisi prediktiivisen todennäköisyyden p(t x). Yksinkertaisimmillaan se olisi funktio pisteen etäisyydestä päätöspintaan... Mutta olisi perusteltua olla epävarmempi kun ollaan kaukana datasta Vaikka kahden eri luokittimien antamat piste-estimaatit (tässä tapauksessa ennustetut luokat) olisivat kaikkialla samat, niin epävarmuuden mallintaminen on olennaista. 90% x 1 14
Subjektiiviset todennäköisyydet Monesti tuntuu että meillä ei ole riittävästi informaatiota yksikäsitteisesti määrittämään todennäköisyyksiä. Onko silloin mitään järkeä niitä käyttää? Esim vertaa: y x 15
Bayesiläinen inferenssi... Esim: Laatikossa on 5 palloa, joista jokainen on joko keltainen tai valkoinen. Palloja poimitaan (ja katsotaan) satunnaisesti, takaisinpanolla. Tehtävänä on arvioida, montako keltaista palloa laatikossa on. 16
Bayesiläinen inferenssi... Esim: Laatikossa on 5 palloa, joista jokainen on joko keltainen tai valkoinen. Palloja poimitaan (ja katsotaan) satunnaisesti, takaisinpanolla. Tehtävänä on arvioida, montako keltaista palloa laatikossa on. Ennen kun yhtään palloa on nostettu, sinulla on subjektiivinen todennäköisyys yli mahdollisten vastausten (0-5). Esim: 0 1 2 3 4 5 P(#) 17
Bayesiläinen inferenssi... Esim: Laatikossa on 5 palloa, joista jokainen on joko keltainen tai valkoinen. Palloja poimitaan (ja katsotaan) satunnaisesti, takaisinpanolla. Tehtävänä on arvioida, montako keltaista palloa laatikossa on. Ennen kun yhtään palloa on nostettu, sinulla on subjektiivinen todennäköisyys yli mahdollisten vastausten (0-5). Jos esim ensimmäinen pallo on keltainen, niin tiedetään että niitä on ainakin 1. Subjektiivinen jakauma päivittyy... Esim: 0 1 2 3 4 5 0 1 2 3 4 5 P(#) P(#) 18
Bayesiläinen inferenssi... Esim: Laatikossa on 5 palloa, joista jokainen on joko keltainen tai valkoinen. Palloja poimitaan (ja katsotaan) satunnaisesti, takaisinpanolla. Tehtävänä on arvioida, montako keltaista palloa laatikossa on. Ennen kun yhtään palloa on nostettu, sinulla on subjektiivinen todennäköisyys yli mahdollisten vastausten (0-5). Jos esim ensimmäinen pallo on keltainen, niin tiedetään että niitä on ainakin 1. Subjektiivinen jakauma päivittyy... Jos esim toinen on valkoinen... Esim: 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 P(#) P(#) P(#) 19
Bayesiläinen inferenssi... Esim: Laatikossa on 5 palloa, joista jokainen on joko keltainen tai valkoinen. Palloja poimitaan (ja katsotaan) satunnaisesti, takaisinpanolla. Tehtävänä on arvioida, montako keltaista palloa laatikossa on. Ennen kun yhtään palloa on nostettu, sinulla on subjektiivinen todennäköisyys yli mahdollisten vastausten (0-5). Jos esim ensimmäinen pallo on keltainen, niin tiedetään että niitä on ainakin 1. Subjektiivinen jakauma päivittyy... Jos esim toinen on valkoinen......jne Esim: 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 P(#) P(#) P(#) 20
Bayesin kaava Voidaan osoittaa (Cox, 1946) että rationaalinen inferenssi seuraa tavallisia todennäköisyyslaskun kaavoja, erityisesti Bayesin kaavaa: P (M D) = P (D M)P (M) P (D) eli mallin M todennäköisyys, annettuna data D, on datan todennäköisyys annettuna malli P (D M) kerrottuna mallin prioritodennäköisyydellä P (M), uudelleennormalisoituna. 21
Bayesin kaava Voidaan osoittaa (Cox, 1946) että rationaalinen inferenssi seuraa tavallisia todennäköisyyslaskun kaavoja, erityisesti Bayesin kaavaa: P (M D) = P (D M)P (M) P (D) eli mallin M todennäköisyys, annettuna data D, on datan todennäköisyys annettuna malli P (D M) kerrottuna mallin prioritodennäköisyydellä P (M), uudelleennormalisoituna. Huom: Malliperheen ulkopuolella oleva vaihtoehto ei vaikuta malliperheen sisällä olevien mallien suhteisiin 22
Bayesin kaava Voidaan osoittaa (Cox, 1946) että rationaalinen inferenssi seuraa tavallisia todennäköisyyslaskun kaavoja, erityisesti Bayesin kaavaa: P (M D) = P (D M)P (M) P (D) eli mallin M todennäköisyys, annettuna data D, on datan todennäköisyys annettuna malli P (D M) kerrottuna mallin prioritodennäköisyydellä P (M), uudelleennormalisoituna. Huom: Malliperheen ulkopuolella oleva vaihtoehto ei vaikuta malliperheen sisällä olevien mallien suhteisiin Huom: Vaatii aina vähintään kahden mallin vertaamista. 23
Koko jakauma vai (piste-) ennuste? Päätöksiä tehtäessä joudumme yleensä ottamaan huomioon tilanteeseen liittyvän epävarmuuden... - Esim #1: Sateenvarjo mukaan kun lähdet ulos? Päätös riippuu yleensä sateen todennäköisyydestä. Toisin sanoen emme voi ensin vain ennustaa tulee satamaan tai ei tule satamaan ja sitten siitä (piste-) ennusteesta päättää sateenvarjon mukaan ottamisesta! 0.3 0.7 ennuste: ei sada ei sateenvarjoa sataa ei sada sateenvarjo mukaan (varmuuden vuoksi) 24
Koko jakauma vai (piste-) ennuste? - Esim #2: Ilmaston lämpeneminen. Ei riitä, että meille ennustetaan että kaikkein todennäköisimmin, lämpötila nousee 2 astetta seuraavan 50 vuoden aikana. Haluamme tietää, kuinka todennäköiset eri vaihtoehtoiset skenariot ovat. maksimi P( C) C 25
Koko jakauma vai (piste-) ennuste? - Esim #2: Ilmaston lämpeneminen. Ei riitä, että meille ennustetaan että kaikkein todennäköisimmin, lämpötila nousee 2 astetta seuraavan 50 vuoden aikana. Haluamme tietää, kuinka todennäköiset eri vaihtoehtoiset skenariot ovat. P( C) maksimi keskiarvo C 26
Koko jakauma vai (piste-) ennuste? - Esim #2: Ilmaston lämpeneminen. Ei riitä, että meille ennustetaan että kaikkein todennäköisimmin, lämpötila nousee 2 astetta seuraavan 50 vuoden aikana. Haluamme tietää, kuinka todennäköiset eri vaihtoehtoiset skenariot ovat. P( C) maksimi mediaani keskiarvo C 27
Koko jakauma vai (piste-) ennuste? - Esim #2: Ilmaston lämpeneminen. Ei riitä, että meille ennustetaan että kaikkein todennäköisimmin, lämpötila nousee 2 astetta seuraavan 50 vuoden aikana. Haluamme tietää, kuinka todennäköiset eri vaihtoehtoiset skenariot ovat. P( C) maksimi mediaani keskiarvo koko jakauma C 28
Päätösteoria..., mikä on paras piste- Annettuna jakauma estimaatti y :lle? P (y x) Yleisemmin, miten tehdä optimaalisia päätöksiä epävarmuuden vallitessa? Keskeinen käsite: tappiofunktio (loss function) tai hyötyfunktio (utility function) Optimaalinen päätös määritellään niin että se minimoi odotetun tappion 29
Esim: Luokittelu - Röntgenkuvien perusteella diagnosoidaan syöpää. Jos potilas on terve mutta diagnoosi on syöpä niin se aiheuttaa stressiä ja lisätutkimuksia. Mutta jos potilaalla on syöpä ja todetaan terveeksi niin hoito viivästyy ja lopputuloksena potilas saattaa kuolla... syöpä diagnoosi terve oikeasti syöpä terve 0 1000 1 0 tappiomatriisi L(y, ŷ) 30
Regressio - Tappiofunktiolla L(y, ŷ) nyt jatkuva-arvoiset argumentit - Usein muotoa L(y, ŷ) = f(y ŷ) - Neliöllinen tappio L(y, ŷ) = (y ŷ) 2 minimoituu kun valitaan piste-estimaatiksi ehdollinen odotusarvo, eli ŷ = E{y x}. - Absoluuttinen- tai itseisarvo-tappio L(y, ŷ) = y ŷ minimoituu kun valitaan ehdollinen mediaani t y(x) y(x 0 ) p(t x 0 ) x 0 x 31
Epävarmuuden mallintaminen... Intuitiivisesti selvää, mutta miten tämä formalisoidaan? y x? p(y x) =? 3x i x i + 7 N sin(y x)???? Helppoa ja intuitiivista pienissä dimensioissa kun voidaan visualisoida, mutta entäs realistisissa data-analyysiongelmissa? x i P (t = 1 x i ) 32
Uudelleenotannan idea (intuitiivisesti) Olkoon meillä i.i.d. otos {x i, y i } jostain jakaumasta p(x, y). Yritetään esim arvioida onko muuttujilla korrelaatio (eli siis onko jakaumassa korrelaatio). y?? x 33
Uudelleenotannan idea (intuitiivisesti) Olkoon meillä i.i.d. otos {x i, y i } jostain jakaumasta p(x, y). Yritetään esim arvioida onko muuttujilla korrelaatio (eli siis onko jakaumassa korrelaatio). Intuitiivinen idea: otetaan otoksia x otoksesta ( uudelleenotanta ) ja katsotaan kuinka paljon tulos vaihtelee. Alla data jaettu kolmeen osaan: y?? y x x x 34
Bootstrap uudelleenotanta Olkoon annettuna datajoukko X = {x 1,..., x N }. Voimme tuottaa uuden datajoukon X B poimimalla (takaisinpanolla) N pistettä joukosta X, jolloin jotkut pisteet tulevat monta kertaa valituksi, toiset jäävät pois. Tämä prosessi toistetaan L kertaa jolloin meillä on L datajoukkoa jonka jokaisen koko on N. Estimaattien tilastollista luotettavuutta voidaan nyt arvioida tarkastamalla estimaattien jakaumaa bootstrapdatajoukkojen yli [Tässä ei käsitellä bootstrapin teoriaa tarkemmin, tarkoitus on pikemmin antaa intuitiivinen ymmärrys.] 35
Bootstrap regressio-ongelmaan Otetaan alkuperäinen data y x 36
Bootstrap regressio-ongelmaan Otetaan alkuperäinen data Arvotaan uusi bootstrapdata (poimitaan palauttaen) y 2 2 3 2 2 x 37
Bootstrap regressio-ongelmaan Otetaan alkuperäinen data Arvotaan uusi bootstrapdata (poimitaan palauttaen) Sovitetaan siihen käyrä y 2 2 2 2 3 x 38
Bootstrap regressio-ongelmaan Otetaan alkuperäinen data Arvotaan uusi bootstrapdata (poimitaan palauttaen) Sovitetaan siihen käyrä Tehdään uudestaan... y 2 3 2 2 3 x 39
Bootstrap regressio-ongelmaan Otetaan alkuperäinen data Arvotaan uusi bootstrapdata (poimitaan palauttaen) Sovitetaan siihen käyrä Tehdään uudestaan......ja uudestaan yhteensä L kertaa. Saadaan joukko käyriä. y x 40
Bootstrap regressio-ongelmaan Otetaan alkuperäinen data Arvotaan uusi bootstrapdata (poimitaan palauttaen) Sovitetaan siihen käyrä Tehdään uudestaan......ja uudestaan yhteensä L kertaa. Saadaan joukko käyriä. y Kukin yksittäinen käyrä edustaa yhtä mahdollista mallia. Huomatkaa että ne poikkeavat toisistaan eniten siellä missä dataa on vähän (data ei siellä sido mallia), olemme siellä siis epävarmempia mallista ja näin ollen myös y:n arvosta, annettuna x. x 41
Bootstrap luokittelu-ongelmaan Otetaan alkuperäinen data x 2 x 1 42
Bootstrap luokittelu-ongelmaan Otetaan alkuperäinen data Arvotaan uusi bootstrapdata (poimitaan palauttaen) x 2 2 2 2 3 3 2 x 1 43
Bootstrap luokittelu-ongelmaan Otetaan alkuperäinen data Arvotaan uusi bootstrapdata (poimitaan palauttaen) Sovitetaan siihen luokitin (malli) x 2 90% 50% 90% 2 2 2 3 3 2 x 1 44
Bootstrap luokittelu-ongelmaan Otetaan alkuperäinen data Arvotaan uusi bootstrapdata (poimitaan palauttaen) x 2 Sovitetaan siihen luokitin (malli) Tehdään L kertaa, saadaan joukko malleja x 1 45
Bootstrap luokittelu-ongelmaan Otetaan alkuperäinen data Arvotaan uusi bootstrapdata (poimitaan palauttaen) x 2 90% 50% Sovitetaan siihen luokitin (malli) Tehdään L kertaa, saadaan joukko malleja Kukin yksittäinen käyrä edustaa yhtä mahdollista mallia. Huomatkaa että ne poikkeavat toisistaan eniten siellä missä dataa on vähän (data ei siellä sido mallia), olemme siellä siis epävarmempia mallista ja näin ollen myös luokasta, annettuna uusi havainto (x 1, x 2 ). 90% x 1 46
Bayesiläinen data-analyysi Subjektiivinen todennäköisyys yli kaikkien mahdollisten mallien (aina tietysti rajoitettu johonkin malliperheeseen): P (M) Jokaiselle mallille pystytään laskemaan havaitun datan todennäköisyys annettuna malli: P (D M) Lasketaan posterioritodennäköisyysjakauma mallien yli: P (M D) Prediktiivinen todennäköisyys voidaan laskea: P (D D) = M P (D M)P (M D) Huom: Käytännön laskut saattavat olla hyvinkin hankalia, mutta ainakin tavoite on hyvin määritelty 47
Bayesiläinen regressio... Yksinkertainen esimerkki Malliperhe: (w 0, w 1 ) N(0, α 1 I) y i N(w 0 + w 1 x i, β 1 ) β jossa siis α ja ovat meidän tiedossamme olevia vakioita. Toisin sanoen, ensin malli valitaan arpomalla w 0 ja w 1 normaali-jakaumasta; sitten data generoidaan lineaarisella funktiolla w 0 + w 1 x jonka päälle lisätään normaalijakautunutta kohinaa. Seuraavalla kalvolla havainnollistus mallin toiminnasta 48
Bayesiläinen regressio... Data generoitu arpomalla tasajakaumasta [-1,1], jonka jälkeen y i = a 0 + a 1 x i + n i jossa a 0 = 0.3, a 1 = 0.5 ja n i N(0, 0.04) x i Ylimmällä rivillä on kuvattu tilanne ennen datapisteiden saapumista. Toisella rivillä tilanne yhden datapisteen jälkeen. Kolmannella toinen datapiste on saatu, ja viimeisellä rivillä on 20 havaintoa. 49
Bayesiläinen regressio... Kirjan kappaleessa 3.3 yleinen lineaarinen tapaus: w N(m 0, S 0 ) y i N(w T φ(x i ), β 1 ) ja erityisesti tapaus, jossa siis ja ovat tunnettuja vakioita. Tässä φ voi olla mikä tahansa epälineaarinen funktio. m 0 = 0, S 0 = α 1 I α β Tuloksena saadaan Gaussinen posteriori-jakauma p(w {x i, y i }) Myös prediktiivinen jakauma on normaalijakautunut p(y new x new, {x i, y i }) 50
Bayesiläinen regressio... 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 Satunnaisotos posteriorijakaumasta 51
Bayesiläinen regressio... 1 1 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 1 Prediktiivinen jakauma 52
Mallin asteen valinta Otetaan yksinkertaisuuden vuoksi taas helppo esimerkki: Malli : M 1 w 0 N(0, α 1 ) y i N(w 0, β 1 ) Malli : M 2 (w 0, w 1 ) N(0, α 1 I) y i N(w 0 + w 1 x i, β 1 ) Havaitaan seuraava data: Kumpi malli sopii siihen paremmin? 0.6 M 1 vai M 2?? 53
Mallin asteen valinta Otetaan yksinkertaisuuden vuoksi taas helppo esimerkki: Malli : M 1 w 0 N(0, α 1 ) y i N(w 0, β 1 ) Malli : M 2 (w 0, w 1 ) N(0, α 1 I) y i N(w 0 + w 1 x i, β 1 ) Havaitaan seuraava data: Kumpi malli sopii siihen paremmin? 0.6 Aina pienempi opetusvirhe! M 1 vai M 2?? 54
Mallin asteen valinta Otetaan yksinkertaisuuden vuoksi taas helppo esimerkki: Malli : M 1 w 0 N(0, α 1 ) y i N(w 0, β 1 ) Malli : M 2 (w 0, w 1 ) N(0, α 1 I) y i N(w 0 + w 1 x i, β 1 ) Havaitaan seuraava data: Kumpi malli sopii siihen paremmin? 0.6 Aina pienempi opetusvirhe! M 1 vai M 2?? (Huom: Ristiinvalidointi eräs tapa. Se voi kuitenkin olla laskennallisesti raskas ja epäluotettavakin. Tässä esitetään bayesiläinen menetelmä...) 55
Mallin asteen valinta Periaatteessa helppo formuloida ratkaisu. Mallinnetaan datan generointiprosessia seuraavasti: 1. Arvotaan malli jollain priorijakaumalla 2. Arvotaan mallin parametrit w (siis tässä tai riippuen valitusta mallista) niiden priorijakaumista, annettuna valittu malli 3. Generoidaan data mallin ja parametrien mukaan Kun tietty datajoukko on havaittu, voidaan laskea posteriorijakauma P (M i data), joka saadaan kun tunnetaan ja, Bayesin kaavaa käyttäen. P (data M i ) P (M i ) Tässä on olennaista että parametrit lausekkeista pois! w P (M i ) w 0 (w 0, w 1 ) integroidaan 56
Mallin asteen valinta P (M i ) otetaan annettuna, esim jos ei ole syytä olettaa muuta niin oletetaan 50-50 priori, eli kumpikin malli a priori yhtä todennäköinen Datan todennäköisyys annettuna malli saadaan seuraavasti: p(data M i ) = Jotta voidaan selittää data mallilla täytyy olla ( voi olla mitä vaan ) w 1 Jotta voidaan selittää data mallilla M 2 täytyy olla sekä w 0 0.6 että w 1 0 p(data w, M i )p(w M i ) dw M 1 w 0 0.6 57
Mallin asteen valinta P (M i ) otetaan annettuna, esim jos ei ole syytä olettaa muuta niin oletetaan 50-50 priori, eli kumpikin malli a priori yhtä todennäköinen Datan todennäköisyys annettuna malli saadaan seuraavasti: p(data M i ) = Jotta voidaan selittää data mallilla täytyy olla ( voi olla mitä vaan ) Jotta voidaan selittää data mallilla M 2 täytyy olla sekä w 0 0.6 että w 1 0 p(data w, M i )p(w M i ) dw p(data M 1 ) M 1 w 0 0.6 w 1 p(data M 2 ) 58
Mallin asteen valinta P (M i ) otetaan annettuna, esim jos ei ole syytä olettaa muuta niin oletetaan 50-50 priori, eli kumpikin malli a priori yhtä todennäköinen Datan todennäköisyys annettuna malli saadaan seuraavasti: p(data M i ) = Jotta voidaan selittää data mallilla täytyy olla ( voi olla mitä vaan ) Jotta voidaan selittää data mallilla M 2 täytyy olla sekä w 0 0.6 että w 1 0 p(data w, M i )p(w M i ) dw p(data M 2 ) p(data M 1 ) M 1 w 0 0.6 w 1 saadaan siis: p(m 1 data) p(m 2 data) 59
Mallin asteen valinta Occamin partaveitsi : kilpailevista, yhtä selitysvoimaisista teorioista tulisi valita kaikista yksinkertaisin. Bayesiläistä mallin valintaa voidaan pitää automaattisena Occamin partaveitsenä p(d) M 1 M 2 M 3 D 0 D 60
Bayesiläinen luokittelu Luokittelukin on tavallaan regressiota, tavoitemuuttuja vain on binäärinen (tai multinomiaalinen) Mallien oppimisessa voidaan käyttää bayesiläistä formalismia Otetaan esimerkkinä aiemmin esillä ollut ongelma... x 2 x 1 61
Bayesiläinen luokittelu Luokittelukin on tavallaan regressiota, tavoitemuuttuja vain on binäärinen (tai multinomiaalinen) Mallien oppimisessa voidaan käyttää Bayesiläistä formalismia Otetaan esimerkkinä aiemmin esillä ollut ongelma... x 2 x new P (C 1 x new) =? x 1 62
Bayesiläinen luokittelu Luodaan datasta probabilistinen malli. Tässä ainakin kaksi vaihtoehtoa: 1. Jokaiselle datapisteelle arvotaan ensin luokka C i jakaumasta P (C i ), sitten arvotaan piste x jakaumasta p(x C i ). Tämä on generatiivinen lähestymistapa. P (C x 1 ) 2 p(x C 1 ) Esim. p(x C i ) normaalijakautunut P (C 2 ) p(x C 2 ) (Oikea malli kuuluu malliperheeseen, mutta on meille tuntematon) x 1 63
Bayesiläinen luokittelu 2. Diskriminatiivinen lähestymistapa sen sijaan sovittaa dataan suoraan jonkunlaisen funktion f(x, w) [0, 1] siten että se mallintaa P (C 1 x). Ajatus siis on että data on generoitu jollain malliperheeseen kuuluvalla funktiolla, ja tavoitteenamme on laskea p(w data) ja sitä käyttäen laskea uuden datapisteen luokkatodennäköisyyksiä x 2 90% 50% 90% Esim. f(x, w) = σ(w T x) (Oikea malli kuuluu malliperheeseen, mutta on meille tuntematon) x 1 64
Bayesiläinen luokittelu, esimerkki Esimerkki: Kaksi luokkaa, molempien kovarianssimatriisit oletetaan identiteettimatriiseiksi, keskiarvot tuntemattomia x 2 x 1 65
Normaalijakauman keskiarvon Bayesiläinen estimointi LDA-I -kurssilla käsiteltiin normaalijakauman parametrien estimointia suurimman uskottavuuden (ML) periaatteella Tässä bayesiläinen lähestymistapa (yksinkertaisuuden vuoksi käsitellään tässä vain keskiarvon estimointia kun kovarianssimatriisi on tunnettu) Olkoon siis vektorimuuttuja parametreillä µ, Σ, eli siis p(y µ, Σ) Σ 1/2 exp y normaalijakautunut ( 1 2 (y µ)t Σ 1 (y µ) ) joten otokselle pätee p(y 1,..., y n µ, Σ) Σ n/2 exp 1 2 ( ) n (y i µ) T Σ 1 (y i µ) i=1 66
µ :n konjugaattipriori on normaalijakauma, parametreillä µ 0, Λ 0. Tällöin saadaan µ :n posteriorijakaumaksi p(µ y {1...n}, Σ) ( [ exp 1 2 (µ µ 0 ) T Λ 1 0 (µ µ 0) + ]) n (y i µ) T Σ 1 (y i µ) i=1 = N (µ µ n, Λ n ) jossa µ n = (Λ 1 0 + nσ 1 ) 1 (Λ 1 0 µ 0 + nσ 1 ȳ) Λ 1 n = Λ 1 0 + nσ 1 (Gelman et al: Bayesian Data Analysis. Bishopin kirjassa 2.3.6 käy tämän läpi yksityiskohtaisesti yksiulotteisessa tapauksessa.) 67
Esim: 4 3 2 1 0!1!2!3!4!4!2 0 2 4 4 3 2 1 0!1!2!3!4!4!2 0 2 4 4 3 2 1 0!1!2!3!4!4!2 0 2 4 4 3 2 1 0!1!2!3!4!4!2 0 2 4 4 3 2 1 0!1!2!3!4!4!2 0 2 4 4 3 2 1 0!1!2!3!4!4!2 0 2 4 68
Bayesiläinen luokittelu, esimerkki Esimerkki: Kaksi luokkaa, molempien kovarianssimatriisit oletetaan identiteettimatriiseiksi, keskiarvot tuntemattomia x 2 Annettuna data, keskiarvojen posteriorijakaumat symmetriset normaalijakaumat... x 1 69
Bayesiläinen luokittelu, esimerkki Esimerkki: Kaksi luokkaa, molempien kovarianssimatriisit oletetaan identiteettimatriiseiksi, keskiarvot tuntemattomia x 2 90% 50% 90% x 1 Annettuna data, keskiarvojen posteriorijakaumat symmetriset normaalijakaumat......josta seuraa että uuden datapisteen prediktiivinen luokkatodennäköisyys vain funktio etäisyydestä päätöspintaan! 70
Bayesiläinen luokittelu, esimerkki Esimerkki: Kaksi luokkaa, molempien kovarianssimatriisit oletetaan identiteettimatriiseiksi, keskiarvot tuntemattomia x 2 90% 50% 90% x 1 Annettuna data, keskiarvojen posteriorijakaumat symmetriset normaalijakaumat......josta seuraa että uuden datapisteen prediktiivinen luokkatodennäköisyys vain funktio etäisyydestä päätöspintaan! [ Jos kovarianssimatriisitkin estimoidaan bayesiläisittäin niin silloin saadaan kaarevia käyriä... ] 71
Entäs ohjaamaton oppiminen? Tähän asti on lähinnä tarkasteltu Bayesiläistä formalismia ohjattuun oppimiseen (regressio, luokittelu). Onko sillä mitään annettavaa ohjaamattomaan oppimiseen? Esim: - Klusterointi k-means, hierarkkinen klusterointi, etc - Dimensionpudotus PCA etc 2 (a) 2 (i) 0 2 2 0 2 x 2 x n x 2 6 4 2 0!4!6 0 9 7!2 2 8 Hierarkkinen klusterointi: esimerkki 2 0 2!5 0 5 10 x 1 dendrogrammipuuta (oikealla) luetaan seuraavasti: 3 1 2 6 5 4 kytkettyjen pisteryhmien välinen etäisyys 15 10 5 0 5 6 4 1 3 2 7 8 9 datapisteen indeksi puun lehtinä kaikki datapisteet eli yhden pisteen pisteryhmät alhaalta ylöspäin edetessä yhdistetään lähimmät pisteryhmät toisiinsa; u tässä pisteryhmien 1 välinen etäisyys ryhmien kauimmaisten pisteiden etäisyys yhdistämistaso (vaakaviiva) kytkettyjen pisteryhmien välisen etäisyyden tasolla x n 30 x 1 72
Entäs ohjaamaton oppiminen? Tiheysestimointia sekin! Kun ohjatussa oppimisessa on kyse jakaumasta p(y x) niin samoin ohjaamattomassa oppimisessa kyse on jakaumasta p(x). 2 (a) p(x) x 2 x n u 1 p(x) 0 x n 2 2 0 2 x 1 (Täytyy kuitenkin muistaa, että jos kyse on esim visualisoinnista niin tiheysestimaattiaspekti ei välttämättä ole se olennaisin asia.) 73
K-means klusteroinnin käytännön ongelmia LDA I kurssilla todettiin että k-means voidaan aina ajaa datalle mielivaltaisella K:n arvolla ja saadaan aina klusterointi. Mutta onko oikeasti klustereita? Mikä on paras K:n arvo? Helppoa kahdessa dimensiossa (kun voi visualisoida) mutta entäs kymmenessä tai sadassa? Kyynärpääkriteeri ei aina toimi: 2500 2000 1500 J 1000 500 0 2 4 6 8 10 K 74
Gaussinen mikstuuri Tiheys muotoa p(x) = K π k N (x µ k, Σ k ) k=1 Generatiivinen tulkinta : Ensin arvotaan komponentti k {1,..., K}, sitten arvotaan x normaalijakaumasta parametreillä µ k, Σ k p(x) x 1 (a) 1 (b) 0.5 0.2 0.5 0 0.5 0.3 0 0 0.5 1 0 0.5 1 75
Latenttimuuttujaesitys: - K-dimensioinen binääri latentti muuttuja z jolle pätee z k {0, 1} ja k z k = 1. - P (z k = 1) = π k ja pätee 0 π k 1 sekä k π k = 1 - Annettuna z, x on normaalijakautunut: p(x z k = 1) = N (x µ k, Σ k ) - Nämä muodostavat yhteistodennäköisyysfunktion p(x, z) josta marginalisoimalla saadaan tuttu p(x) = K π k N (x µ k, Σ k ) k=1 76
Jokaiselle havaitulle datapisteelle x n on siis olemassa latenttimuuttuja mutta sen arvoa emme tunne z n Voimme kuitenkin laskea sen posteriorijakaumaa Bayesin kaavan mukaan γ(z k ) P (z k = 1 x) = P (z k = 1)p(x z k = 1) K j=1 P (z j = 1)p(x z j = 1) = π k N (x µ k, Σ k ) K j=1 π jn (x µ j, Σ j ) 77
Esimerkki jakaumista. Vasemmalla on havainnollistettu p(x, z) otoksella jakaumasta siten että sijainti kuvaa muuttujan x arvoa ja väri vastaa muuttujaa z. Keskellä taas on esitys jakaumasta p(x), ja oikealla on kuvattu P (z x). 1 (a) 1 (b) 1 (c) 0.5 0.5 0.5 0 0 0 0 0.5 1 0 0.5 1 0 0.5 1 78
Annettuna datamatriisi X miten opitaan parametrit π k, µ k, Σ k? Maksimoidaan (log-) uskottavuus (maximum likelihood) ln p(x π, µ, Σ) = { N K } ln π k N (x n µ k, Σ k ) n=1 k=1 Tätä ei kuitenkaan ole mahdollista tehdä suljetussa muodossa, vaan täytyy käyttää iteratiivisia ratkaisuja. Erityisen suosittu on ns. EM-algoritmi (expectation maximization). Kun otetaan gradientti log-uskottavuudesta ja asetetaan nollaksi saadaan (kts kirja): µ k = 1 N γ(z nk )x n N k n=1 Σ k = 1 N γ(z nk )(x n µ k )(x n µ k ) T N k n=1 π k = N k N missä N k = N γ(z nk ) n=1 79
Koska γ(z nk ) :t muuttuu kun mallin parametrit muuttuu, emme pysty optimia ratkaisemaan suoraan. Voimme kuitenkin iteratiivisesti vuorotellen päivittää parametrit ja vuorotellen γ(z nk ):t. Tämä on EM-algoritmi Gaussiselle mikstuurille (kts kirjan sivut 438-439). Esim: 2 2 2 0 0 0 2 2 2 2 0 (a) 2 2 0 (b) 2 2 0 (c) 2 2 2 2 0 0 0 2 2 2 2 0 (d) 2 2 0 (e) 2 2 0 (f) 2 80
Tämä toimii yleensä kohtuullisen hyvin mutta ei ole täysin ongelmatonta: - EM saattaa (ihan niin kuin gradienttimenetelmätkin) jäädä jumiin paikallisiin maksimeihin. Se ei siis välttämättä löydä parasta mahdollista ratkaisua! - Toinen ongelma on että uskottavuusfunktio sisältää piikkejä : kun yksi komponentti keskittyy kuvaamaan vain yhtä datapistettä niin uskottavuus menee äärettömäksi! - Heuristinen ratkaisu on huomata tällaiset ongelmat p(x) ja alustaa komponentti uudestaan. - Tyylikkäämpi olisi täysin bayesiläinen estimointi (Bishop 10.2), mutta siihen ei nyt mennä (matemaattisesti monimutkainen) 81 x
K-means vai Gaussinen mikstuuri? Voimme siis k-meansin sijaan klusteroida data estimoimalla Gaussinen mikstuurimalli. Kumpaa kannattaa suosia? - K-meansin edut: nopeus - Gaussisen mikstuurin edut: oppii mielivaltaiset kovarianssimatriisit voidaan valita klustereiden lukumäärää käyttäen probabilistisia mallinvalintakriteerejä voidaan verrata opittua mallia toisiin probabilisiin malleihin, ja tällä tavoin validoida klusteristruktuuria 82
K-means vai Gaussinen mikstuuri? Voimme siis k-meansin sijaan klusteroida data estimoimalla Gaussinen mikstuurimalli. Kumpaa kannattaa suosia? - K-meansin edut: nopeus - Gaussisen mikstuurin edut: * * oppii mielivaltaiset kovarianssimatriisit voidaan valita klustereiden lukumäärää käyttäen probabilistisia mallinvalintakriteerejä voidaan verrata opittua mallia toisiin probabilisiin malleihin, ja tällä tavoin validoida klusteristruktuuria * ) vaatii joko ristiinvalidointia tai bayesiläisen viitekehyksen käyttöä 83
PCA / probalistinen PCA / faktorianalyysi PCA etsii aliavaruuden joka parhaiten approksimoi datapisteitä, mutta ei mallinna datan todennäköisyysjakaumaa x 2 x n x n u 1 x 1 84
PCA / probalistinen PCA / faktorianalyysi PCA etsii aliavaruuden joka parhaiten approksimoi datapisteitä, mutta ei mallinna datan todennäköisyysjakaumaa x 2 x n x n u 1 p(x) Probabilistinen PCA on jakaumamalli: x 1 p(z) = N (z 0, I) p(x z) = N (x Wz + µ, σ 2 I) josta saadaan p(x) = N (x µ, C) C = WW T + σ 2 I 85
PCA / probalistinen PCA / faktorianalyysi PCA etsii aliavaruuden joka parhaiten approksimoi datapisteitä, mutta ei mallinna datan todennäköisyysjakaumaa x 2 x n x n u 1 p(x) Probabilistinen PCA on jakaumamalli: p(z) = N (z 0, I) p(x z) = N (x Wz + µ, σ 2 I) josta saadaan p(x) = N (x µ, C) C = WW T + σ 2 I (se on siis rajoitettu normaalijakauma joka sisältää vähemmän parametreja kuin täysin vapaa normaalijakauma) x 1 86
Probabilistinen PCA: x 2 p(x ẑ) w x 2 µ } ẑ w µ p(z) p(x) latenttimuuttujan jakauma p(z) ẑ z x 1 ehdollinen jakauma p(x z) marginaalijakauma p(x) x 1 87
PCA vs probabilistinen PCA Probabilistisen viitekehyksen edut: Puuttuvien arvojen oikea käsittely Mikstuurimallien muodostaminen Bayesiläinen versio: dimension automaattinen löytäminen Voidaan verrata löydettyä mallia toisenlaisiin malleihin Luokittelussa PPCA soveltuu luokkien ehdolliseksi jakaumaksi Voidaan käyttää datan tuottamiseen 88
PPCA: estimointi Parametrit voidaan löytää suurimman uskottavuuden menetelmällä (kirja 12.2.1) - µ ML = x eli keskiarvon estimaatti on otoksen keskiarvo - W ML saadaan suoraan tavallisen PCAn ratkaisusta (tosin rotaatio-invarianssi!) - σ 2 ML on pois jätettyjen suuntien varianssien keskiarvo Helppoa siis PCAsta siirtyä probabilistiseen malliin jos halutaan. EM-algoritmi voi olla kilpailukykyinen korkeadimensioisissa ongelmissa (ja erityisesti antaa mahdollisuuden huomioida puuttuvia arvoja)... 89
PPCA, puuttuvat arvot, esim: alkuperäinen data, kaksi ensimmäistä komponenttia 30% alkuperäisen datan muuttujien arvoista poistettu ennen PPCAn laskemista EM-algoritmilla 90
Faktorianalyysi Hyvin samantapainen malli kuin PPCA paitsi että kohina ei ole isotrooppista: p(z) = N (z 0, I) p(x z) = N (x Wz + µ, Ψ) jossa Ψ on diagonaalimatriisi. Suurimman uskottavuuden estimaatti ei enää laskettavissa suljetussa muodossa, vaan tarvitaan iteratiivinen algoritmi Faktorianalyysi on skaalainvariantti: komponenttikohtainen skaalaus vaikuttaa triviaalisesti malliin. (PCA:lle ja PPCA:lle tämä ei päde, niille puolestaan alkuperäisen datan pyörittäminen vaikuttaa triviaalisesti malliin.) 91
Yhteenveto Epävarmuuden kunnollinen käsittely on olennaista kaikessa inferenssissä ja päätöksenteossa Bootstrap -menetelmä antaa köyhän miehen Bayesposteriorijakauman Teoreettisesti tyydyttävämpi ratkaisu on täysin bayesiläinen käsittely: ensin (1) eksplisiittisesti formuloida malliperhe ja priori, sitten (2) laskea havainnoista posteriorijakauma mallien yli, sekä tarvittaessa (3) laskea prediktiivinen jakauma uudelle datalle Tällöin saavutetaan automaattinen mallin kompleksisuuden valinta sekä epävarmuuden käsittely Usein joudutaan tekemään approksimaatioita, mutta ainakin tiedetään että ongelma on hyvin määritelty 92