Luento 7 Yleistä laskennasta mm. (luvut 10 ja 12) - karkea estimointi - posteriorimoodit - kuinka monta simulaationäytettä tarvitaan Monte Carlo (luku 11) Slide 1 - suora simulointi - hiladiskretointi Markov-ketju Monte Carlo (luku 11) - Metropolis- ja Metropolis-Hastings-algoritmit - Gibbs-poiminta - simulaationäytteiden käyttö - konvergenssidiagnostiikasta Jakaumista Log-tiheydet - yli- ja alivuotojen välttämiseksi laskenta usein suoritettava log-tiheyksillä - potenssiin korotus kannattaa tehdä mahdollisimman myöhään - esim. Metropolis-algoritmissa tiheyksien suhde lasketaan log-tiheyksien erotuksena Slide 2
Jakaumista Normalisoidut ja normalisoimattomat jakaumat - usein normalisoinnin laskeminen vaikeaa - usein laskennassa riittää normalisoimaton jakauma - q(θ y) on normalisoimaton tiheysjakauma jos q(θ y)/ p(θ y) on vakio joka riippuu vain y:stä Slide 3 - esim. p(y θ) p(θ) on normalisoimaton posteriorijakauma Karkea estimointi Ennen tarkempien laskennallisten menetelmien käyttöä on usein hyvä muodostaa karkea estimaatti - monimutkaisemman algoritmin järkevyystarkastus - alkuarvaus monimutkaisemmalle algoritmille - mitä kompleksisempi malli, sen vaikeampi on hyödyllinen approksimointi Slide 4 Hierarkkiset mallit - approksimoidaan hyperparametrit karkeasti Posteriorimoodit - etsitään yhteis- tai marginaalijakauman moodi(t) optimointialgoritmilla - muodostetaan normaali-, sekanormaali- tai vastaava approksimaatio - käytetään suoraan, ehdotusjakaumana tai alkuarvausten muodostamisessa - monimutkaisemmilla malleilla posteriorijakauma voi olla hyvin vino ja moodi ei kuvaa hyvin posteriorijakaumaa
Karkea estimointi Ennen tarkempien laskennallisten menetelmien käyttöä on usein hyvä muodostaa karkea estimaatti Jos malli on niin kompleksinen, että karkeaa posterioriestimaattia on vaikea tehdä Slide 5 tee ensin yksinkertaisempi malli yksinkertaisemmalla mallilla saadaan helpommin jonkinlainen perustaso mallin ennustustarkkudelle järkevyystarkastus Monte Carlo - historiaa* Käytetty jo ennen tietokoneita, esim. - Buffon (1700-luku) - De Forest, Darwin, Galton (1800-luku) - Pearson (1800-luku) - Gosset (eli Student, 1908) Slide 6 "Monte Carlo method" termiä ehdotti Metropolis, von Neumann tai Ulam 1940-luvun lopulla - Metropolis, Ulam ja von Neumann työskentelivät yhdessä atomipommi-projektissa - Metropolis ja Ulam, "The Monte Carlo Method", 1949 Bayes-menetelmien käyttäjille vasta 1990 luvulla riittävästi halpaa laskenta-aikaa - tätä ennen käyttö vähäistä, vaikka bayesilaisiakin osallistui teorian ja menetelmien kehittämiseen
Monte Carlo Perusidea on poimia simulaationäytteitä jakaumasta - nämä näytteet ovat havaintoja jakaumasta ja niitä voidaan käsitellä aivan samalla tavalla kuin havaintoja yleensäkin Näytteiden avulla helppo - laskea odotusarvoja ja hajontoja Slide 7 - laskea kvantiileja - piirtää histogrammeja - marginalisoida - jne. Montako simulaationäytettä tarvitaan? Tuntemattoman suureen odotusarvo E(θ) 1 L l θ (l) Slide 8 jos L suuri ja θ (l) riippumattomia näytteitä, voidaan olettaa tämän odotusarvon olevan normaalijakautunut varianssilla σθ 2 /L (asymptoottinen normaalius) - tämä varianssi on riippumaton jakauman ulottuvuuksien määrästä - yhteenlaskettu varianssi on summa datasta johtuvasta epävarmuudesta ja Monte Carlosta johtuvasta epävarmuudesta σθ 2 + σ θ 2 /L = σ θ 2 (1 + 1/L) - esim. jos L = 100, hajonta kasvaa kertoimella 1 + 1/L = 1.005 eli Monte Carlo -virhe on lähes olematon (odotusarvolle) - muista asymptoottisen normaaliuden vastaesimerkit!
Montako simulaationäytettä tarvitaan? Posterioritodennäköisyys p(θ A) 1 L I(θ (l) A) l missä I(θ (l) A) = 1 jos θ (l) A - I( ) binomijakautuneita parametrilla p(θ A) Slide 9 - binomijakauman hajonta on p(1 p)/l (s. 577) - jos L = 100 ja p noin 0.5, p(1 p)/l = 0.05 eli saadaan 5%-yksikön tarkkuus (hajonta) - tarvitaan L = 2500 simulaationäytettä, jotta tarkkuus 1%-yksikkö Pienten todennäköisyyksien arvioimiseen tarvitaan paljon näytteitä - jotta p voidaan approksimoida hyvin, pitää riittävän monen näyteeen toteuttaa θ (l) A, joten oltava L 1/p Montako simulaationäytettä tarvitaan? Kvantiilit - kun halutaan q-kvantiili, valitaan a siten, että p(θ < a) = q eli Slide 10 1 I(θ (l) < a) q L l - jotta a voidaan approksimoida hyvin, pitää riittävän monen näyteeen toteuttaa θ (l) < a tai θ (l) > a, joten oltava L 1/q tai L 1/(1 q) - vrt. edellinen kalvo
Montako simulaationäytettä tarvitaan?* Tapauskohtaisesti voidaan approksimoida hajonta Monte Carlon epävarmuus voidaan approksimoida tietenkin myös simuloimalla - käytetään approksimoivaa jakaumaa simulaationäytteille, jonka avulla voidaan poimia näytteitä yhteenvetolukujen jakaumista Slide 11 Esim. approksimoidaan diskreetillä-jakaumalla, jonka todennäköisyydet Dirichlet-jakautuneita (Rubin, 1981) - toimii myös, jos yhteenvetojakauma ei-normaali Montako simulaationäytettä tarvitaan? Näytteitä tarvitaan vähemmän, jos osa tuntemattomista marginalisoidaan pois - usein jakauma faktoroituu siten, että alin taso laskettavissa myös suljetussa muodossa annettuna hyperparametrit E(θ) 1 E(θ φ (l) ) L l Slide 12 missä φ (l) näytteitä hyperparametrien jakaumasta - erityisesti prediktiivisille jakaumille usein käytettävissä Valmennuskurssiesimerkki - todennäköisyys, että A-koulun efekti suurempi kuin 50 - pelkästään simuloimalla 10000:sta simulaationäytteestä vain 3 suurempia kuin 50 - Pr(θ 1 > 50 µ, τ, y) voidaan laskea analyytisesti (normaalijakauma), jolloin suhteelliseen hyvään tarkkuuteen riittää 200 simulaationäytettä
Suora simulointi (direct simulation) Suoralla simuloinnilla saadaan riippumattomia näytteitä Riittää mahdollisuus tuottaa (pseudo)satunnaislukuja uniformijakaumasta - bayesilaisessa mallintamisessa hyvät pseudosatunnaislukugenerattorit oikein käytettynä riittäviä Matlabin oletusgeneraattori erinomainen (Mersenne Twister algorithm) Slide 13 Suora simulointi (direct simulation) Uniformilukuja käyttäen perusjakaumista voidaan poimia suoraan perusalgoritmeilla (ks. esim liite A) 1 3 ulotteisista voidaan poimia inverse-cdf/hila-menetelmällä Jakauma voidaan myös faktoroida, jolloin poimitaan ensin marginaalijakaumasta ja sitten ehdollisista jakaumista (vrt. SAT-esimerkki) Slide 14 Ongelma: toimii vain joillekin malleille/jakaumille
Simulointi perusjakaumista: Esimerkki* Esim: Box-Muller -menetelmä: Jos U 1 ja U 2 ovat riippumattomia näytteitä jakaumasta U(0, 1), ja X 1 = 2 log(u 1 ) cos(2πu 2 ) X 2 = 2 log(u 1 ) sin(2πu 2 ) Slide 15 niin X 1 ja X 2 ovat riippumattomia näytteitä jakaumasta N(0, 1) - ei nopein vaihtoehto trigonometristen laskutoimitusten vuoksi - erilaisia vaihtoehtoja normaalijakaumalle reilu kymmenen - Matlabissa käytetään nopeaa Ziggurat-menetelmää Usein perusjakaumille valmiit funktiot tai algoritmit kirjoissa - valitettavasti esim. Matlabissa uniformia ja normaalia lukuunottamatta varsin hitaat toteutukset hyvistä algoritmeista huolimatta - valitettavasti painovirheiden vuoksi kirjojen algoritmien tulokset aina tarkistettava Hiladiskretointi Olette jo hiladiskretointia käyttäneet - yleistää inverse-cdf-menetelmän - diskretoidaan parametriavaruus hilassa ja lasketaan diskreetin jakauman normalisointitermi - diskreetistä jakaumasta helppo poimia näytteitä Slide 16 Ongelma: ulottuvuuksien kasvaessa hilassa olevien pisteiden määrä kasvaa exponentialisesti - ja näistä suurin osa ei osu sinne, missä oleellinen osa massasta on tiheysjakauman evaluointi keskitettävä sinne missä massaa on
Hiladiskretointi Esimerkki: SAT - 10 parametria - jos ei tiedetä posteriorimassan sijaintia valittava väljät diskretoinnin ala- ja ylärajat valittava riittävästi hilapisteitä, että osutaan myös oleellisen massan alueelle Slide 17 - esim. 1000 pistettä per dimensio 1000 10 = 1e30 hilapistettä - Matlabissa normaalijakauman tiheyden laskenta tapahtuu n. 4 miljoonaa kertaa sekunnissa kaikkien hilapisteiden evaluointi kestää n. triljoona vuotta Ulottovuuksien kirous (curse of dimensionality) Esimerkki - arvamme oleellisen massan sijaitsevan parametriavaruudessa jollakin välillä Slide 18 - oikeasti massa sijaitsee 1/3 välillä arvatusta (jokaisessa dimensiossa) 1 parametri 1/3 hilapisteistä osuu mielenkiintoiselle alueelle 2 parametria 1/9 hilapisteistä osuu... 3 parametria 1/27 hilapisteistä osuu... d parametria 1/3 d hilapisteistä osuu... - välin arvaaminen tällä tarkkudella jo todella hyvä arvaus tiheysjakauman evaluointi keskitettävä sinne missä massaa on
Markov-ketju Monte Carlo (MCMC) Slide 19 Markov-ketju - ominaisuuksia käsitellään tarkemmin mm. Stokastiset prosessit -kurssilla - satunnaismuuttujien sarja θ 1, θ 2,..., jolle pätee kaikilla t:n arvoilla, että θ t :n jakauma riippuu vain θ t 1 :stä (ensimmäisen asteen) - aloituspiste θ 0 - siirtymäjakauma T t (θ t θ t 1 ) (voi riippua t:stä) - sopivasti valitun Markov-ketjun stationaarinen jakauma on p(θ y) Edut/haitat + yleiskäyttöisiä + ketju hakeutuu sinne missä massaa on - peräkkäiset simulaationäytteet eivät riippumattomia - siirtymäjakaumien valinta voi olla vaikeaa Metropolis-algoritmi Metropolis-algoritmi ja sen yleistykset ovat kaikkien MCMC-algoritmien perusta Slide 20 Algoritmi 1. alkupiste θ 0 2. t = 1, 2,... (a) poimi ehdotus θ ehdotusjakaumasta J t (θ θ t 1 ) ehdotusjakauman pitää olla symmetrinen, eli J t (θ a θ b ) = J t (θ b θ a ), kaikille θ a, θ b (b) laske suhde r = p(θ y) p(θ t 1 y) (c) aseta θ t θ todennäköisyydellä min(r, 1) = θ t 1 muuten - siirtymäjakauma on sekoitus pistemassaa pisteessä θ t = θ t 1 ja ehdotusjakaumaa J t (θ θ t 1 )
Metropolis-algoritmi Slide 21 Algoritmi 1. alkupiste θ 0 2. t = 1, 2,... (a) poimi ehdotus θ ehdotusjakaumasta J t (θ θ t 1 ) ehdotusjakauman pitää olla symmetrinen, eli J t (θ a θ b ) = J t (θ b θ a ), kaikille θ a, θ b (b) laske suhde r = p(θ y) p(θ t 1 y) (c) aseta θ t θ todennäköisyydellä min(r, 1) = θ t 1 muuten - p(θ y):n sijasta kelpaa normalisoimaton q(θ y) - c-kohta suoritetaan arpomalla yksi luku jakaumasta U(0, 1) - ehdotuksen hylkääminen on myös yksi iteraatio (eli t kasvaa yhdellä) Metropolis-algoritmi Esimerkki: yksi kaksiulotteinen havainto (y 1, y 2 ) - normaalijakaumamalli tuntemattomalla keskiarvolla ja tunnetulla kovarianssilla θ 1 y N y 1, 1 ρ ρ 1 θ 2 y 2 Slide 22 - ehdotusjakauma J t (θ θ t 1 ) = N(θ θ t 1, 0.8 2 ) Esim7_1.m
Sisäänajo (burn-in) ja konvergenssidiagnostiikka Kuinka kauan ketjua on simuloitava, että voidaan olettaa θ t :n jakauman olevan riittävän lähellä invarianttia jakaumaa? Ketjun on unohdettava aloituspiste θ 0 sisäänajo = poistetaan ketjun alusta osa Kun aloituspiste on unohtunut, on ketju konvergoitunut Slide 23 konvergenssidiagnostiikka (luento 8) Riippuvat näytteet ja autokorrelaatio Markov-ketjussa uusi piste riippuu edellisestä pisteestä, joka riippuu sitä edellisestä pisteestä jne. Markov-ketjun autokorrelaatio kuvaa - kuinka paljon näytteet korreloivat aiempien näytteiden kanssa - kuinka nopeasti ketju unohtaa aiemmat tilat Slide 24 - käytetyn algoritmin tehokkuutta Markov-ketjun autokorrelaatiosta voidaan arvioida efektiivinen näytemäärä - näytteiden riippuvuuden vuoksi ketjussa vähemmän informaatioita kuin vastaavassa määrä riippumattomia näytteitä Tarkemmmin luennolla 8
Metropolis-algoritmi Suhde stokastiseen optimointiin - simuloidussa jäähdytyksessä samankaltainen idea: hyppy todennäköisempään hyväksytään aina, mutta hyppy pienempään todennäköisyyteen hyväksytään jollakin todennäköisyydellä - simuloidussa jäähdytyksessä lämpötilan laskiessa yhä harvempi hyppy pienempään todennäköisyyteen hyväksytään Slide 25 - simuloidun jäähdytyksen tarkoitus löytää moodi Metropolis-algoritmilla näytteitä jakaumasta Miksi Metropolis-algoritmi toimii Intuitiivisesti näytteitä tulee enemmän suuremman todennäköisyyden kohdista koska hypyt isompaan todennäköisyyteen hyväksytään aina ja pienempään vain osa 1. Todistettava, että simuloitu sarja on Markov-ketju, jolla yksikäsitteinen Slide 26 stationaarinen jakauma 2. Todistettava, että stationaarinen jakauma on haluttu kohdejakauma
Miksi Metropolis-algoritmi toimii 1. Todistettava, että simuloitu sarja on Markov-ketju, jolla yksikäsitteinen stationaarinen jakauma; tämä voidaan todistaa osoittamalla, että ketju toteuttaa seuraavat ominaisuudet a) pelkistymätön (irreducible) mistä tahansa tilasta päästään mihin tahansa muuhuun tilaan positiivisella todennäköisyydellä Slide 27 b) jaksoton (aperiodic) tilan i paluuaika voi olla mikä vain luku pätee satunnaiskävelylle mille tahansa aidolle jakaumalle triviaaleja poikkeuksia lukuunottamatta c) palautuva eli ei transientti (recurrent / not transient) todennäkäisyys palata tilaan i on 1 pätee satunnaiskävelylle mille tahansa aidolle jakaumalle triviaaleja poikkeuksia lukuunottamatta Miksi Metropolis-algoritmi toimii 2. Todistettava, että stationaarinen jakauma on haluttu kohdejakauma - aloitetaan algoritmi hetkellä t 1 poimimalla θ t 1 kohdejakaumasta p(θ y) - valitaan kaksi pistettä θ a ja θ b, jotka poimittu jakaumasta p(θ y) ja nimetty siten, että p(θ b y) p(θ a y) - todennäköisyystiheys siirtymälle θ a :sta θ b :hen Slide 28 p(θ t 1 = θ a, θ t = θ b ) = p(θ a y)j t (θ b θ a ), missä hyväksymistodennäköisyys on 1 valitun nimeämisen vuoksi - todennäköisyystiheys siirtymälle θ b :stä θ a :han ( ) p(θ t = θ a, θ t 1 p(θa y) = θ b ) = p(θ b y)j t (θ a θ b ) p(θ b y) = p(θ a y)j t (θ a θ b ), mikä on sama kuin siirtymälle θ a :sta θ b :hen, koska J t ( ) symmetrinen - koska yhteisjakauma symmetrinen, θ t :n ja θ t 1 :n marginaalijakaumat ovat sama ja siten p(θ y) on Markov-ketjun stationaarinen jakauma
Metropolis-Hastings -algoritmi Metropolis-algoritmin yleistys epäsymmetriselle ehdotusjakaumalle - joskus Hastingsin nimi jätetään mainitsematta - epäsymmetrisyys otetaan huomioon hyppytodennäköisyyttä laskettaessa r = p(θ y)/j t (θ θ t 1 ) p(θ t 1 y)/j t (θ t 1 θ ) = p(θ y)j t (θ t 1 θ ) p(θ t 1 y)j t (θ θ t 1 ) Slide 29 - mahdollistaa tehokkaampia algoritmeja - todistus vastaavasti kuten edellä, mutta nimetään pisteet θ a ja θ b siten, että p(θ b y)j t (θ a θ b ) p(θ a y)j t (θ b θ a ) Metropolis-Hastings -algoritmi Metropolis-algoritmin yleistys epäsymmetriselle ehdotusjakaumalle Mahdollistaa tehokkaampia algoritmeja - voidaan valita paremmin kohdejakaumaa muistuttava ehdotusjakauma yleisesti tehokkaampaa jos ehdotusjakauma muistuttaa kohdejakaumaa - esim. vinolle kohdejakaumalle vino ehdotusjakauma Slide 30 - voidaan myös käyttää epäsymmetristä ehdotusjakaumaa, jonka epäsymmetrisyys gradientin mukaan (Langevin-Hastings-algoritmi) ketjulla taipumus kulkea gradientin suuntaan, joka nopeuttaa oleellisen massan luo päätymistä
Metropolis-Hastings-Green -algoritmi (s. 338-339) Yleisemmin nimellä Reversible jump Markov chain Monte Carlo (RJMCMC) Metropolis-Hastings -algoritmin yleistys kun parametriavaruus voi vaihtua - trans-dimensional method - parametriavaruuden muuttuminen otetaan huomioon hyppytodennäköisyyttä laskettaessa Slide 31 - mahdollistaa helpon tavan ottaa huomioon epävarmuus mallin rakenteesta Metropolis-Hastings -algoritmi Ideaalinen ehdotusjakauma on kohdejakauma itse - J(θ θ) p(θ y) kaikille θ - hyväksymistodennäköisyys on 1 - simulaationäytteet riippumattomia - käytännössä ei tietenkään yleensä mahdollista Slide 32
Metropolis-Hastings -algoritmi Hyvä ehdotusjakauma muistuttaa muodoltaan kohdejakaumaa - jos kohdejakauman muoto ei tunnettu useimmiten käyteään normaali- tai t-jakaumaa Slide 33 Kun ehdotusjakauman muoto on valittu voidaan valita hyvä skaala - pieni ehdotusjakauman skaala paljon hyväksyttyjä ehdotuksia, mutta hidas ketjun eteneminen - iso ehdotusjakauman skaala paljon hylättyjä ehdotuksia ja jälleen hidas ketjun eteneminen Yleisesti sileille kohdejakaumille lähes optimaalinen hylkäystaajuus on 60-90% (tarkkana onko kyseessä hylkäys- vai hyväksymistn.) Metropolis-Hastings -algoritmi Metropolis-algoritmissa voidaan päivittää parametreja - yhtäaikaa - ryhmissä (blocked) - yksittäin (single-component) Slide 34 Yksittäisten tai ryhmien päivitysjärjestys vapaa - kiinteä - satunnainen - kaikkia ei tarvitse päivittää joka kierroksella
Gibbs-poiminta Tämän nimen antoivat Geman & Geman (1984) fysiikassa tunnetaan myös nimellä heat bath method Monilla malleilla ehdolliset jakaumat mukavaa muotoa Slide 35 Gibbs-poiminta on Metropolis-Hastings -algoritmin erikoistapaus - parametreja päivitetään yksi kerrallaan - ehdotusjakaumana parametrin täysi ehdollinen jakauma ehdotusjakauma ja kohdejakauma täsmälleen sama hyväksymistodennäköisyys 1 Gibbs-poiminta Poimitaan näytteitä vuorotellen jokaisen parametrin täydellisestä ehdollisesta jakaumasta (full condtional distribution) annettuna kaikki muut parametrit missä θ t 1 j p(θ j θ t 1 j, y) on kaikki muut parametrit paitsi θ j sen hetkisillä arvoillaan Slide 36 θ t 1 j = (θ t 1,...,θ t j 1, θ t 1 j+1,..., θ t 1 d ) - yhden aika-askeleen t aikana päivitetään vuorotellen jokainen θ j (ei välttämätöntä vrt. Metropolis-Hastings)
Gibbs-poiminta Esimerkki: yksi kaksiulotteinen havainto (y 1, y 2 ) - normaalijakaumamalli tuntemattomalla keskiarvolla ja tunnetulla kovarianssilla θ 1 y N y 1, 1 ρ ρ 1 θ 2 y 2 Slide 37 - ehdolliset jakaumat (kirja s. 86 ja 288) θ 1 θ 2, y N(y 1 + ρ(θ 2 y 2 ), 1 ρ 2 ) θ 2 θ 1, y N(y 2 + ρ(θ 1 y 1 ), 1 ρ 2 ) Esim7_2.m Gibbs-poiminta Käytettäessä semikonjugaattisia (hyper)prioreja, voidaan monille malleille laskea täydet ehdolliset jakaumat analyyttisesti ja voidaan poimia näytteitä helposti - esim. hierarkkinen normaalijakaumamalli - WinBUGS/OpenBUGS Slide 38 Ei säädettäviä algoritmiparametreja (vrt. ehdotusjakauma Metropolis-algoritmissa) Jos joku ehdollinen jakauma ei helppoa muotoa, voidaan käyttää myös monia tehokkaita yleisalgoritmeja yksiulotteisesta jakaumasta poimimiseen esim. hilapoiminta, Metropolis-Hastings tai viipalepominta (luento 11) Joskus päivitetään yhtäaikaa useampaa parametria annettuna muut parametrit (blocking, vrt. Metropolis-Hastings)
Sisäänajo (burn-in) ja konvergenssidiagnostiikka Tällä viikolla tehkää konvergenssidiagnostiikka visuaalisesti - Esim7_3.m Slide 39 Useiden ketjujen käyttö Ketjujen alustus - aloita eri ketjut eri alkupisteistä - pyri valitsemaan alkupisteet suuremalla hajonnalla kuin posteriorin oletettu hajonta (overdispersed starting points) - aloita jokainen ketju eri satunnaislukusiemenellä Slide 40 Vertaa kiinnostavia skalaariarvoja, esim: - parametrit - parametreista laskettavat muut kiinnostavat - tulevien havaintojen ennusteet - log-posterioritiheys - log-prediktiivinen tiheys Poista ketjujen alusta riittävästi, että ketjut eivät erotu toisistaan (ketjut ovat unohtaneet alkupisteet)
Kuinka monta näytettä MCMC-ketjuista Kuinka kauan ketjua on simuloitava, että saadaan riittävän paljon näytteitä tarvittavan tarkkuuteen yhteenvetolukuja laskettaessa? Näytteet eivät riippumattomia - Monte Carlo -estimaatit silti päteviä - Monte Carlo -estimaatin epävarmuuden arviointi vaikeampaa Slide 41 - mahdollista arvioida efektiivinen näytteiden määrä (ensi viikolla)