HMM

advertisement
Hidden Markov Models
Что такое HMM?
Кружки – состояния
 Стрелки – вероятностные переходы

What is an HMM?
Зеленые кружки – скрытые состояния (hidden states)
 Зависят только от предыдущего состояния

What is an HMM?
Фиолетовые кружки – наблюдаемые состояния
(observed states)
 Зависят только от соответственных скрытых состояний

Формализуем HMM
S
S
S
S
S
K
K
K
K
K
{S, K, P, A, B}
 S : {s1…sN } значения скрытых состояний
 K : {k1…kM } значения наблюдаемых состояний

Формализуем HMM
S
A
S
B
K
K
A
S
B
K
A
S
A
B
K
{S, K, P, A, B}
 P = {pi} вероятности начальных состояний
 A = {aij} вероятности смены скрытого состояния
 B = {bik} вероятности «эмиссии» наблюдаемого
состояния

S
K
Задачи HMM



Вычислить вероятность генерации данной последовательности
Вычислить наиболее вероятную последовательность скрытых
состояний по данной последовательности наблюдаемых
состояний
По данной последовательности наблюдаемых состояний и набор
возможных моделей, вычислить наиболее подходящую?
Расшифровка
o1
ot-1
ot
ot+1
oT
Вычислить вероятность генерации данной последовательности
O = (o1...oT ),  = ( A, B, P )
Compute P(O |  )
Расшифровка
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
P(O | X ,  ) = bx1o1 bx2o2 ...bxT oT
Расшифровка
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
P(O | X ,  ) = bx1o1 bx2o2 ...bxT oT
P( X |  ) = p x1 a x1x2 a x2 x3 ...a xT 1xT
Расшифровка
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
P(O | X ,  ) = bx1o1 bx2o2 ...bxT oT
P( X |  ) = p x1 a x1x2 a x2 x3 ...a xT 1xT
P(O, X |  ) = P(O | X ,  ) P( X |  )
Расшифровка
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
P(O | X ,  ) = bx1o1 bx2o2 ...bxT oT
P( X |  ) = p x1 a x1x2 a x2 x3 ...a xT 1xT
P(O, X |  ) = P(O | X ,  ) P( X |  )
P(O |  ) =  P(O | X ,  ) P( X |  )
X
Расшифровка
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
P(O |  ) =
p
{ x1 ... xT }
T 1
b
x1 x1o1
Pa
t =1
b
xt xt 1 xt 1ot 1
Forward Procedure
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
 i (t ) = P(o1...ot , xt = i |  )
Forward Procedure
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
 j (t  1)
= P(o1...ot 1 , xt 1 = j )
= P(o1...ot 1 | xt 1 = j ) P( xt 1 = j )
= P(o1...ot | xt 1 = j ) P(ot 1 | xt 1 = j ) P( xt 1 = j )
= P(o1...ot , xt 1 = j ) P(ot 1 | xt 1 = j )
Forward Procedure
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
 j (t  1)
= P(o1...ot 1 , xt 1 = j )
= P(o1...ot 1 | xt 1 = j ) P( xt 1 = j )
= P(o1...ot | xt 1 = j ) P(ot 1 | xt 1 = j ) P( xt 1 = j )
= P(o1...ot , xt 1 = j ) P(ot 1 | xt 1 = j )
Forward Procedure
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
 j (t  1)
= P(o1...ot 1 , xt 1 = j )
= P(o1...ot 1 | xt 1 = j ) P( xt 1 = j )
= P(o1...ot | xt 1 = j ) P(ot 1 | xt 1 = j ) P( xt 1 = j )
= P(o1...ot , xt 1 = j ) P(ot 1 | xt 1 = j )
Forward Procedure
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
 j (t  1)
