Hidden Markov Model - Adatbányászat és Keresés Csoport ... · Feladat: hat arozzuk meg a legval...

32
Hidden Markov Model ob¨ ol¨ os-Szab´ o Julianna March 12, 2013

Transcript of Hidden Markov Model - Adatbányászat és Keresés Csoport ... · Feladat: hat arozzuk meg a legval...

Hidden Markov Model

Gobolos-Szabo Julianna

March 12, 2013

Outline

1 Egy pelda

2 Feladat formalizalasa

3 Forward-algoritmus

4 Backward-algoritmus

5 Baum-Welch algoritmus

6 Skalazas

7 Egyeb aprosagok

8 Alkalmazas

Pelda

elmult evek atlaghomersekletet, idojarasat probaljukmegbecsulni (adat nem all rendelkezesre)

ami megfigyelheto: fak evgyurui

tudjuk, hogy hidegben kevesbe fejlodik a fa

Meleg-hideg evekvaltakozasa:

H CH 0.7 0.3

C 0.4 0.6

Homerseklet hatasa azevgyurukre:

S M LH 0.1 0.4 0.5

C 0.7 0.2 0.1

Pelda

Allapotok: Hot, Cold

Megfigyeles szimbolumai: Small, Medium, Large

Allapotatmenet matrix:

A =

[0.7 0.3

0.4 0.6

]

Kibocsatasi matrix:

B =

[0.1 0.4 0.5

0.7 0.2 0.1

]

Megfigyeles: O = SMLS

Feladat: hatarozzuk meg a legvaloszınubb allapotsorozatot, amiO-t generalta!

Mit jelent, hogy ”legvaloszınubb”?

Feladat: hatarozzuk meg a legvaloszınubb allapotsorozatot, amiO-t generalta!

Dinamikus programozas: adott hosszusagu sorozatok kozulmegadja a legnagyobb valoszınusegut.HMM: olyan allapotsorozatot ad meg, ami a helyes allapotokvarhato szamat maximalizalja

Emlekezteto

Markov-lancEgy X1,X2, . . . ,Xn valoszınusegi valtozo sorozat, amire ∀n-reteljesul:

P(Xn = xn|Xn−1 = xn−1,Xn−1 = xn−1, . . . ,X1 = x1)

= P(Xn = xn|Xn−1 = xn−1)

Egy lepeses atmenetvaloszınuseg:

pij = P(X1 = j |X0 = i)

Jelolesek

T : megfigyelt szekvencia hossza

N: Markov-folyamat allapotainak szama

M: megfigyeles szimbolumainak szama

Q: Markov-folyamat allapotainak halmaza {q0, . . . , qN−1}V : megfigyeles szimbolumainak halmaza {0, . . . ,M − 1}A: allapotatmenet valoszınusegek matrixa

B: megfigyelesi valoszınusegek matrixa

π: kezdeti eloszlas

O: a megfigyelt szekvencia (O0,O1, . . . ,OT−1,)

λ = (A,B, π)

Jelolesek

Allapotatmenet valoszınusegek matrixa (A):

ai ,j = P(qj -ben vagyunk t + 1-ben|qi -ben voltunk t-ben)

stacionarius: t-tol nem fugg

sorsztochasztikus, azaz∑

j ai ,j = 1

Megfigyelesi valoszınusegek matrixa (B):

bj(k) = P(Ot = k|t-ben qj -ben vagyunk)

stacionarius: t-tol nem fugg

sorsztochasztikus, azaz∑

j bjk = 1

A harom feladat

1 Adott a modell λ = (A,B, π) es egy O megfigyeles. KeressukP(O|λ)-t!

2 Adott a modell λ = (A,B, π) es egy O megfigyeles. Keressuk ahatterbeli Markov-folyamat legvaloszınubb allapotsorozatat!

3 Adott egy O megfigyeles, N es M dimenziok. Keressukλ = (A,B, π)-t, amire P(O|λ) maximalis!

1. feladat - Forward algoritmus

Feladat: Adott a modell λ = (A,B, π) es egyO = (O0,O1, . . . ,OT−1) megfigyeles. Keressuk P(O|λ)-t!(Allapotok a hatterben: X = (x0, x1, . . . , xT−1))

P(O|X , λ) = bx0(O0) · bx1(O1) . . . bxT−1(OT−1) =

T−1∏i=0

bxi (Oi )

P(X |λ) = πx0ax0,x1ax1,x2axT−2,xT−1= πx0

