Hidden Markov Model - Adatbányászat és Keresés Csoport ... · Feladat: hat arozzuk meg a legval...
Transcript of Hidden Markov Model - Adatbányászat és Keresés Csoport ... · Feladat: hat arozzuk meg a legval...
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