algoritmos para modelos ocultos de markov (hmm)
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