T−2∏i=0

axi ,xi+1

Mivel P(O,X |λ) =P(O ∩ X ∩ λ)

P(λ)es

P(O|X , λ) · P(X |λ) =P(O ∩ X ∩ λ)

P(X ∩ λ)

P(X ∩ λ)

P(λ)=

P(O ∩ X ∩ λ)

P(λ)A jobb oldalak egyenlosegebol adodik:

P(O,X |λ) = P(O|X , λ) · P(X |λ)

1. feladat - Forward algoritmus

A fentiekbol:

P(O|λ) =∑X

P(O,X |λ) =∑X

P(O|X , λ) · P(X |λ)

=∑X

πx0

T−1∏i=0

bxi (Oi )T−2∏i=0

axi ,xi+1

Ennek a direkt kiszamıtasa: 2TNT lepes lenne.Hatekony kiszamitas: Forward-algoritmus

Forward algoritmus

αt(i) = P(O0O1 . . .Ot , xt = qi |λ)

Rekurzıv kiszamıtas:

1 α0(i) = πibi (O0)

2 t > 0 eseten: αt(i) = [∑N−1

j=0 αt−1(j)aji ] · bi (Ot)

3 P(O|λ) =∑N−1

j=0 αT−1(i)

Lepesszam: N2T (Megjegyzes: A Viterbi-algoritmus ehhez nagyonhasonlo, de

∑helyett max van, es a legvaloszınubb szekvenciat

adjak meg. (ld. a korabban emlıtett DP-feladat))

2. feladat - Backward algoritmus

Feladat: Adott a modell λ = (A,B, π) es egy O megfigyeles.Keressuk a levaloszınubb X = x1x2 . . . xT−1 allapotsorozatot!Legyen

βt(i) = P(Ot+1Ot+2 . . .OT−1|xt = qi , λ)

Rekurzıv kiszamıtas:

1 βT−1(i) = 1 , 0 ≤ i ≤ N − 1

2 t < T − 1 eseten: βt(i) = [∑N−1

j=0 aijbj(Ot+1βt+1(j))

3 Legyen γt(i) = P(xt = qi |O, λ)

γt(i) =αt(i)βt(i)

P(O|λ)

4 Legvaloszınubb allapot t-ben: argmaxi γt(i)

3. feladat - Modell tanıtasa

Feladat: Adott O,N,M, keressuk λ = (A,B, π)-t!

Legyen

γt(i , j) == P(xt = qi , xt+1 = qj |O, λ) =αt(i)aijbj(t + 1)βt+1(j)

P(O|λ)

(azaz γt(i , j) annak a valoszınusege, hogy t-kor az i allapotbanvagyok, t + 1-ben pedig a j allapotban, ismerve az O szekvenciat esa modellt)

Modell tanıtasa

1 πi = γ0(i)

2 aij =

∑T−2t=0 γt(i , j)∑T−2t=0 γt(i)

=qi → qj atmenetek varhato szama

qi → barmi atmenetek varhato szama

3 bj(k) =

∑t;Ot=k γt(j)∑

t γt(j)=

qj -ben hanyszor volt a megfigyeles k

qj -ben hanyszor jartunk

Modell tanıtasa

Inicializalas: πi ∼ 1N aij ∼ 1

N bj(k) ∼ 1M Algoritmus

1 Inicializalas

2 α, β, γ ertekeinek szamıtasa

3 λ = (A,B, π) becslese a fentiek alapjan.

4 Ha P(O λ) novo, akkor iteralunk tovabb

A relatıv entropiarol

Legyenek X ,Y diszkret eloszlasu valoszınusegi valtozok!

H(Y |X ) =∑i

y(i) logy(i)

x(i)

AllıtasH(Y |X ) ≥ 0

Bizonyıtas

−H(Y |X ) =∑i

y(i) logy(i)

x(i)≤

∑i

y(i)(y(i)

x(i)− 1) = 0

(Felhasznaltuk, hogy log x ≤ x − 1)

Az eljaras helyes

Cel: argmaxλP(O|λ) = argmaxλ∑

X P(O,X |λ)

P(O,X |λ) = P(X |O, λ) · P(O|λ)

λ: a modell parametere, ezt probalom kozelıteniλt : a modell parameterenek kozelıtese”Varazsolunk” : szorozzunk be P(O,X |λt)-vel es osszegezzunkX -re! ∑

X

P(O,X |λt) logP(O,X |λ) =

∑X

P(X |O, λt) logP(X |O, λ) +∑X

P(X |O, λt) logP(O|λ)

∑X

P(X |O, λt) logP(O|λ) =

∑X

P(X |O, λt)[logP(O,X |λ)− logP(X |O, λ)]

A bal oldalon az X -tol fuggetlen tag kiemelheto (a megmaradtosszeg erteke pedig 1), ıgy:

logP(O|λ) =∑X

P(X |O, λt) logP(O,X |λ)−∑X

P(X |O, λt) logP(X |O, λ)

Jelolje: Q(λ|λt) =∑

X P(X |O, λt) logP(O,X |λ)Cel: a kovetkezo iteracioban ne csokkenjen a likelihood.

logP(X |λt) =∑X

P(X |O, λt) logP(O,X |λt)

−∑X

P(X |O, λt) logP(X |O, λt)

Kepezzuk a ket egyenlet kulonbseget:

logP(O|λ)− logP(X |λt) = Q(λ|λt)− Q(λt |λt)

−∑X

P(X |O, λt) logP(X |O, λ)

P(X |O, λt)

A harmadik tag egy relatıv entropia (-1)-szerese, ıgylogP(O|λ)− logP(X |λt) ≥ 0-hoz elegendo:Q(λ|λt)− Q(λt |λt) ≥ 0Hasznalhato az EM algoritmus:

1 Szamold ki Q(λ|λt)!

2 λt+1 = argmaxQ(λ|λt)

Q(λ|λt) =∑X

P(X |O, λt) logP(O,X |λ)

P(O,X |λ) =N∏j=1

M∏i=1

bj(i)Ej (i ,X )(

N∏k=1

N∏l=1

ak,l)Ak,l (X )

Ej(i ,X ): hanyszor hasznaltam a j allapotot i szimbolumkibocsatasaraAk,l(X ): hany k → l ugras volt az X utvonalon

logP(O,X |λ) =N∑j=1

M∑i=1

Ej(i ,X ) log bj(i)+N∑

k=1

N∑l=1

Ak,l(X ) log ak,l)

