Algoritmos para Modelos Ocultos de Markov (HMM)
Transcript of 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
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