SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
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 em
algum grau de forma imprevisível, à medida que o tempo passa), que possui a chamada
propriedade Markoviana. Essa propriedade define que os estados anteriores do processo
sã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 para
esses processos, em 1906. Nos dias de hoje, as Cadeias de Markov têm sido utilizadas e
estudadas principalmente nas ciências biológicas, sociais e administrativas. (Fernandes,
2010)
       Os Modelos Escondidos de Markov (Hidden Markov Model) se baseiam em
uma Cadeia de Markov, onde uma observação é produzida ao se observar cada estado, e
os estados dessa Cadeia não são observáveis, por isso o nome modelos escondidos. O
HMM é conhecido por sua aplicação na área de reconhecimento de padrões temporais
como a fala, a escrita, os gestos e a bioinformática. (Santos, 2005)
        O objetivo deste artigo é fazer uma introdução aos Modelos Escondidos de
Markov. O texto será dividido da seguinte maneira: na primeira parte serão abordados o
histórico e a definição do HMM, na segunda parte tratará sobre a programação dinâmica
e os Modelos Escondidos de Markov, na terceira parte serão apresentados os três
problemas básicos de um HMM. A seguir apontaremos algumas aplicações desses
modelos, e por fim, serão apresentadas as considerações finais sobre o tema e as
referências utilizadas como base.
2. Breve Histórico e Definição
        A Cadeia de Markov é um tipo de autômato finito com pesos, sendo que cada
