algoritmos para modelos ocultos de markov (hmm)

Post on 01-Oct-2021

16 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Algoritmos para ModelosOcultos de Markov (HMM)

•Introducción

•Algoritmo de ViterbiCalcula la trayectoria más probable en un HMM

•Algoritmos forward y backward Calculan la probabilidad de una secuencia de palabras

•Algoritmo forward-backward (Baum-Welch)Estima las probabilidades asociadas a un HMM

Introducción

Los λ se pueden mejorar utilizando HMM. Los nuevos λ’producen probabilidades más altas (no máximas) para el texto

PROBLEMA:Determinar

P(W1,n|HMM)

Algoritmos:• forward•backward

UNA SOLUCIÓN

P(Wn|Wn-2,n-1)= λλ1Pe(Wn)+λλ2Pe(Wn|Wn-1)+λλ3Pe(Wn|Wn-2,n-1)

Ya vimos cómo estimar P(W1,n) usando un modelo trigrama suavizado.

Los trigramas menos comunes no ocurren en el texto de entrenamiento:

HMM(λλ’)

HMM(λλn)

...

W1,n

W1,n fue producida por el mejor HMM

Problema de evaluación

Introducción

También vimos cómo asignar categorías gramaticales a las palabrasde un corpus utilizando un HMM.

PROBLEMA:Encontrar S1,n+1más probable

Los estados del HMM representan las categorías gramaticales

Algoritmo de

Viterbi

W1,n

HMM

UNA SOLUCIÓN

Introducción

¿Cómo se estiman las probabilidades de un HMM?Entrenamiento de un HMM

PROBLEMA:Maximizar

P(W1,n|HMM)

Algoritmo forward-backward

(Bawm-Welch)

W1,n

HMMinicial

UNA SOLUCIÓN

Modifica las probabilidades asociadas al HMM para queP(W1,n|HMM modificado) > P(W1,n|HMM inicial)

Debe ser representativa

Algoritmo de Viterbi (forward)

Algoritmo de Viterbi

W1,n HMM

σ(n+1)

defσ(n+1) = arg max P(S1,n+1 | W1,n) S1,n+1

= arg max

= arg max P(S1,n+1 ,W1,n) S1,n+1

P(S1,n+1 ,W1,n) S1,n+1 P(W1,n)

σ(n+1) = S1,n+1 más probable que generó a W1,n

σi(t) = S1,t más probable que generó a W1,t-1 y termina en St=Si defσi(t) = arg max P(S1,t-1 , St=Si ,W1,t-1) S1,t

!σi(1) = Si ns

!σi(t+1) = σj(t) o Si j= arg max P(σk(t)) P(Sk Wt Si) k=1 su probabilidadLa mejor trayectoria a un estado Sj en el tiempo t

Si t=1ε

t=2b

t=3b

t=4b

t=5a

σq(t) q1.0

qq.2

qqq.04

qqqq.008

qrrrq.005

σr(t) r0.0

qr.1

qrr.05

qrrr.025

qrrrr.005

S1,t q qq qrr qrrr qrrrqqrrrr

.05 .025 .005

Ejemplo

q r

ε :1.0ε :1.0

a:.4

b:.2

a:.3

b:.1

a:.2

b:.1

a:.2

b:.5

q q q q q

r r r r r

1.0

0.0

t=1 t=2 t=3 t=4 t=5

εε b b b a

.2 .04 .008 .0032

.1 .02 .004 .0024.01 .005 .005

Considerar únicamentela mejor trayectoriaS1,t no es suficiente

El algoritmo encuentraS1,n+1 en un tiempo lineal

Algoritmo de Viterbi (backward)

Algoritmo de Viterbi

W1,n HMM

γ(n+1)

γ(n+1) = S1,n+1 más probable que generó a W1,n defγ(n+1) = arg max P(S1,n+1 ,W1,n) S1,n+1

γi(t) = S1,t más probable que generó a W1,t-1 y que comienza en S1=Si defγi(t) = arg max P(S1=Si , S2,t , W1,t-1) S1,t

!γi(n+1) = Si ns

!γi(t-1) = Si o γj(t) j= arg max P(Si Wt-1 Sk) P(γk(t)) k=1 su probabilidadLa mejor trayectoria que comience en Sj en el tiempo t

Ejemplo:

q r

ε :1.0ε :1.0

a:.4

b:.2

a:.3

b:.1

a:.2

b:.1

a:.2

b:.5

ε b b b a

q q q q q

r r r r r

t=1 t=2 t=3 t=4 t=5

.005 .005 .016 .08 .04 1.0

ε:1.0 b:.2 b:.2 b:.2 a:.4

ε :0.0 b:.5 b:.5 b:.5 a:.2

b:.1 b:.1 b:.1 a:.3b:.1 b:.1 b:.1 a:.2