Ezt beırva Q-ba:

Q(λ|λt) =∑X

P(X |O, λt)(N∑j=1

M∑i=1

Ej(i ,X ) log bj(i)+N∑

k=1

N∑l=1

Ak,l(X ) log ak,l)))

Q(λ|λt) =∑X

P(X |O, λt)(N∑j=1

M∑i=1

Ej(i ,X ) log bj(i)+N∑

k=1

N∑l=1

Ak,l(X ) log ak,l)))

Ej(i ,X ) es Ak,l(X ) : csak X -tol fuggnek, λ-tol nembj(i), ak,l : X -tol fuggetlenek, ezeket kell update-elni

Q(λ|λt) =

N∑j=1

M∑i=1

log bj(i)∑X

P(X |O, λt)Ej(i ,X )+

N∑k=1

N∑l=1

log ak,l∑X

P(X |O, λt)Ak,l(X )

AllıtasN∑

k=1

N∑l=1

log ak,lE(Ak,l(X ))

maximalis, ha ak,l =E(Ak,l(λ

t))∑l ′ E(Ak,l ′(λt))

Bizonyıtas

N∑k=1

N∑l=1

E(Ak,l(X )) logE(Ak,l(λ

t))∑l ′ E(Ak,l ′(λt))

−N∑

k=1

N∑l=1

E(Ak,l(X )) log ak,l ≥ 0

Bovıtsunk∑

l ′′ E(Ak,l ′′(λt))-vel!

N∑k=1

N∑l=1

N∑l ′′=1

E(Ak,l ′′(λt))

E(Ak,l(λt))∑N

l ′′=1 E(Ak,l ′′(λt))log

E(Ak,l(λt))∑N

l ′=1 E(Ak,l ′(λt))

−N∑

k=1

N∑l=1

N∑l ′′=1

E(Ak,l ′′(λt))

E(Ak,l(λt))∑N

l ′′=1 E(Ak,l ′′(λt))log ak,l

=N∑

k=1

[N∑

l ′′=1

E(Ak,l ′′(λt))

N∑l=1

E(Ak,l(λt))∑N

l ′′=1 E(Ak,l ′′(λt))

· log

E(Ak,l(X ))∑Nl ′′=1 E(Ak,l ′′(λt))

ak,l]

Relatıv entropia miatt ez tagonkent ≥ 0

Skalazas