aresta é associada com a probabilidade, e a soma das probabilidades das arestas saindo
de um nó deve ser 1, além disso, a sequência de entrada determina unicamente a saída, e
nã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 estado
P= [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 entre
eles, 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, em
uma série de artigos estatísticos, por Leonard E. Baum e outros autores, na segunda
metade da década de 1960. Uma das primeiras aplicações do HMM foi o
reconhecimento 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 na
análise de sequências biológicas, principalmente o DNA. Deste então, tornaram-se
onipresentes no campo da bioinformática.
         Em problemas que envolvem a manipulação de um conjunto de dados a fim de
extrair informações importantes, para que se possa conhecer a sua fonte de dados sem
tê-la, é fundamental que seja modelado um sistema. Sendo assim, o HMM é um modelo
de parâmetros do objeto de estudo, onde se constrói a partir das propriedades estatísticas
desse objeto. Dessa forma, os parâmetros podem ser feitos de modo preciso e bem
definido. (Khouri, 2002)
       A diferença fundamental entre HMM e o resto dos formalismos Markovianos
está na forma de se observar o sistema. Enquanto que na maioria dos processos
Markovianos a observação é direta, pois os observáveis são os próprios estados, em
HMM a observação é indireta, feita por inferência, pois os observáveis são funções
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 Markov
subjacente e por distribuição de probabilidade das observações produzidas em cada
estado. 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ção
B = [P(O | j)] __ Vetor com a distribuição de probabilidade das observações (O) por
estado (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 partir
do 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 dos
problemas, ao invés de recalculá-lo, reduzindo assim a quantidade de iterações.
(Ferreira, 2004)




                               Figura 2. Exemplo de Recursividade
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ão
podem integrar a solução ótima do problema original.
       Seguindo essa lógica, somente as soluções ótimas dos problemas menores
podem 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 com
programação dinâmica sejam mais eficientes que algoritmos diretos.
       A vantagem disso é que o custo computacional diminui bastante, pois os
problemas menores, ou subproblemas, são resolvidos uma única vez e possuem as
soluçõ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ências
biológicas. Primeiro, são comparadas subsequências menores e os resultados delas são
armazenados em tabelas. Em seguida, esses resultados são utilizados em subproblemas
maiores até que sequências inteiras sejam comparadas, gerando o resultado da
comparação global da sequência.
       Em uma aplicação algorítmica utilizando programação                dinâmica em
Bioinformá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.
A programação dinâmica é utilizada como principal ferramenta em quase todos
os algoritmos e processos utilizados na comparação de sequências biológicas. Um
algoritmo utilizado é o perfil-HMM.
       O perfil-HMM melhora a busca de sequências relacionadas de forma distante ao
converter um alinhamento de sequência múltipla em um sistema de pontuação de
posições específicas baseado em probabilidade. (EDDY, 1998)
       Um perfil-HMM contém estados para combinar, inserir ou excluir, e são usados
para modelar uma família de sequências. Cada estado no modelo tem distribuições de
probabilidade e cada transição tem uma probabilidade. Como exemplo, se existe um
aminoácido comumente representado em uma determinada posição no alinhamento de
sequências múltiplas,este recebe uma pontuação maior.
        Os algoritmos que utilizam programação dinâmica são usados em
Bioinformática para o alinhamento de pares de sequências ou de múltiplas sequências
entre si e organização de uma ou várias sequências a um perfil-HMM. Eles utilizam
vá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 de
complexidade:
   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âmica
reduz drasticamente a complexidade, quando comparado com a complexidade do
algoritmo direto, ou seja, para um algoritmo direto de complexidade exponencial às
vezes pode se construir um algoritmo de programação dinâmica com complexidade
polinomial. Outras vezes o algoritmo de programação dinâmica tem a mesma
complexidade 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 serem
resolvidos: 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; e
o ú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 uma
sequência de observações O = {o1,o2, ..., oT} e o modelo λ = {A, B, π}, calcula-se a
probabilidade da sequência de observações produzidas pelo modelo P(O| λ) a partir do
Algoritmo de Programação Dinâmica Forward. (Bandeira, 2008)
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 correta
possí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 é o
Algoritmo de Viterbi, que é muito utilizado para o reconhecimento de voz, biologia
molecular, fonemas, palavras, codificadores e etc.
          O Algoritmo de Viterbi consiste em determinar a melhor sequência de estado
individual Q = {q1q2...qT} dada a sequência de observações O = {O1O2...OT} através
da equação:
δt(i) = Max             P[q1q2 …qt = i, O1O2 …Ot|λ]         (1)
       q1, q2, …, qt-1

Por 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 a
matriz ψ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
ψ1(i) =    argmax [δt-1(i)aij]                                         (6)
           1≤i≤N

2≤ t ≤ T, 1 ≤ j ≤ N

3-Finalização

P* =    max [δT(i)]                                                    (7)
       1≤i≤N

qT* = argmax [δT(i)]                                                   (8)
      1≤ i ≤ N

Determinação do caminho ótimo por retrocesso

qt = ψ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 uma
sequência de símbolos visíveis s. (Carvalho, 2010)

Probabilidade de uma sequência oculta h:
                    n                             n
P (h) = P (h1 )∏P (hi hi −1 ) = T (0, h1 )∏T (hi −1 , hi )
                   i =2                          i =2


Probabilidade de gerar uma sequência de símbolos s, dada uma sequência de estados
ocultos h.
             n                  n
P (s | h) = ∏ P ( si | hi ) = ∏ E ( hi , si )
            i =1               i =1


Se h é conhecida (raro), a probabilidade conjunta de h e s é:
P (s, h ) = P (s | h ) P (h )

Se h é desconhecida (frequente), pode-se usar o teorema da probabilidade total para
calcular a probabilidade de s:
P (s) = ∑P (s, h j ) = ∑P (s | h j ) P (h j )
            h H
           ∀ j∈ n                  h H
                                  ∀ j∈ n




Representa todas as cadeias ocultas de tamanho n

OBS: 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 seus
parâmetros (A, B, π) de modo a ampliar as probabilidades de uma sequência de
observações O= {o1, o2, ..., oT}. Para solucionar este problema utiliza-se o Algoritmo
de Baum-Welch, com ele é possível determinar λ= (A, B, π) de modo que P(O| λ) seja
localmente 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 Sj
no 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 de
observaçõ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 no
HMM. Este software é de propriedade da Microsoft que o disponibiliza de forma
gratuita no endereço online <http://htk.eng.cam.ac.uk>, para nível de estudo.
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 sinais
são analisados através da modelagem de padrões; dado um padrão de referência de
palavras, é 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 a
emissão do sinal de voz, que é convertido para um sinal digital, e comparado com a
sequência de símbolos falados com os símbolos armazenados no sistema. A seguir, o
HMM calcula qual das palavras tem maior probabilidade de ter sido dita.
        As palavras ou fonemas pronunciados passam por um amplificador de
freqüência onde serão divididos em pequenos intervalos de freqüência e em seguida são
filtrados, para eliminar qualquer interferência. Essas palavras ou fonemas proferidas são
compostas 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 a
quantização da sequência de observação O, Logo após calcula-se a probabilidade do
modelo de entrada com todos os possíveis modelos do banco de protótipos, P(O | λv) e
por fim escolhe a maior probabilidade obtida pela relação
V* = 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 grande
número de citosina--fosfatodiester--guanina dinucleotídeo. Em humanos, há cerca de
45.000 ilhas de CpG encontradas principalmente nas extremidades 5' dos genes.
Para simular um modelo de ilha em um oceano onde não há ilha, usaremos duas
cadeias (+,-).
      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 de
menos (-) 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 do
algoritmo de Viterbi, com a seguinte equação: (Calhau, 2008)
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 o
HMM. A programação dinâmica é importante para esse modelo porque ela é utilizada
em problemas de otimização, ou seja, ela resolve problemas a partir do resultado de
problemas menores, e utiliza uma tabela para armazenar os resultados, ao invés de
recalculá-los. (Ferreira, 2004)
        Foram apresentados ainda os três problemas básicos de um HMM, que consiste
em: avaliação da probabilidade de uma sequência de observações; determinação da
melhor sequência de estados; e ajuste dos parâmetros do modelo de acordo com a
sequência observada. Tais problemas do HMM são resolvidos de modo eficiente pelos
respectivos 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 do
algoritmo de Viterbi. A pesquisa de ilhas CpG é importante, pois à medida em que
encontrar ilhas CpG corresponde encontrar, na maioria dos casos, regiões promotoras de
genes. (Calhau, 2008)
      Por fim, a realização deste trabalho foi muito importante para o entendimento
dos Modelos Ocultos de Markov e suas aplicações.

Referências


Bandeira, 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.
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.

Weitere ähnliche Inhalte

Andere mochten auch

Que sentido para a existência humana?
Que sentido para a existência humana?Que sentido para a existência humana?
Que sentido para a existência humana?
guest165a7dc
 
Festejos de São Benedito 2013
Festejos de São Benedito 2013Festejos de São Benedito 2013
Festejos de São Benedito 2013
Adriano de Paula
 
Joe Fitzpatrick_January 2015 OTL_Ebola Webinar
Joe Fitzpatrick_January 2015 OTL_Ebola WebinarJoe Fitzpatrick_January 2015 OTL_Ebola Webinar
Joe Fitzpatrick_January 2015 OTL_Ebola Webinar
Joe Fitzpatrick
 
Imprensa livre ed-104_agosto_2012_formato_gazeta
Imprensa livre ed-104_agosto_2012_formato_gazetaImprensa livre ed-104_agosto_2012_formato_gazeta
Imprensa livre ed-104_agosto_2012_formato_gazeta
Leonardo Gomez
 

Andere mochten auch (15)

Visa cosméticos
Visa   cosméticosVisa   cosméticos
Visa cosméticos
 
Carmolina Slides
Carmolina SlidesCarmolina Slides
Carmolina Slides
 
Amigos
AmigosAmigos
Amigos
 
Que sentido para a existência humana?
Que sentido para a existência humana?Que sentido para a existência humana?
Que sentido para a existência humana?
 
Novo Paradigma Em EducaçãO
Novo Paradigma Em EducaçãONovo Paradigma Em EducaçãO
Novo Paradigma Em EducaçãO
 
Festejos de São Benedito 2013
Festejos de São Benedito 2013Festejos de São Benedito 2013
Festejos de São Benedito 2013
 
A Nova Era Hiper Conectada: Mobile-First, Cloud-First e Multi-Screen
A Nova Era Hiper Conectada: Mobile-First, Cloud-First e Multi-ScreenA Nova Era Hiper Conectada: Mobile-First, Cloud-First e Multi-Screen
A Nova Era Hiper Conectada: Mobile-First, Cloud-First e Multi-Screen
 
Diploma
DiplomaDiploma
Diploma
 
trademart
trademarttrademart
trademart
 
Jornal Imprensa Livre - 2º quinzena de maio de 2010
Jornal Imprensa Livre  - 2º quinzena de maio de 2010Jornal Imprensa Livre  - 2º quinzena de maio de 2010
Jornal Imprensa Livre - 2º quinzena de maio de 2010
 
Amor a Cristo
Amor a CristoAmor a Cristo
Amor a Cristo
 
ACC 675 Final Project
ACC 675 Final ProjectACC 675 Final Project
ACC 675 Final Project
 
Joe Fitzpatrick_January 2015 OTL_Ebola Webinar
Joe Fitzpatrick_January 2015 OTL_Ebola WebinarJoe Fitzpatrick_January 2015 OTL_Ebola Webinar
Joe Fitzpatrick_January 2015 OTL_Ebola Webinar
 
Imprensa livre ed-104_agosto_2012_formato_gazeta
Imprensa livre ed-104_agosto_2012_formato_gazetaImprensa livre ed-104_agosto_2012_formato_gazeta
Imprensa livre ed-104_agosto_2012_formato_gazeta
 
Guia de m icrocontroladores
Guia de m icrocontroladoresGuia de m icrocontroladores
Guia de m icrocontroladores
 

Ähnlich wie Artigo de tc hmm-final..alinefontes

Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Ricardo Brasil
 
Fuzzy Basis Functions for Modeling Nonlinear Dynamics
Fuzzy Basis Functions for Modeling Nonlinear DynamicsFuzzy Basis Functions for Modeling Nonlinear Dynamics
Fuzzy Basis Functions for Modeling Nonlinear Dynamics
Gladstone Alves
 
Apresentação Método de Monte Carlo
Apresentação Método de Monte CarloApresentação Método de Monte Carlo
Apresentação Método de Monte Carlo
Angelo Polotto
 
2008 santiago marchi_cilamce_2008
2008 santiago marchi_cilamce_20082008 santiago marchi_cilamce_2008
2008 santiago marchi_cilamce_2008
CosmoSantiago
 
Aula de programacao_final.dizando
Aula de programacao_final.dizandoAula de programacao_final.dizando
Aula de programacao_final.dizando
João Gomes
 

Ähnlich wie Artigo de tc hmm-final..alinefontes (20)

Sist cont i_conf2_2014
Sist cont i_conf2_2014Sist cont i_conf2_2014
Sist cont i_conf2_2014
 
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
Aplicação das Redes Neuronais Artificiais do software STATISTICA 7.0: O caso ...
 
4º semestre
4º semestre4º semestre
4º semestre
 
4734 16435-1-pb
4734 16435-1-pb4734 16435-1-pb
4734 16435-1-pb
 
SysSorting Professional
SysSorting ProfessionalSysSorting Professional
SysSorting Professional
 
Pac elementos finitos 1 a parte
Pac elementos finitos 1 a partePac elementos finitos 1 a parte
Pac elementos finitos 1 a parte
 
Elementos finitos 1 a parte
Elementos finitos 1 a parteElementos finitos 1 a parte
Elementos finitos 1 a parte
 
Fuzzy Basis Functions for Modeling Nonlinear Dynamics
Fuzzy Basis Functions for Modeling Nonlinear DynamicsFuzzy Basis Functions for Modeling Nonlinear Dynamics
Fuzzy Basis Functions for Modeling Nonlinear Dynamics
 
Projeto de Controle de Posição entre veículos, Análise de Sistemas III
Projeto de Controle de Posição entre veículos, Análise de Sistemas IIIProjeto de Controle de Posição entre veículos, Análise de Sistemas III
Projeto de Controle de Posição entre veículos, Análise de Sistemas III
 
Diogo t.robaina edp
Diogo t.robaina edpDiogo t.robaina edp
Diogo t.robaina edp
 
Reconhecimento de fala usando cadeias de markov
Reconhecimento de fala usando cadeias de markovReconhecimento de fala usando cadeias de markov
Reconhecimento de fala usando cadeias de markov
 
Apresentação Método de Monte Carlo
Apresentação Método de Monte CarloApresentação Método de Monte Carlo
Apresentação Método de Monte Carlo
 
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
 
2008 santiago marchi_cilamce_2008
2008 santiago marchi_cilamce_20082008 santiago marchi_cilamce_2008
2008 santiago marchi_cilamce_2008
 
Pl g6
Pl g6Pl g6
Pl g6
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 
Sistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfSistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdf
 
Cinematica inversa de um manipulador robotico de quatro graus de liberdade ut...
Cinematica inversa de um manipulador robotico de quatro graus de liberdade ut...Cinematica inversa de um manipulador robotico de quatro graus de liberdade ut...
Cinematica inversa de um manipulador robotico de quatro graus de liberdade ut...
 
Aula de programacao_final.dizando
Aula de programacao_final.dizandoAula de programacao_final.dizando
Aula de programacao_final.dizando
 

Artigo de tc hmm-final..alinefontes

  • 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 em algum grau de forma imprevisível, à medida que o tempo passa), que possui a chamada propriedade Markoviana. Essa propriedade define que os estados anteriores do processo sã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 para esses processos, em 1906. Nos dias de hoje, as Cadeias de Markov têm sido utilizadas e estudadas principalmente nas ciências biológicas, sociais e administrativas. (Fernandes, 2010) Os Modelos Escondidos de Markov (Hidden Markov Model) se baseiam em uma Cadeia de Markov, onde uma observação é produzida ao se observar cada estado, e os estados dessa Cadeia não são observáveis, por isso o nome modelos escondidos. O HMM é conhecido por sua aplicação na área de reconhecimento de padrões temporais como a fala, a escrita, os gestos e a bioinformática. (Santos, 2005) O objetivo deste artigo é fazer uma introdução aos Modelos Escondidos de Markov. O texto será dividido da seguinte maneira: na primeira parte serão abordados o histórico e a definição do HMM, na segunda parte tratará sobre a programação dinâmica e os Modelos Escondidos de Markov, na terceira parte serão apresentados os três problemas básicos de um HMM. A seguir apontaremos algumas aplicações desses modelos, e por fim, serão apresentadas as considerações finais sobre o tema e as referências utilizadas como base.
  • 2. 2. Breve Histórico e Definição A Cadeia de Markov é um tipo de autômato finito com pesos, sendo que cada aresta é associada com a probabilidade, e a soma das probabilidades das arestas saindo de um nó deve ser 1, além disso, a sequência de entrada determina unicamente a saída, e nã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 estado P= [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 entre eles, 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, em uma série de artigos estatísticos, por Leonard E. Baum e outros autores, na segunda metade da década de 1960. Uma das primeiras aplicações do HMM foi o reconhecimento 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 na análise de sequências biológicas, principalmente o DNA. Deste então, tornaram-se onipresentes no campo da bioinformática. Em problemas que envolvem a manipulação de um conjunto de dados a fim de extrair informações importantes, para que se possa conhecer a sua fonte de dados sem tê-la, é fundamental que seja modelado um sistema. Sendo assim, o HMM é um modelo de parâmetros do objeto de estudo, onde se constrói a partir das propriedades estatísticas desse objeto. Dessa forma, os parâmetros podem ser feitos de modo preciso e bem definido. (Khouri, 2002) A diferença fundamental entre HMM e o resto dos formalismos Markovianos está na forma de se observar o sistema. Enquanto que na maioria dos processos Markovianos a observação é direta, pois os observáveis são os próprios estados, em HMM a observação é indireta, feita por inferência, pois os observáveis são funções
  • 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 Markov subjacente e por distribuição de probabilidade das observações produzidas em cada estado. 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ção B = [P(O | j)] __ Vetor com a distribuição de probabilidade das observações (O) por estado (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 partir do 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 dos problemas, ao invés de recalculá-lo, reduzindo assim a quantidade de iterações. (Ferreira, 2004) Figura 2. Exemplo de Recursividade
  • 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ão podem integrar a solução ótima do problema original. Seguindo essa lógica, somente as soluções ótimas dos problemas menores podem 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 com programação dinâmica sejam mais eficientes que algoritmos diretos. A vantagem disso é que o custo computacional diminui bastante, pois os problemas menores, ou subproblemas, são resolvidos uma única vez e possuem as soluçõ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ências biológicas. Primeiro, são comparadas subsequências menores e os resultados delas são armazenados em tabelas. Em seguida, esses resultados são utilizados em subproblemas maiores até que sequências inteiras sejam comparadas, gerando o resultado da comparação global da sequência. Em uma aplicação algorítmica utilizando programação dinâmica em Bioinformá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. A programação dinâmica é utilizada como principal ferramenta em quase todos os algoritmos e processos utilizados na comparação de sequências biológicas. Um algoritmo utilizado é o perfil-HMM. O perfil-HMM melhora a busca de sequências relacionadas de forma distante ao converter um alinhamento de sequência múltipla em um sistema de pontuação de posições específicas baseado em probabilidade. (EDDY, 1998) Um perfil-HMM contém estados para combinar, inserir ou excluir, e são usados para modelar uma família de sequências. Cada estado no modelo tem distribuições de probabilidade e cada transição tem uma probabilidade. Como exemplo, se existe um aminoácido comumente representado em uma determinada posição no alinhamento de sequências múltiplas,este recebe uma pontuação maior. Os algoritmos que utilizam programação dinâmica são usados em Bioinformática para o alinhamento de pares de sequências ou de múltiplas sequências entre si e organização de uma ou várias sequências a um perfil-HMM. Eles utilizam vá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 de complexidade: 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âmica reduz drasticamente a complexidade, quando comparado com a complexidade do algoritmo direto, ou seja, para um algoritmo direto de complexidade exponencial às vezes pode se construir um algoritmo de programação dinâmica com complexidade polinomial. Outras vezes o algoritmo de programação dinâmica tem a mesma complexidade 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 serem resolvidos: 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; e o ú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 uma sequência de observações O = {o1,o2, ..., oT} e o modelo λ = {A, B, π}, calcula-se a probabilidade da sequência de observações produzidas pelo modelo P(O| λ) a partir do Algoritmo de Programação Dinâmica Forward. (Bandeira, 2008)
  • 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 correta possí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 é o Algoritmo de Viterbi, que é muito utilizado para o reconhecimento de voz, biologia molecular, fonemas, palavras, codificadores e etc. O Algoritmo de Viterbi consiste em determinar a melhor sequência de estado individual Q = {q1q2...qT} dada a sequência de observações O = {O1O2...OT} através da equação: δt(i) = Max P[q1q2 …qt = i, O1O2 …Ot|λ] (1) q1, q2, …, qt-1 Por 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 a matriz ψ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. ψ1(i) = argmax [δt-1(i)aij] (6) 1≤i≤N 2≤ t ≤ T, 1 ≤ j ≤ N 3-Finalização P* = max [δT(i)] (7) 1≤i≤N qT* = argmax [δT(i)] (8) 1≤ i ≤ N Determinação do caminho ótimo por retrocesso qt = ψ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 uma sequência de símbolos visíveis s. (Carvalho, 2010) Probabilidade de uma sequência oculta h: n n P (h) = P (h1 )∏P (hi hi −1 ) = T (0, h1 )∏T (hi −1 , hi ) i =2 i =2 Probabilidade de gerar uma sequência de símbolos s, dada uma sequência de estados ocultos h. n n P (s | h) = ∏ P ( si | hi ) = ∏ E ( hi , si ) i =1 i =1 Se h é conhecida (raro), a probabilidade conjunta de h e s é:
  • 8. P (s, h ) = P (s | h ) P (h ) Se h é desconhecida (frequente), pode-se usar o teorema da probabilidade total para calcular a probabilidade de s: P (s) = ∑P (s, h j ) = ∑P (s | h j ) P (h j ) h H ∀ j∈ n h H ∀ j∈ n Representa todas as cadeias ocultas de tamanho n OBS: 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 seus parâmetros (A, B, π) de modo a ampliar as probabilidades de uma sequência de observações O= {o1, o2, ..., oT}. Para solucionar este problema utiliza-se o Algoritmo de Baum-Welch, com ele é possível determinar λ= (A, B, π) de modo que P(O| λ) seja localmente 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 Sj no 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 de observaçõ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 no HMM. Este software é de propriedade da Microsoft que o disponibiliza de forma gratuita no endereço online <http://htk.eng.cam.ac.uk>, para nível de estudo.
  • 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 sinais são analisados através da modelagem de padrões; dado um padrão de referência de palavras, é 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 a emissão do sinal de voz, que é convertido para um sinal digital, e comparado com a sequência de símbolos falados com os símbolos armazenados no sistema. A seguir, o HMM calcula qual das palavras tem maior probabilidade de ter sido dita. As palavras ou fonemas pronunciados passam por um amplificador de freqüência onde serão divididos em pequenos intervalos de freqüência e em seguida são filtrados, para eliminar qualquer interferência. Essas palavras ou fonemas proferidas são compostas 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 a quantização da sequência de observação O, Logo após calcula-se a probabilidade do modelo de entrada com todos os possíveis modelos do banco de protótipos, P(O | λv) e por fim escolhe a maior probabilidade obtida pela relação V* = 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 grande número de citosina--fosfatodiester--guanina dinucleotídeo. Em humanos, há cerca de 45.000 ilhas de CpG encontradas principalmente nas extremidades 5' dos genes.
  • 10. Para simular um modelo de ilha em um oceano onde não há ilha, usaremos duas cadeias (+,-). 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 de menos (-) 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 do algoritmo de Viterbi, com a seguinte equação: (Calhau, 2008)
  • 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 o HMM. A programação dinâmica é importante para esse modelo porque ela é utilizada em problemas de otimização, ou seja, ela resolve problemas a partir do resultado de problemas menores, e utiliza uma tabela para armazenar os resultados, ao invés de recalculá-los. (Ferreira, 2004) Foram apresentados ainda os três problemas básicos de um HMM, que consiste em: avaliação da probabilidade de uma sequência de observações; determinação da melhor sequência de estados; e ajuste dos parâmetros do modelo de acordo com a sequência observada. Tais problemas do HMM são resolvidos de modo eficiente pelos respectivos 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 do algoritmo de Viterbi. A pesquisa de ilhas CpG é importante, pois à medida em que encontrar ilhas CpG corresponde encontrar, na maioria dos casos, regiões promotoras de genes. (Calhau, 2008) Por fim, a realização deste trabalho foi muito importante para o entendimento dos Modelos Ocultos de Markov e suas aplicações. Referências Bandeira, 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. 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.