0.0 .025 .05 .1 .2 1.0

γq(t)=

Algoritmo forward

Algoritmo forward

W1,n HMM

P(W1,n)

ns

P(W1,n) = Σ P(W1,n, ,Sn+1 =Si) i=1

def

αi(t) = P(W1,t-1, ,St =Si) t> 1 defαi(1) = 1 i=1 (comenzar en el estado S1)

0 en otro caso ns

P(W1,n) = Σ αi(n+1) i=1

{

αj(t+1) = P(W1,t, ,St+1 =Sj) ns

=Σ P(W1,t, ,St =Si ,St+1 =Sj) i=1

ns ns

=Σ P(W1,t,-1 ,St =Si ) P(Wt, ,St+1 =Sj |St =Si) =Σ αi(t) P(Si Wt Sj)

i=1 i=1

Ejemplo:

q r

ε :1.0ε :1.0

a:.4

b:.2

a:.3

b:.1

a:.2

b:.1

a:.2

b:.5

ns

P(bbba) = Σ αi(5) i=1

= .0279

q q q q q

r r r r r

t=1 t=2 t=3 t=4 t=5

1.0 .2 .05 .017 .0148

ε:1.0 b:.2 b:.2 b:.2 a:.4

ε :0.0 b:.5 b:.5 b:.5 a:.2

b:.1 b:.1 b:.1 a:.3b:.1 b:.1 b:.1 a:.2

0.0 .1 .07 .04 .0131

αq(t)=

αr(t)=

P(W1,t)= 1.0 .3 .12 .057 .0279

αq(1)= 1 y αr(1) =0 ns

αj(t+1) = Σ αi(t) P(Si Wt Sj) i=1

Algoritmo backward

Algoritmo forward

W1,n HMM

P(W1,n)

P(W1,n) = P(W1,n, | S1 =S1)

def

βi(t) = P(Wt,n, | St=Si) P(W1,n) = β1(1)

βi(n+1) = P(ε |Sn+1 =Si) = 1

βi(t-1) = P(Wt-1,n, |St-1 =Si) ns

=Σ P(Wt-1,n, ,St =Sj |St-1 =Si) j=1

ns

=Σ P(Wt-1,St =Sj | St-1 =Si) P(Wt,n, |St =Sj )

j=1

ns

=Σ P(Si Wt-1 Sj) βj(t) i=1

Ejemplo:

q r

ε :1.0ε :1.0

a:.4

b:.2

a:.3

b:.1

a:.2

b:.1

a:.2

b:.5

P(bbba) = β1(1) = .0279

q q q q q

r r r r r

t=1 t=2 t=3 t=4 t=5

.0279 .063 .18 .7 1.0

b:.2 b:.2 b:.2 a:.4 ε :1.0

b:.5 b:.5 a:.2 ε :1.0

b:.1 b:.1 b:.1 a:.3b:.1 b:.1 a:.2

.153 .27 .4 1.0

βq(t) =

βr(t)=

βi(t=5) = P(ε |St =Si) = 1 ns

βi(t-1) = Σ P(Si Wt-1 Sj) βj(t) i=1

Entrenamiento de unaCadena de Markov

Recorrer la CM por las aristas que generan W1,n

Contar las veces que se recorrió cada transición

W1,n CM1

Pe(Si Wk Sj)

C(Si Wk Sj)ns,nw

Σ C(Si Wm Sh)h=1,m=1

Pe(Si Wk Sj) =

Ejemplo

q rb a

b

a

Secuencia de entrenamiento: abbaababbaaa

Secuencia de transiciones: q r q q r q q r q q r q r a b b a a b a b b a a a

C(q a r) = 5C(q b q) = 3C(r a q) = 2C(r b q) = 2

Pe(q a r) = 5/8Pe(q b q) = 3/8Pe(r a q) = 2/4Pe(r b q) = 2/4

Entrenamiento de un HMM C(Si Wk Sj)ns,nw

Σ C(Si Wm Sh)h=1,m=1

Pe(Si Wk Sj) =

C(Si Wk Sj) = Σ P(S1,n+1 |W1,n) η(Si Wk Sj, S1,n,W1,n) S1,n+1

= Σ P(S1,n+1,W1,n) η(Si Wk Sj, S1,n,W1,n) S1,n+1

1P(W1,n)

η es el número de veces que Si Wk Sj ocurrió al recorrer S1,n+1

y generar W1,n

Es necesario conocerlas probabilidades de

transición

termina

Algoritmo para entrenar un HMM

W1,n HMM1

ΗΜΜ2

OldCrEntropy=0NewCrEntropy=Re-estim_Param()

OldCrEntropy = NewCrEntropyNewCrEntropy=Re-estim_Param()

OldCrEntropy≈NewCrEntropysí

no

Ejemplo

a b

0:.481:1.0

0:.041:.48

Modelo Inicial

a b

0:.361:1.0

0:.061:.58

Modelo estimadoen la primera iteración

S1,n P(S,W) a-0-b b-1-a a-0-a a-1-aababaa 0.00077 0.00154 0.00154 0 0.00077abaaaa 0.00442 0.00442 0.00442 0.00442 0.00884aaabaa 0.00442 0.00442 0.00442 0.00442 0.00884aaaaaa 0.02548 0 0 0.0597 0.09489Total 0.03509 0.01038 0.01038 0.05970 0.09489P(Si,Sj) 0.035 0.06 1 0.36 0.58

Σ a w s = 0.01038+0.05970+0.09489=0.16497Σ b w s = 0.01038

a b

0:.161:1.0

0:.671:.17

Modelo ActualW1,n = 01011

Ejemplo

a b

0:.341:1.0

0:.101:.56

Modelo estimadoen la segunda iteración

a b

0:.361:1.0

0:.061:.58

Modelo Inicial

S1,n P(S,W) a-0-b b-1-a a-0-a a-1-aababaa 0.00209 0.00418 0.00418 0 0.00209abaaaa 0.00727 0.00727 0.00727 0.00727 0.01454aaabaa 0.00727 0.00727 0.00727 0.00727 0.01454aaaaaa 0.02529 0 0 0.05058 0.07587Total 0.04192 0.01872 0.01872 0.06512 0.10704P(Si,Sj) 0.10 1 0.34 0.56

Σ a w s = 0.01872+0.06512+0.10704=0.19088Σ b w s = 0.01872

a b

0:.161:1.0

0:.671:.17

Modelo ActualW1,n = 01011

Limitaciones del algoritmo1 Si las probabilidades del modelo están en un punto crítico

entonces el algoritmo no puede mejorar sus probabilidades.

2 Las probabilidades finales son tan representativas como el corpus.

3 Se encuentran las probabilidades del modelo que más aumentenla probabilidad del corpus, pero no las mejores probabilidades.

r

q

s

b:1 b:.5

a:.5 a:1

Modelo correcto

r

q

sa:.5 b:.5 a:.25 b:.25

a:.25 b:.25 a:.5 b:.5

Modelo conpunto crítico

c

Algoritmo forward-backward(Baum-Welch)

Algoritmo forward-backward

W1,n HMM1

ΗΜΜ2

P(W1,n|HMM2) > P(W1,n|HMM1)

Corpus de entrenamiento Modelo inicial

Forma eficiente para entrenar un HMM

En cada unidad de tiempo se cuentan las transiciones usadas para

generar W1,n: n

C(Si Wk Sj) = 1 Σ P(St= Si, St+1= Sj ,Wt= wk, W1,n) P(W1,n) t=1

n

= 1 Σ P(W1,t-1 ,St= Si) P(Wt= wk, St+1= Sj| St= Si) P(Wt+1,n|St+1= Sj) P(W1,n) t=1

n

= 1 Σ αi(t) P(Si Wk Sj) βj(t+1) P(W1,n) t=1

Ejemplo

a b

0:.481:1.0

0:.041:.48

a a a a a

b b b b b

1.0 .48 .27 .13 .072 .035

0:.48 1:.48 0:.48 1:.48 1:.48

0:.04 0:.041:1.0 1:.1.0

0.0 .13 0 .48 1.0 1.0

ααa(t)=

βb(t)=

a

b

0.0 .04 0.0 .01 0.0 0.0 ααb(t)=

0.035 .062 .13 .23 .48 1.0 βa(t)=

Wk = 0 1 0 1 1 Total Pa-0-b 0.0052 0 0.0052 0 0 0.01 0.06b-1-a 0 0.0052 0 0.0048 0 0.01 1a-0-a 0.03 0 0.03 0 0 0.06 0.36a-1-a 0 0.03 0 0.03 0.035 0.095 0.58

t=1 t=2 t=3 t=4 t=5 t=6

αi(t) P(Si Wk Sj) βj(t+1) Σ

Σ a w s = 0.01+0.06+0.095=0.165Σ b w s = 0.01

Ejemplo

a b

0:.481:1.0

0:.041:.48 Wk = 0 1 0 1 1 Total Pa-0-b 0.0052 0 0.0052 0 0 0.01 0.06b-1-a 0 0.0052 0 0.0048 0 0.01 1a-0-a 0.03 0 0.03 0 0 0.06 0.36a-1-a 0 0.03 0 0.03 0.035 0.095 0.58

αi(t) P(Si Wk Sj) βj(t+1) Σ

Σ a w s = 0.01+0.06+0.095=0.165Σ b w s = 0.01

a b

0:.361:1.0

0:.061:.58

Modelo estimadoen la primera iteración

top related