24
Algoritmos para Modelos Ocultos de Markov (HMM) •Introducción •Algoritmo de Viterbi Calcula 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

Algoritmos para Modelos Ocultos de Markov (HMM)

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 2: Algoritmos para Modelos Ocultos de Markov (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

Page 3: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 4: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 5: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 6: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 7: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 8: Algoritmos para Modelos Ocultos de Markov (HMM)

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)=

Page 9: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 10: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 11: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 12: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 13: Algoritmos para Modelos Ocultos de Markov (HMM)

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) =

Page 14: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 15: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 16: Algoritmos para Modelos Ocultos de Markov (HMM)

termina

Algoritmo para entrenar un HMM

W1,n HMM1

ΗΜΜ2

OldCrEntropy=0NewCrEntropy=Re-estim_Param()

OldCrEntropy = NewCrEntropyNewCrEntropy=Re-estim_Param()

OldCrEntropy≈NewCrEntropysí

no

Page 17: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 18: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 19: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 20: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 21: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 22: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 23: Algoritmos para Modelos Ocultos de Markov (HMM)

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

Page 24: Algoritmos para Modelos Ocultos de Markov (HMM)