Artigo de tc hmm-final..alinefontes

477 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
477
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
16
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Artigo de tc hmm-final..alinefontes

  1. 1. Modelos Escondidos de Markov (HMM’S) Affonso de Oliveira S. Neto1, Aline Kely Fontes Santos2, Ana Rute Passos3, Danilo Duarte Correia Da Costa Reis4, Eric Almeida Souza5, Henrique Mandt L. Figueiredo6, Mateus Nascimento Oliveira7 Universidade Federal de Sergipe (UFS) - Departamento de Computação (DCOMP)1 affonso.souza@gmail.com1, 2alinefontes19@gmail.com, 3ruteufs@gmail.com,4 danilodccr@gmail.com, 5souzaeric@msn.com, 6henrique.mandt@hotmail.com, 7 dragonyle@gmail.com Abstract. This meta-article is an introduction to Hidden Markov Models. It presents a brief history and definition of this model, the relationship between dynamic programming and HMM, the main problems of HMM, and finally, the main uses of the Markov model. Resumo. Este meta-artigo faz uma introdução aos Modelos Escondidos de Markov. Apresenta um breve histórico e definição desse modelo, a relação entre programação dinâmica e o HMM, os três problemas principais de um HMM, e por fim, os principais usos do modelo Markoviano.1. Introdução Cadeias de Markov são um tipo de processo estocástico (fenômeno que varia emalgum grau de forma imprevisível, à medida que o tempo passa), que possui a chamadapropriedade Markoviana. Essa propriedade define que os estados anteriores do processosão irrelevantes para a predição dos próximos, desde que o estado atual seja conhecido. Andrey Markov foi um matemático que conseguiu os primeiros resultados paraesses processos, em 1906. Nos dias de hoje, as Cadeias de Markov têm sido utilizadas eestudadas principalmente nas ciências biológicas, sociais e administrativas. (Fernandes,2010) Os Modelos Escondidos de Markov (Hidden Markov Model) se baseiam emuma Cadeia de Markov, onde uma observação é produzida ao se observar cada estado, eos estados dessa Cadeia não são observáveis, por isso o nome modelos escondidos. OHMM é conhecido por sua aplicação na área de reconhecimento de padrões temporaiscomo a fala, a escrita, os gestos e a bioinformática. (Santos, 2005) O objetivo deste artigo é fazer uma introdução aos Modelos Escondidos deMarkov. O texto será dividido da seguinte maneira: na primeira parte serão abordados ohistórico e a definição do HMM, na segunda parte tratará sobre a programação dinâmicae os Modelos Escondidos de Markov, na terceira parte serão apresentados os trêsproblemas básicos de um HMM. A seguir apontaremos algumas aplicações dessesmodelos, e por fim, serão apresentadas as considerações finais sobre o tema e asreferências utilizadas como base.
  2. 2. 2. Breve Histórico e Definição A Cadeia de Markov é um tipo de autômato finito com pesos, sendo que cadaaresta é associada com a probabilidade, e a soma das probabilidades das arestas saindode um nó deve ser 1, além disso, a sequência de entrada determina unicamente a saída, enão há ambiguidade. (Zadrozny, 2008) A definição formal da Cadeia de Markov é caracterizada pela trinca {S, π, P},onde:S= {1, 2,...,u} __ Conjunto dos estados do modeloπ= [p1, p2, ..., pu], pj= P(s0= j) __ Vetor das probabilidades iniciais de estadoP= [pij]uxu ,pij= P(st=j |st-1=i) __ Matriz de probabilidade de transição A figura abaixo ilustra uma cadeia de Marcov de três estados, sendo que entreeles, todas as transições são possíveis. (Fernandes, 2010) Figura 1. Cadeia de Markov de 3 estados Os modelos ocultos de Markov (HMM) foram descritos pela primeira vez, emuma série de artigos estatísticos, por Leonard E. Baum e outros autores, na segundametade da década de 1960. Uma das primeiras aplicações do HMM foi oreconhecimento da fala na década 1970. (Espíndola, 2009) Na segunda metade da década de 1980, os HMM’s começaram a ser usados naanálise de sequências biológicas, principalmente o DNA. Deste então, tornaram-seonipresentes no campo da bioinformática. Em problemas que envolvem a manipulação de um conjunto de dados a fim deextrair informações importantes, para que se possa conhecer a sua fonte de dados semtê-la, é fundamental que seja modelado um sistema. Sendo assim, o HMM é um modelode parâmetros do objeto de estudo, onde se constrói a partir das propriedades estatísticasdesse objeto. Dessa forma, os parâmetros podem ser feitos de modo preciso e bemdefinido. (Khouri, 2002) A diferença fundamental entre HMM e o resto dos formalismos Markovianosestá na forma de se observar o sistema. Enquanto que na maioria dos processosMarkovianos a observação é direta, pois os observáveis são os próprios estados, emHMM a observação é indireta, feita por inferência, pois os observáveis são funções
  3. 3. probabilísticas dos estados da Markov ou das transições entre esses estados. (Espíndola,2009) Os Modelos Ocultos de Markov são caracterizados por uma cadeia de Markovsubjacente e por distribuição de probabilidade das observações produzidas em cadaestado. Sendo assim, um HMM pode ser descrito pelo seguinte conjunto de parâmetros{S, A, π, P, B}, descrito por:S = {1, 2, .., u} __ Conjunto dos estados do modelo;A = {α1, α2, .., αm} __ Conjunto dos símbolos de saída;π = [p1p2..pu], pj = P(s1=j) __ Vetor das probabilidades iniciais de estado;P = [pij]uxu, pij = P(st=j | st-1 = i) __ Matriz de probabilidade de transiçãoB = [P(O | j)] __ Vetor com a distribuição de probabilidade das observações (O) porestado (j).3. Programação Dinâmica e HMM A programação dinâmica é uma técnica utilizada em problemas de otimização.Assim como em algoritmos recursivos (Figura 2), os problemas são resolvidos a partirdo resultado de problemas menores. O diferencial da programação dinâmica (Figura 3)em relação à recursividade é a utilização de uma tabela para armazenar o resultado dosproblemas, ao invés de recalculá-lo, reduzindo assim a quantidade de iterações.(Ferreira, 2004) Figura 2. Exemplo de Recursividade
  4. 4. Figura 3. Exemplo de Programação Dinâmica – Armazenando resultados em um array Para a utilização da programação dinâmica em problemas de otimização, énecessário seguir a seguinte propriedade: As soluções não ótimas de subproblemas nãopodem integrar a solução ótima do problema original. Seguindo essa lógica, somente as soluções ótimas dos problemas menorespodem integrar uma solução ótima do problema principal. Com isso, as soluções nãoótimas podem ser descartadas, fazendo com que os algoritmos desenvolvidos comprogramação dinâmica sejam mais eficientes que algoritmos diretos. A vantagem disso é que o custo computacional diminui bastante, pois osproblemas menores, ou subproblemas, são resolvidos uma única vez e possuem assoluções salvas para serem utilizadas sempre que necessário. A programação dinâmica permite resolver qualquer problema de otimização. Énecessário que a estrutura tenha as seguintes características: 1. Possuir subestruturas ótimas, permitindo soluções ótimas em qualquer instância do problema; 2. Poder ser dividido em subproblemas; 3. Os subproblemas são dependentes, permitindo que uma mesma instância do subproblema seja referida várias vezes durante uma recursão. A programação dinâmica pode ser usada em comparações de sequênciasbiológicas. Primeiro, são comparadas subsequências menores e os resultados delas sãoarmazenados em tabelas. Em seguida, esses resultados são utilizados em subproblemasmaiores até que sequências inteiras sejam comparadas, gerando o resultado dacomparação global da sequência. Em uma aplicação algorítmica utilizando programação dinâmica emBioinformática, os seguintes componentes são apresentados: 1. Utilização de soluções de prefixos menores de forma recorrente para determinar a solução ótima em determinadas sequências; 2. Registro de valores de uma solução ótima é feito em forma matricial ou tabular; 3. Rotinas que possibilitem retrocesso sobre a matriz de resultados para que possa ser emitida ou recuperada uma solução ótima.
  5. 5. A programação dinâmica é utilizada como principal ferramenta em quase todosos algoritmos e processos utilizados na comparação de sequências biológicas. Umalgoritmo utilizado é o perfil-HMM. O perfil-HMM melhora a busca de sequências relacionadas de forma distante aoconverter um alinhamento de sequência múltipla em um sistema de pontuação deposições específicas baseado em probabilidade. (EDDY, 1998) Um perfil-HMM contém estados para combinar, inserir ou excluir, e são usadospara modelar uma família de sequências. Cada estado no modelo tem distribuições deprobabilidade e cada transição tem uma probabilidade. Como exemplo, se existe umaminoácido comumente representado em uma determinada posição no alinhamento desequências múltiplas,este recebe uma pontuação maior. Os algoritmos que utilizam programação dinâmica são usados emBioinformática para o alinhamento de pares de sequências ou de múltiplas sequênciasentre si e organização de uma ou várias sequências a um perfil-HMM. Eles utilizamvários critérios de otimização, ou funções de custo, para encontrar um alinhamentoótimo (com custo mínimo ou com pontuação máxima) ou calcular outras medidas. Na biologia molecular, as funções de custo possuem a seguinte ordem decomplexidade: 1. Custos simples, onde cada custo de mutação é uma constante; 2. Custos lineares de lacunas (GAPS) e custos lineares de lacunas afins, onde inclusões e remoções são orçadas através de uma função linear; 3. Custos lineares por partes de lacunas e custos côncavos de lacunas. Muitas vezes o algoritmo desenvolvido por métodos de programação dinâmicareduz drasticamente a complexidade, quando comparado com a complexidade doalgoritmo direto, ou seja, para um algoritmo direto de complexidade exponencial àsvezes pode se construir um algoritmo de programação dinâmica com complexidadepolinomial. Outras vezes o algoritmo de programação dinâmica tem a mesmacomplexidade do algoritmo direto, mas com coeficientes de ordem mais baixos(TOSCANI, 2001).4. Os três problemas básicos do HMM Em projetos que se utilizam do HMM, há três problemas básicos a seremresolvidos: O primeiro é a avaliação da probabilidade de uma sequência de observações,dado o HMM; O segundo problema é a determinação da melhor sequência de estados; eo último é o ajuste dos parâmetros do modelo, de acordo com a sequência observada. 4.1 Algoritmo de Forward O primeiro problema do HMM diz respeito à avaliação, em que dado umasequência de observações O = {o1,o2, ..., oT} e o modelo λ = {A, B, π}, calcula-se aprobabilidade da sequência de observações produzidas pelo modelo P(O| λ) a partir doAlgoritmo de Programação Dinâmica Forward. (Bandeira, 2008)
  6. 6. Dada uma variável de Forward α definida por:αt(i) = P(O1O2... Ot, qt = Si | λ)Podemos determinar de forma indutiva a probabilidade desejada em três passos;1-Inicialização:α1(i)=πibi(O1)2-Indução:αt+1(j) = [ αt(i)aij]bj(Ot+1)*3-Finalização:P(O|λ) = αT(i) ** 1 ≤ i ≥ N, 1 ≤ t ≥ T-1, 1 ≤ j ≥ N.4.2 Algoritmo de Viterbi O segundo problema visa buscar uma sequência de estados que seja a mais corretapossível através de critérios de otimização. Trata-se de buscar a sequência de estados Q ={q1,q2, ..., qT} que possui maior probabilidade de ter gerado série de observações O ={o1, o2, ..., oT}. (Bandeira, 2008). Uma forma eficiente de resolver este caso é oAlgoritmo de Viterbi, que é muito utilizado para o reconhecimento de voz, biologiamolecular, fonemas, palavras, codificadores e etc. O Algoritmo de Viterbi consiste em determinar a melhor sequência de estadoindividual Q = {q1q2...qT} dada a sequência de observações O = {O1O2...OT} atravésda equação:δt(i) = Max P[q1q2 …qt = i, O1O2 …Ot|λ] (1) q1, q2, …, qt-1Por indução teremos:δt+1(j) = [max δt(i)aij ]bj(Ot+1) (2)Para podermos determinar o argumento que maximize a Equação 2 utilizaremos amatriz ψt(j) e seguindo os procedimentos do algoritmo de Viterbi teremos:1-Inicializaçãoδ1(i) = πibi(O1) , 1≤i≤N (3)ψ1(i) = 0. (4)2-Recursãoδt(j) = Max[[δt-1(i)aj]bj(Ot)] (5) 1≤i≤N
  7. 7. ψ1(i) = argmax [δt-1(i)aij] (6) 1≤i≤N2≤ t ≤ T, 1 ≤ j ≤ N3-FinalizaçãoP* = max [δT(i)] (7) 1≤i≤NqT* = argmax [δT(i)] (8) 1≤ i ≤ NDeterminação do caminho ótimo por retrocessoqt = ψt+1(q*t+1), t = T-1, T-2, ..., 1 (9)*Os asteriscos indicam resultados otimizados. 4.2.1 Exemplo de Algoritmo de Viterbi com dados viciados Temos dois dados: um justo e outro viciado. Dada uma sequência de lançamentos,é possível advinhar qual dos dados originou cada valor da sequência? Figura 4. Exemplo com dados viciados. Figura 5. Freqüência de símbolos.As figuras 4 e 5 representam a probabilidade de uma sequência oculta h e umasequência de símbolos visíveis s. (Carvalho, 2010)Probabilidade de uma sequência oculta h: n nP (h) = P (h1 )∏P (hi hi −1 ) = T (0, h1 )∏T (hi −1 , hi ) i =2 i =2Probabilidade de gerar uma sequência de símbolos s, dada uma sequência de estadosocultos h. n nP (s | h) = ∏ P ( si | hi ) = ∏ E ( hi , si ) i =1 i =1Se h é conhecida (raro), a probabilidade conjunta de h e s é:
  8. 8. P (s, h ) = P (s | h ) P (h )Se h é desconhecida (frequente), pode-se usar o teorema da probabilidade total paracalcular a probabilidade de s:P (s) = ∑P (s, h j ) = ∑P (s | h j ) P (h j ) h H ∀ j∈ n h H ∀ j∈ nRepresenta todas as cadeias ocultas de tamanho nOBS: Cresce exponencialmente com n.E por fim, a sequência mais provável é:h* = arg maxn P (s, h) ∀h∈H 4.3 Algoritmo de Baum-Welch O terceiro problema do HMM é determinar um método para ajustar seusparâmetros (A, B, π) de modo a ampliar as probabilidades de uma sequência deobservações O= {o1, o2, ..., oT}. Para solucionar este problema utiliza-se o Algoritmode Baum-Welch, com ele é possível determinar λ= (A, B, π) de modo que P(O| λ) sejalocalmente maximizada.ξt (i , j) = at(i)aijbj(Ot+q)βt+1(j) P(O|λ)γt(i)=onde ξt (i , j) representa a probabilidade de se estar no estado Si no instante t e no estado Sjno instante t+1, conhecido o modelo e a sequência de observações, ou sejaξt (i , j) = P(qt=Si, qt+1 = Sj | O, λ)e γt (i), a probabilidade de estar no estado Si no instante t dado o modelo e a sequência deobservações. (Bandeira, 2008)5. Aplicações de um HMM Os Modelos Ocultos de Markov (HMM’s) são utilizados em diversas áreas,como: bioinformática; reconhecimento de voz, face, palavras. Na área da saúde, os pesquisadores utilizam o software HTK, que é baseado noHMM. Este software é de propriedade da Microsoft que o disponibiliza de formagratuita no endereço online <http://htk.eng.cam.ac.uk>, para nível de estudo.
  9. 9. A seguir, descrevemos algumas aplicações do HMM. 5.1 Aplicações de um HMM no reconhecimento de Palavras. O HMM é uma das principais aplicações no reconhecimento da fala. Os sinaissão analisados através da modelagem de padrões; dado um padrão de referência depalavras, é preciso reconhecer um padrão de entrada que se pareça com o padrão jáconhecido. (Bandeira, 2008) O sistema a seguir, faz o reconhecimento de algumas palavras isoladas, Figura 6. Figura ilustrando o sistema de reconhecimento de palavras isoladas. A figura 6 ilustra o sistema de reconhecimento de fala, que se inicia com aemissão do sinal de voz, que é convertido para um sinal digital, e comparado com asequência de símbolos falados com os símbolos armazenados no sistema. A seguir, oHMM calcula qual das palavras tem maior probabilidade de ter sido dita. As palavras ou fonemas pronunciados passam por um amplificador defreqüência onde serão divididos em pequenos intervalos de freqüência e em seguida sãofiltrados, para eliminar qualquer interferência. Essas palavras ou fonemas proferidas sãocompostas de um conjunto de sequências de observações (Intervalos de frequências)O = {O1O2...OT}, e cada observação Ot é um conjunto de V palavras infinitas, e érepresentado por V= {V1V2....VM}. (Bandeira, 2008) Em resumo, ao se entrar com a palavra para ser reconhecida é efetuada aquantização da sequência de observação O, Logo após calcula-se a probabilidade domodelo de entrada com todos os possíveis modelos do banco de protótipos, P(O | λv) epor fim escolhe a maior probabilidade obtida pela relaçãoV* = argmax [P(O | λv)]. 1≤v≤V 5.2 Aplicações de um HMM na identificação de ilhas CpG Segundo Calhau (2008), as ilhas CpG são zonas do DNA que possuem grandenúmero de citosina--fosfatodiester--guanina dinucleotídeo. Em humanos, há cerca de45.000 ilhas de CpG encontradas principalmente nas extremidades 5 dos genes.
  10. 10. Para simular um modelo de ilha em um oceano onde não há ilha, usaremos duascadeias (+,-). Desta forma, admitindo os símbolos:A+, C+, G+, T+ para ilhas.A-, C-, G-, T- para não ilhas. Figura 7. Transições intramodelo. A maior probabilidade de transição é de mais (+) para menos (-), do que demenos (-) para mais (+). Tomando a letra G com exemplo, não é possível afirmar,apenas olhando se esta foi emitida pelo estado G+ ou G-. (Rosa, 2009) G+ G G- Figura 8. Exemplo de estado oculto. Para encontrar a sequência de estados com a maior probabilidade, utiliza-se doalgoritmo de Viterbi, com a seguinte equação: (Calhau, 2008)
  11. 11. Sendo π* o melhor caminho, tem-se:6. Considerações Finais Neste artigo foi apresentada uma introdução aos Modelos Ocultos de Markov. Inicialmente foi abordado um pouco do histórico do HMM, citando a primeira área de aplicação desses modelos, o reconhecimento da fala. Também foi descrito o uso da programação dinâmica e sua relação com oHMM. A programação dinâmica é importante para esse modelo porque ela é utilizadaem problemas de otimização, ou seja, ela resolve problemas a partir do resultado deproblemas menores, e utiliza uma tabela para armazenar os resultados, ao invés derecalculá-los. (Ferreira, 2004) Foram apresentados ainda os três problemas básicos de um HMM, que consisteem: avaliação da probabilidade de uma sequência de observações; determinação damelhor sequência de estados; e ajuste dos parâmetros do modelo de acordo com asequência observada. Tais problemas do HMM são resolvidos de modo eficiente pelosrespectivos algoritmos: Forward, Viterbi e Baum-Welch. Pode-se perceber a importância desses algoritmos para a aplicação em diversasáreas como, por exemplo, a bioinformática, na identificação de ilhas CpG, com o uso doalgoritmo de Viterbi. A pesquisa de ilhas CpG é importante, pois à medida em queencontrar ilhas CpG corresponde encontrar, na maioria dos casos, regiões promotoras degenes. (Calhau, 2008) Por fim, a realização deste trabalho foi muito importante para o entendimentodos Modelos Ocultos de Markov e suas aplicações.ReferênciasBandeira, Leila P; Costa, Rosa V. Marcos da; Júnior, Osvaldo Artur. (2008) Sistema de Reconhecimento de fala usando Cadeias Ocultas de Markov. Centro Universitário de LINS. Disponível em: < http://www.slideshare.net/mwanalezi/reconhecimento-de- fala-usando-cadeias-de-markov >. Acesso em: 12.10.2012.Calhau, Ana; Pisco, Ângela; Santos, Nuno. (2008) Modelos Probabilísticos. Disponível em: < web.ist.utl.pt/ist155746/relatorio_4_bc.pdf >. Acesso em: 11.10.2012.Carvalho, André de. (2010) Modelos Ocultos de Markov. USP: São Paulo. Disponível em: < http://migre.me/b9usm >. Acesso em: 13.10.2012.Durbin, R. et al. (2002) Biological Sequence Analysis. Cambridge.Eddy, S. (1998). Profile Hidden Markov Models. Bioinformatics, 14: 755-763.
  12. 12. Espíndola, Luciana da Silveira. (2009) Um estudo sobre os Modelos Ocultos de Markov – HMM. PUC: Porto Alegre. Disponível em: <www.inf.pucrs.br/peg/pub/tr/TI1_Luciana.pdf>. Acesso em: 01.10.2012.Ferreira, J.O. (2004) Algoritmos de Programação Dinâmica usados em Modelos Markovianos Ocultos (HMM’s). São José dos Campos: INPE.Fernandes, M. Vinícius dos Santos. (2010) Modelagem de Canais de Comunicações Digitais Sujeitos a Erros em Surtos. PUC Rio – Certificação Digital Nº 0510511/CA. Rio de Janeiro. Disponível em: < www2.dbd.puc-rio.br/.../0510511_10_cap_02.pdf>. Acesso em: 09.10.2012.Khouri, Cátia Mesquita B. (2002) Modelos Escondidos de Markov para Classificação de Proteínas. Recife. Disponível em: < www.liber.ufpe.br/teses/arquivo/20040510115431.pdf >. Acesso em: 07.10.2012.Rabiner, L.R. (1989) A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition. Procedings of the IEEE, Vol. 77, n. 2.Rosa, Rogério dos Santos. (2009) Reconstruindo Mapas Regulatórios Dinâmicos. UFPE. Disponível em: < www.cin.ufpe.br/.../ReconstruindoMapas-Rogerio.ppt >. Acesso em: 13.10.2012.Santos, André Vinícius. (2005) Marcação de Palavras da Língua Portuguesa Baseado em Modelos Ocultos de Markov. Pelotas. Disponível em: < http://www.rocha.c3.furg.br/arquivos/download/marcador-pos-andre-vinicius- 2005.pdf >. Acesso em: 11.10.2012.Toscani, L. V; Veloso, P.A.S. (2001) Complexidade de Algoritmos. Porto Alegre: Instituto de Informática da UFRGS. Editora Sagra Luzzatto.Zadrozny, Bianca. (2008) Processamento de Estatístico de Linguagem Natural. UFF. Disponível em: <http://www.ic.uff.br/~bianca/peln/>. Acesso em: 01.10.2012.

×