Hidden Markov Model Renato Aunção DCC - UFMG
Proceo Etocático Proceo etocático e uma coleção de variávei aleatória: {X i, i {0,, 2,...}} I e chamado de conjunto-índice: e o conjunto que indexa a variávei aleatória Em geral, I = tempo X i e a variável que foi medida no tempo t=i A variávei ão dicreta e podem aumir o valore {, 2,..., k} = epaço de etado X i = j ignifica que o proceo tinha valor (ou etado) j no tempo i
Trajetória ou configuraçõe Um caminho epecifico e chamado de trajetória. Por exemplo, X =, X 2 =4,..., X m =2 e uma trajetória 4 trajetória: proceo.0.5 2.0 2.5 3.0 proceo.0.5 2.0 2.5 3.0 0 0 20 30 40 50 tempo 0 0 20 30 40 50 tempo proceo.0.5 2.0 2.5 3.0 proceo.0.5 2.0 2.5 3.0 0 0 20 30 40 50 tempo 0 0 20 30 40 50 tempo
Probabilidade Qual a probabilidade de uma certa trajetória? Numa equencia de m variávei aleatória, cada uma com k valore, temo k m trajetória poívei. Preciamo de um truque para atribuir probabilidade a toda eta k m trajetória. O truque mai uado e o modelo de Markov. O futuro depende do que aconteceu no paado e no preente: com Markov, abendo o preente, podemo ignorar o paado. Em palavra: a trajetória futura não depende de COMO o proceo chegou onde ele etá, depende apena de ONDE ele etá.
Propriedade de Markov Um proceo tem a propriedade de Markov e etado 0 2 4 6 8 0 2? 0 0 20 30 40 50 tempo
Cadeia de Markov Quando o proceo etocático tem um conjunto índice dicreto {0,, 2, 3,...} e poui a propriedade de Markov, ele e chamado de CADEIA DE MARKOV. A probabilidade P(X j = x X j- = x * ) e chamada de probabilidade de tranição. E a chance de fazer a tranição do etado x* no tempo j- para o etado x no tempo j. Eta probabilidade de tranição pode variar no tempo: pode er mai fácil paar de x * x no inicio do que no final. P(X j = x X j- = x * ) = q j (x x* )
Calculo da probabilidade com Markov Temo então Valido empre Markov
Cadeia de Markov HOMOGENEAS E quando a probabilidade de tranição e contante no tempo. P(X j = x X j- = x * ) = q j (x x* ) = q(x x* ) Matriz de tranição: matriz k x k com o valore da probabilidade de tranição q(x* x) M q( ) q( 2) q( k ) q( k) q(2 ) q(2 2) q(2 k ) q(2 k) q( k ) q( k 2) q( k k ) q( k k) q( k ) q( k 2) q( k k ) q( k k)
Matriz de tranição M Propriedade de M: Elemento q(i j) etão entre 0 e Elemento omam ao longo da linha: M. = onde =(,,.., ) t M q( ) q( 2) q( k ) q( k) q(2 ) q(2 2) q(2 k ) q(2 k) q( k ) q( k 2) q( k k ) q( k k) q( k ) q( k 2) q( k k ) q( k k)
Probabilidade com Markov homogêneo Seja q(j) = P(X = j), a ditribuição de probabilidade para o etado INICIAL da cadeia Temo então
Markov e um modelo gerador Generative model: modelo para toda a variávei envolvida, tanto a evidencia conhecida e fixa quanto a variávei deconhecida. Ito ignifica que podemo imular varia intancia do proceo. A cadeia de Markov pode er imulada com facilidade.
Markov: Um modelo gerador Uma equencia x, x 2,..., x m pode er gerada pelo algoritmo: Gere x da ditribuição inicial q(i) Para j=2,..,m Gere x j da ditribuição q(x x j- ) Em R, por exemplo: mat = matrix(c(0.8,0.,0.,0.4,0.5,0.,0.2,0.7,0.), ncol=3, byrow=t) x[] = ample(3,, prob=c(/3, /3, /3)) for(i in 2:5) x[i] = ample(3,, prob=mat[x[i-],])
Hidden Markov model Cadeia de Markov econdida
Modelando PARES de equencia Em varia aplicaçõe, temo uma equencia LATENTE (não-obervada). Obervamo uma outra equencia que e a latente mai algum ruído Exemplo: Part of peech tagging (equitagem gramatical??) em proceamento de linguagem natural: a cada palavra de um texto atribuir uma categoria gramatical: ubtantivo, verbo, prepoicao, adverbio, etc. Dua equencia: a palavra do texto A etiqueta gramaticai
Outro Exemplo Speech Recognition (reconhecimento de fala): paar de uma equencia acútica ( obervada ) para uma equencia de palavra E a aplicação onde naceu HMM.
Modelo para pare de equencia Temo DUAS equencia de variávei aleatória: X,..., X m S,..., S m Cada X i correponde a uma obervação, uma evidencia de fato medida. Cada S i e um etado latente que gerou a obervação. NÃO E CONHECIDO Vamo upor que S i {, 2,.., k} e X i {, 2,.., o} Como calcular
Modelo gráfico para HMM Independência condicional: O etado latente S i formam uma cadeia de Markov A obervaçõe X i dependem apena de S i, o etado latente no memo momento i
Calculando probabilidade Pela definição de probabilidade condicional: Supoição : o etado S i formam cadeia de Markov
Calculando probabilidade Novamente pela definição de probabilidade condicional: Supoição 2: X i depende apena de S i
Hidden Markov Model - HMM A probabilidade deejada fica igual a: Para implificar a notação: t() = P(S = ) = ditribuição inicial t( ) = P(S j = S j- =) tranição e(x ) = P(X j =x S j =) Ditribuição da emião do inal Então
HMM e um modelo gerador Sequencia S...S m e X...X m ão gerada pelo eguinte proceo: Gere S de acordo com a ditribuição t(). Gere X de acordo com a emião e(x ) onde e o valor gerado no pao anterior for j=2,...,m Gere j a partir da ditribuição t( j- ) Gere x j a partir da ditribuição e(x j )
Etimação de parâmetro Amotra de treinamento com n pare de equencia S e X de comprimento m, AMBAS OBSERVADAS Ito e, temo X i,j e S i,j para i =,...,n e j=,..., m Defina count(i, ) como o numero de veze que o etado eguiu o etado na amotra de treinamento Onde [[A]] = e A e verdade e 0 e A e falo Etimativa de t( ) ^
Parâmetro da ditribuição inicial Defina count(i,) como e o etado e o etado inicial da equencia i, e como 0 cao contrario: Etimativa de t() ^
Parâmetro da Emião Defina count(i, x) como o numero d veze que o etado eta pareado com a obervação x: Etimativa de e( x): ^
Uo do modelo HMM Dada uma equencia obervada X,..., X m, qual a probabilidade da equencia latente S,..., S m p(,..., m x,...,x m ) = p(,..., m, x,...,x m )/ p(x,...,x m ) α p(,..., m, x,...,x m ) Objetivo: dada uma equencia obervada X,..., X m, obter a equencia latente mai provável: ALGORITMO DE VITERBI
Algoritmo de Viterbi Objetivo: dada uma equencia obervada X,..., X m, obter a equencia latente mai provável O algoritmo de Viterbi e um algoritmo de programação dinâmica. Etrutura báica: = matriz m x k (comprimento da equencia veru no. de etado) [j,] = max,..,j- {P(x,..., x j-, x j,,..., j-, S j =) Ito e, [j,] = valor máximo da probabilidade de toda a equencia de etado que terminam no etado no tempo j
Algoritmo de Viterbi [j,] = valor máximo da probabilidade de toda a equencia de etado que terminam no etado no tempo j Todo o cálculo conideram também x,...,x j Como calcular? [,] = t()e(x ) Ito e correto: e tempo=, o conjunto da equencia de etado de comprimento que terminam em e unitário: apena a equencia. Então a probab máxima e a probab da equencia, que o valor t()e(x )
Algoritmo de Viterbi Tendo [,], paamo a obter o demai iterativamente. Para j=2: Para j=3 ) ( ) ( ] [, max ) ( ) ( ) ( ) ( max ),,, ( max ] [2, 2 2 2 x e t x e t x e t x x p ) ( ) ( ] [2, max ) ( ) ( ) ( ) ( ) ( ) ( max ),,,,, ( max ] [3, 3 2 2 3 2 2 2 2, 3 2 2, 2 2 2 x e t x e t x e t x e t x x x p
Algoritmo de Viterbi De forma geral, queremo Ao invé de coniderar todo a combinaçõe de etado,..., j-, ito e calculado pelo algoritmo de Viterbi: Inicialização Para j=2,...,m e para =,.., k Temo então Ordem O(mk 2 )
Viterbi: hortet-path algorithm Sequencia x,...,x m eta fixada Grafo com vértice (j,) para j=,..,m e =,..,k Nó fonte rotulado como 0 Areta direcionada de 0 para [,] com peo t()e(x ) Para j=2,..m, e etado, temo areta de (j-,) para (j, ) com peo t( )e(x j ) Peo de um caminho e o produto do peo da areta. [j,] e o peo máximo do caminho de 0 a (j,)
Viterbi: backpointer Inicialização: para =,..., k calcule Para j=2,...,m e para =,...,k e A entrada bp[j,] ão o backpointer que no permitem recuperar a identidade da equencia de etado com probabilidade maxima
Viterbi: backpointer A probabilidade maxima obre toda a equencia de etado e dada por Para recuperar a identidade da equencia de probabilidade máxima, faca o eguinte: Para j=m Para j=m,...,2 Eta equencia de etado,.., m e a deejada, aquela =
Pacote em R pir (linear tate pace model, Kalman filter) hmm.dicnp (dicrete-tate HMM with dicrete bervation) HiddenMarkov (dicrete-tate HMM with continuou obervation) RHmm (dicrete-tate HMM, but eem buggy and untable).