EM-algoritmi

testwikistä
Siirry navigaatioon Siirry hakuun

EM-algoritmi (EM on Malline:Lyhenne eli odotusarvon maksimointi) on tilastotieteessä käytetty iteratiivinen menetelmä suurimman uskottavuuden estimaattien löytämiseksi tilastollisten mallien parametreille tilanteessa, jossa osa tiedosta puuttuu. Puuttuva tieto voi olla esimerkiksi piilevä luokkamuuttuja, josta ei saatu lainkaan havaintoja.

Vanhan uskollisen purkautumisiin liittyvän aineiston EM-klusterointi. Jokin aloitusmalli sovitetaan havaittuun aineistoon. (Akseleiden erilaisten mitta-asteikoiden vuoksi jakauma näyttää kahdelta hyvin litteältä ja leveältä soikiolta.) Ensimmäiset iteraatiot muuttavat mallia huomattavasti, minkä jälkeen malli konvergoi kohti geysirin purkausten tyypillisimpiä arvoyhdistelmiä. Visualisointi tehty ELKI:llä.

Kuvaus

Olkoon θ=(θ1,θ2,...,θk) aineiston Y jakaumaan liittyvien tuntemattomien parametrien muodostama vektori. Täydelliselle aineistolle uskottavuusfunktio voidaan kirjoittaa muodossa

L(Y|θ)=i=1nf(yi,θ) .

Hyvin usein osa oleellisista tiedosta jää kuitenkin havaitsematta. Täydellinen data voidaan jakaa kahteen osaan: havaittuun aineistoon X ja puuttuvaan aineistoon Z. Tällöin täydellisen aineiston uskottavuus saadaan kirjoitettua muotoon

L(X,Z|θ)=L(X|θ)L(Z|X,θ).

Ottamalla logaritmi puolittain lauseke saadaan muotoon

logL(X|θ)=logL(X,Z|θ)logL(Z|X,θ).

Oletetaan mallin parametreille tunnettu arvo θ=θ(t) iteraatiolla t. Tällöin edellä esitetyn lausekkeen odotusarvo puuttuvien havaintojen suhteen on

EZ|X,θ=θ(t)[logL(X|θ)]=EZ|X,θ=θ(t)[logL(X,Z|θ)logL(Z|X,θ)].

Merkitään nyt täydellisen aineiston logaritmista uskottavuutta seuraavasti:

Q(θ|θ(t))=EZ|X,θ=θ(t)[logL(X,Z|θ)]=logL(X,Z|θ)L(Z|X,θ(t))dZ

Algoritmissa toistetaan vuorotellen kahta askelta:

E-askel: Johda termin Q(θ|θ(t)) lauseke.
M-askel: Etsi parametrille θ sellainen arvo θ(t+1), että uskottavuus maksimoituu.

Aluksi tuntemattomille parametreille asetetaan alkuarvot θ(0). Ensimmäinen iteraatio aloitetaan siis laskemalla Q(θ|θ(0)).

Varsinainen iteratiivinen algoritmi joudutaan johtamaan erikseen kullekin tilanteelle. [1][2]

Ominaisuuksia

Käytettäessä EM-algoritmia uskottavuusfunktion arvo kasvaa jokaisella iteraatiolla ja parametrin estimaatti lähestyy monotonisesti suurimman uskottavuuden estimaattia.[3][2]

EM-algoritmi on hyödyllinen uskottavuuden tullessa eksponenttisesta perheestä: E-askel sievenee tyhjentävien tunnuslukujen odotusarvojen summaksi ja M-askeleessa maksimoidaan lineaarista funktiota. Tällaisessa tapauksessa voidaan usein johtaa suljettu muoto askelten päivittämiseksi Sundbergin kaavalla (Rolf Sundberg julkaisi kaavan, mutta hän hyödynsi Per Martin-Löfin ja Anders Martin-Löfin julkaisemattomia tuloksia). [4][5][6][7][8][9][10]

Esimerkkejä

Gaussinen sekoitus

Animaatio, joka havainnollistaa kaksikomponenttisen sekoitusjakauman sovittamista EM-algoritmilla Old Faithful aineistoon. Algoritmin askeleet satunnaisesta aloituksesta konvergenssiin.

Olkoon 𝐱=(𝐱1,𝐱2,,𝐱n) n-kokoinen otos riippumattomia havaintoja kahdesta moniulotteisesta normaalijakaumasta, ulottuvuuksien määrä d>1. Olkoot 𝐳=(z1,z2,,zn) latentteja muuttujia, jotka kertovat kummasta ryhmästä kyseinen havainto on peräisin.[2]