Valoszınusegek szorzataval kell szamolni → alulcsordulasMegoldas: α, β ertekek skalazasa

αt(i) =N−1∑j=0

αt−1(j)aj ,ibi (Ot)

t = 0 - ra:

α0(i) = α0(i)

c0 =1∑N−1

j=0 α0(j)

α0(i) = c0α0

t > 0 - ra:

αt(i) =∑N−1

j=0 αt−1(j)aj ,ibi (Ot)

ct =1∑N−1

j=0 αt(j)

αt(i) = ct αt

Skalazas

Allıtas

αt(i) = c0c1 . . . ctαt(i)

Bizonyıtas: indukcioval.t = 0 esetben triv. Tegyuk fel, hogy t-re igaz, ekkor t + 1-re:

αt+1(i) = ct+1αt+1 =

ct+1

N−1∑j=0

αt(j)aj ,ibi (Ot+1)

Kihasznalva az indukcios feltevest:

= c0c1 . . . ct+1

N−1∑j=0

αt(j)aj ,ibi (Ot+1) = c0c1 . . . ct+1αt+1(i)

Skalazas

Kovetkezmeny:N−1∑j=1

αT−1(j) = 1

. Ennek felhasznalasaval:

1 =N−1∑j=1

αT−1(j) = c0c1 . . . cT−1

N−1∑j=0

αT−1(j)

= c0c1 . . . cT−1P(O|λ)

P(O|λ) =1∏T−1

i=0 ci

β-k skalazasa ugyanıgy megy: βt(i) = ctβt(i)a modellben γt(i) es γt(i , j) szamıtasahoz hasznalhatoak a βt es αt

ertekek

Egy allapotban maradas valoszınusege

Az eddigiek alapjan:

pi (d) = (aij)d−1(1−aij) = d-szer egymas utan Si -ben vagyok (pontosan)

exponencialisan lecseng → nem valosaghu

tipikus eset: eloszlasunk van arra, hogy az i-dik allapotbanhany allapotot varakozik a modell, mielott tovabblep

Ekkor a modell ıgy valtozik:

1 q1 = Si -et kivalasztjuk π alapjan

2 d1-et sorsoljuk pq1(d) alapjan

3 O1O2 . . .Od1-et generaljuk bq1(O1O2 . . .Od1) alapjan (ez

tipikusan∏d1

t=1 bq1(Ot))

4 q2 = S2-t kivalasztjuk az aq1,q2-k alapjan

Egy allapotban maradas valoszınusege

Termeszetesen ekkor az α, β formulaja is modosul. Peldaul:

αt(i) =∑q

∑d

πq1pq1(d1)P(O1O2 . . .Od1 |q1)·

aq1,q2pq2(d2)P(Od1+1Od1+2 . . .Od1+d2 |q2) · . . .

aqr−1,qrpqr (dr )P(Od1+···+dr−1+1Od1+···+dr−1+2 . . .Od1+···+dr |q2) · . . .

A kepletek is modosulnak, erre most itt nem ternek ki.

Egy szovegbanyaszati alkalmazas

Adott egy hosszabb idoszakot felolelo cikkgyujtemeny. Ebbenszeretnenk automatikusan temakat talalni, majd pedig a temakevoluciojat, alakulasait vizsgalni.

A temakat nyelvmodellekkel jellemezzuk.

Feltetelezzuk, hogy van k darab tema (T1, . . . ,Tk) es egyaltalanos nyelvmodellunk(B).

Allapotok: temak

A megfigyeles szimbolumai: a szavak

Egy szovegbanyaszati alkalmazas

Ebbol konstrualunk egy k + 1 allapotu HMM-et, ahol aMarkov-folyamatban Ti -bol Tj -be kozvetlenul nem lephetek, mindigcsak B-n keresztul

Amire szuksegunk van: a hatterfolyamat legvaloszınubballapotsorozata, kesobb ezt tudjuk arra hasznalni, hogy adottidoszakok legjellemzobb temait es azok kapcsolatait feltarjuk

Koszonom a figyelmet!

Felhasznalt irodalom:

Mark Stamp: A Revealing Introduction to Hidden MarkovModels

Lawrence R. Rabiner: ”A tutorial on Hidden Markov Modelsand selected applications in speech recognition”

Miklos Istvan: Sztochasztikus modellek a bioinformatikaban,eloadasjegyzet (2009.)

Mei, Zhai: Discovering evolutionary theme patterns from text:an exploration of temporal text mining