= P(o1...ot 1 , xt 1 = j )
= P(o1...ot 1 | xt 1 = j ) P( xt 1 = j )
= P(o1...ot | xt 1 = j ) P(ot 1 | xt 1 = j ) P( xt 1 = j )
= P(o1...ot , xt 1 = j ) P(ot 1 | xt 1 = j )
Forward Procedure
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
=
 P(o ...o , x
1
i =1... N
=
= i, xt 1 = j )P(ot 1 | xt 1 = j )
= j | xt = i )P( xt = i ) P(ot 1 | xt 1 = j )
 P(o ...o , x
= i )P( xt 1 = j | xt = i ) P(ot 1 | xt 1 = j )
1
t
1
i =1... N
=
t
 P(o ...o , x
i =1... N
=
t
t
 (t )a b
i =1... N
i
ij
t 1
t
jot 1
Forward Procedure
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
=
 P(o ...o , x
1
i =1... N
=
= i, xt 1 = j )P(ot 1 | xt 1 = j )
= j | xt = i )P( xt = i ) P(ot 1 | xt 1 = j )
 P(o ...o , x
= i )P( xt 1 = j | xt = i ) P(ot 1 | xt 1 = j )
1
t
1
i =1... N
=
t
 P(o ...o , x
i =1... N
=
t
t
 (t )a b
i =1... N
i
ij
t 1
t
jot 1
Forward Procedure
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
=
 P(o ...o , x
1
i =1... N
=
= i, xt 1 = j )P(ot 1 | xt 1 = j )
= j | xt = i )P( xt = i ) P(ot 1 | xt 1 = j )
 P(o ...o , x
= i )P( xt 1 = j | xt = i ) P(ot 1 | xt 1 = j )
1
t
1
i =1... N
=
t
 P(o ...o , x
i =1... N
=
t
t
 (t )a b
i =1... N
i
ij
t 1
t
jot 1
Forward Procedure
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
=
 P(o ...o , x
1
i =1... N
=
= i, xt 1 = j )P(ot 1 | xt 1 = j )
= j | xt = i )P( xt = i ) P(ot 1 | xt 1 = j )
 P(o ...o , x
= i )P( xt 1 = j | xt = i ) P(ot 1 | xt 1 = j )
1
t
1
i =1... N
=
t
 P(o ...o , x
i =1... N
=
t
t
 (t )a b
i =1... N
i
ij
t 1
t
jot 1
Backward Procedure
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
 i (T  1) = 1
 i (t ) = P(ot ...oT | xt = i)
 i (t ) =
a b
j =1... N
ij iot
 j (t  1)
Вероятность
остальных
последующих
состояний при
условии данного
в данной позиции
Расшифровка
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
N
P(O |  ) =   i (T )
Forward Procedure
P(O |  ) =  p i  i (1)
Backward Procedure
P (O |  ) =   i (t ) i (t )
Combination
i =1
N
i =1
N
i =1
Лучшая последовательность
состояний
o1
ot-1
Алгоритм Витерби
arg max P( X | O)
X
ot
ot+1
oT
Алгоритм Витерби
x1
xt-1
j
o1
ot-1
ot
ot+1
oT
 j (t ) = max P( x1...xt 1 , o1...ot 1 , xt = j, ot )
x1 ... xt 1
Наиболее вероятная последовательность
состояний до t-1, завершающаяся в
состоянии j, при данном наблюдении в t
Рекурсия
x1
xt-1
xt
xt+1
o1
ot-1
ot
ot+1
 j (t ) = max P( x1...xt 1 , o1...ot 1 , xt = j, ot )
x1 ... xt 1
 j (t  1) = max  i (t )aijb jo
t 1
i
 j (t  1) = arg max  i (t )aijb jo
i
t 1
oT
Алгоритм Витерби
x1
xt-1
xt
xt+1
xT
o1
ot-1
ot
ot+1
oT
Xˆ T = arg max  i (T )
i
Xˆ t =  ^ (t  1)
X t 1
P( Xˆ ) = arg max  i (T )
i
Оценка параметров
A
B
o1
A
B
ot-1
A
B
ot
A
B
B
ot+1
oT
Оценка параметров
A
B
A
B
o1
A
B
ot-1
ot
 i (t )aijb jo  j (t  1)
pt (i, j ) =
 m (t )  m (t )
t 1
m =1... N
 i (t ) =
 p (i, j )
j =1... N
t
A
B
B
ot+1
oT
Вероятность
прохождения
ребра i ->j
Вероятность
нахождения в
состоянии i
Оценка параметров
A
A
B
B
o1
ot-1
A
B
ot
A
B
B
ot+1
oT
pˆi =  i (1)
p (i, j )

=
  (t )
 (i )

=
  (t )
T
aˆij
t =1
T
t =1
bˆik
t
i
{t :ot = k } t
T
t =1 i
Теперь мы можем
оценить новые
параметры
модели
Download