Xi|(Zi=1)𝒩d(μ1,Σ1) \, ja \, Xi|(Zi=2)𝒩d(μ2,Σ2),

missä

P(Zi=1)=τ1 ja P(Zi=2)=τ2=1τ1.


Tavoite on estimoida jakaumien tuntemattomat keskiarvot ja kovarianssit, sekä jakaumien sekoittumista kuvaava arvo τ:

θ=(τ,μ1,μ2,Σ1,Σ2),

missä uskottavuusfunktio on:

L(θ;𝐱,𝐳)=P(𝐱,𝐳|θ)=i=1nj=12𝕀(zi=j) τj f(𝐱i;μj,Σj),

missä 𝕀 on indikaattorifunktio ja f on moniulotteisen normaalijakauman tiheysfunktio. Tämä voidaan kirjoittaa uudelleen eksponenttisen perheen muotoon:

L(θ;𝐱,𝐳)=exp{i=1nj=12𝕀(zi=j)[logτj12log|Σj|12(𝐱iμj)Σj1(𝐱iμj)d2log(2π)]}.

Voidaan huomata, että kullekin i indikaattori 𝕀(zi=j) saa arvon yksi vain yhdellä j, ja toisella j indikaattorin arvo on nolla. Sisempi summa siis supistuu yhdeksi lausekkeeksi eikä summausta tarvita.

E-askel

Oletetaan, että meillä on parametrien estimaatit θ(t). Tällöin Zi:n ehdollinen jakauma voidaan kirjoittaa todennäköisyytenä Bayesin kaavan mukaisesti:

Tj,i(t):=P(Zi=j|Xi=𝐱i;θ(t))=τj(t) f(𝐱i;μj(t),Σj(t))τ1(t) f(𝐱i;μ1(t),Σ1(t))+τ2(t) f(𝐱i;μ2(t),Σ2(t)).

Siten E-askel johtaa seuraavaan funktioon:

Q(θ|θ(t))=E[logL(θ;𝐱,𝐳)]=E[logi=1nL(θ;𝐱i,𝐳i)]=E[i=1nlogL(θ;𝐱i,𝐳i)]=i=1nE[logL(θ;𝐱i,𝐳i)]=i=1nj=12Tj,i(t)[logτj12log|Σj|12(𝐱iμj)Σj1(𝐱iμj)d2log(2π)]

M-askel

Huomataan, että τ,(μ1,Σ1) ja (μ2,Σ2) voidaan kukin maksimoida toisistaan riippumatta, sillä ne ovat edellä esitetyssä lausekkeessa eri termeissä.

Tarkastellaan aluksi parametria τ, jolla on rajoite τ1 + τ2=1:

τ(t+1)=argmaxτ Q(θ|θ(t))=argmaxτ {[i=1nT1,i(t)]logτ1+[i=1nT2,i(t)]logτ2}

Tämä on samaa muotoa kuin binomijakauman suurimman uskottavuuden estimaatti. Siten

τj(t+1)=i=1nTj,i(t)i=1n(T1,i(t)+T2,i(t))=1ni=1nTj,i(t).

Tarkastellaan seuraavaksi parametrien (μ1,Σ1) estimaatteja:

(μ1(t+1),Σ1(t+1))=argmaxμ1,Σ1 Q(θ|θ(t))=argmaxμ1,Σ1 i=1nT1,i(t){12log|Σ1|12(𝐱iμ1)Σ11(𝐱iμ1)}

Tämä on samaa muotoa normaalijakauman painotetun SU-estimaatin kanssa, joten

μ1(t+1)=i=1nT1,i(t)𝐱ii=1nT1,i(t) ja Σ1(t+1)=i=1nT1,i(t)(𝐱iμ1(t+1))(𝐱iμ1(t+1))i=1nT1,i(t).

Vastaavasti

μ2(t+1)=i=1nT2,i(t)𝐱ii=1nT2,i(t) ja Σ2(t+1)=i=1nT2,i(t)(𝐱iμ2(t+1))(𝐱iμ2(t+1))i=1nT2,i(t).

Lopettaminen

Lopeta iterointi, jos logL(θt;𝐱,𝐳) ja logL(θ(t1);𝐱,𝐳) ovat riittävän lähellä toisiaan (erotus alle jonkin ennalta asetetun kynnysarvon).

Yleistäminen

Yllä esitetty algoritmi voidaan yleistää useampien kuin kahden monimuuttujaisen normaalijakauman sekoituksille.

Historiaa

EM-algoritmin historia jaetaan usein kirjoittajien Dempster, Laird ja Rubin vuonna 1977 ilmestynyttä artikkelia[11] edeltävään ja sitä seuraavaan aikaan. Kyseisessä artikkelissa annettiin runsaasti esimerkkejä algoritmin sovelluksista, ja kuvailtiin sen konvergenssiä ja muita perusominaisuuksia. Tätä artikkelia kutsutaan usein DLR-artikkeliksi. [1]

Ennen DLR-artikkelia

Kirjallisuudessa ensimmäinen maininta liittyen EM-tyyppiseen algoritmiin esiintyy Newcombin vuoden 1886 artikkelissa [12] kahden yksiulotteisen normaalijakauman sekoituksesta.

Vuonna 1960 Buck [13] esitteli p-ulotteisen populaation keskiarvovektorin ja kovarianssimatriisin estimointia tilanteessa, jossa osa aineistosta puuttui. Hän käytti regressiota ja puuttuvien havaintojen selittämistä havaitulla aineistolla. Hänen menetelmässään tarvitut regressiokertoimet ja kovarianssimatriisin kerrointen korjaukset saadaan yhdellä täydellisten havaintojen informaatiomatriisin kääntämisellä ja sopivilla matriisilaskuilla. EM-algoritmin peruselementit esiintyvät Buckin menetelmässä.

EM-algoritmin soveltamista Markov-malleille käsiteltiin sarjassa artikkeleita: Baum ja Petrie (1966), Baum ja Eagon (1967) ja Baum, Petrie, Soules ja Weiss (1970). Nämä artikkelit sisältävät helposti yleistettävissä olevia konvergenssituloksia. Näissä artikkeleissa kehitetty algoritmi toimii myös perustana nykyään käytetyille piilo-Markov-mallien EM-algoritmeille.[14][15][16]

Vuonna 1972 Orchard ja Woodbury esittelivät täydellisen ja ei-täydellisen aineiston logaritmisten uskottavuusfunktioiden välisen suhteen.[17]

DLR-artikkelin jälkeen

Rajapyykkinä toimivan artikkelin jälkeen EM-algoritmia on sovellettu muun muassa neuroverkkoihin, koneoppimisessa, psykometriikassa ja lääketieteellisessä kuvantamisessa (esimerkiksi PET-kuvauksissa).[1]

Lähteet

Malline:Viitteet

  1. 1,0 1,1 1,2 Viittausvirhe: Virheellinen <ref>-elementti; viitettä mclachlan ei löytynyt
  2. 2,0 2,1 2,2 Viittausvirhe: Virheellinen <ref>-elementti; viitettä hastie2001 ei löytynyt
  3. Viittausvirhe: Virheellinen <ref>-elementti; viitettä Navidi ei löytynyt
  4. Viittausvirhe: Virheellinen <ref>-elementti; viitettä Sundberg1971 ei löytynyt
  5. Viittausvirhe: Virheellinen <ref>-elementti; viitettä Sundberg1976 ei löytynyt
  6. Viittausvirhe: Virheellinen <ref>-elementti; viitettä Martin-Löf1963 ei löytynyt
  7. Viittausvirhe: Virheellinen <ref>-elementti; viitettä Martin-Löf1966 ei löytynyt
  8. Viittausvirhe: Virheellinen <ref>-elementti; viitettä Martin-Löf1970 ei löytynyt
  9. Viittausvirhe: Virheellinen <ref>-elementti; viitettä Martin-Löf1974a ei löytynyt
  10. Viittausvirhe: Virheellinen <ref>-elementti; viitettä Martin-Löf1974b ei löytynyt
  11. Viittausvirhe: Virheellinen <ref>-elementti; viitettä Dempster1977 ei löytynyt
  12. Viittausvirhe: Virheellinen <ref>-elementti; viitettä newcomb ei löytynyt
  13. Viittausvirhe: Virheellinen <ref>-elementti; viitettä buck ei löytynyt
  14. Viittausvirhe: Virheellinen <ref>-elementti; viitettä baum1 ei löytynyt
  15. Viittausvirhe: Virheellinen <ref>-elementti; viitettä baum2 ei löytynyt
  16. Viittausvirhe: Virheellinen <ref>-elementti; viitettä baum3 ei löytynyt
  17. Viittausvirhe: Virheellinen <ref>-elementti; viitettä orchard ei löytynyt