Na engenharia elétrica, computação estatística e bioinformática, o algoritmo de Baum–Welch é um caso especial do algoritmo de maximização da expectativa (EM) usado para encontrar os parâmetros desconhecidos de um modelo oculto de Markov (HMM). Ele faz uso do algoritmo forward-backward para calcular as estatísticas para a etapa de expectativa. O algoritmo de Baum–Welch, o método principal para inferência em modelos ocultos de Markov, é numericamente instável devido ao seu cálculo recursivo de probabilidades conjuntas. À medida que o número de variáveis cresce, essas probabilidades conjuntas tornam-se cada vez menores, levando as recursões forward a se aproximarem rapidamente de valores abaixo da precisão da máquina.[1]

História

editar

O algoritmo de Baum–Welch recebeu esse nome em homenagem aos seus inventores Leonard E. Baum e Lloyd R. Welch. O algoritmo e os Modelos Ocultos de Markov foram descritos pela primeira vez em uma série de artigos por Baum e seus colegas no Centro de Pesquisa em Comunicações do IDA, Princeton no final dos anos 1960 e início dos anos 1970.[2] Uma das primeiras grandes aplicações dos HMMs foi no campo do processamento de fala.[3] Na década de 1980, os HMMs estavam surgindo como uma ferramenta útil na análise de sistemas biológicos e informações, e em particular informação genética.[4] Desde então, eles se tornaram uma ferramenta importante na modelagem probabilística de sequências genômicas.[5]

Descrição

editar

Um modelo oculto de Markov descreve a probabilidade conjunta de uma coleção de variáveis aleatórias discretas "ocultas" e observadas. Ele se baseia na suposição de que a i-ésima variável oculta dada a (i − 1)-ésima variável oculta é independente das variáveis ocultas anteriores, e as variáveis de observação atuais dependem apenas do estado oculto atual.

O algoritmo de Baum–Welch usa o conhecido algoritmo EM para encontrar a estimativa de máxima verossimilhança dos parâmetros de um modelo oculto de Markov, dado um conjunto de vetores de características observados.

Seja uma variável aleatória discreta oculta com valores possíveis (ou seja, assumimos que existem estados no total). Assumimos que o é independente do tempo , o que leva à definição da matriz de transição estocástica independente do tempo

A distribuição de estado inicial (ou seja, quando ) é dada por

As variáveis de observação podem assumir um dos valores possíveis. Também assumimos que a observação dada o estado "oculto" é independente do tempo. A probabilidade de uma certa observação no tempo para o estado é dada por

Levando em conta todos os valores possíveis de e , obtemos a matriz onde pertence a todos os estados possíveis e pertence a todas as observações.

Uma sequência de observação é dada por .

Assim, podemos descrever uma cadeia de Markov oculta por . O algoritmo de Baum–Welch encontra um máximo local para (ou seja, os parâmetros do HMM que maximizam a probabilidade da observação).[6]

Algoritmo

editar

Defina com condições iniciais aleatórias. Elas também podem ser definidas usando informações prévias sobre os parâmetros, se disponíveis; isso pode acelerar o algoritmo e também direcioná-lo para o máximo local desejado.

Procedimento Forward (Avançar)

editar

Seja , a probabilidade de ver as observações e estar no estado no tempo . Isso é encontrado recursivamente:

Como esta série converge exponencialmente para zero, o algoritmo sofrerá underflow numérico para sequências mais longas.[7] No entanto, isso pode ser evitado em um algoritmo ligeiramente modificado escalando no procedimento forward e no procedimento backward abaixo.

Procedimento Backward (Retroceder)

editar

Seja que é a probabilidade do final da sequência parcial dado o estado inicial no tempo . Calculamos como:

Atualização

editar

Podemos agora calcular as variáveis temporárias, de acordo com o Teorema de Bayes:

que é a probabilidade de estar no estado no tempo dada a sequência observada e os parâmetros

que é a probabilidade de estar no estado e nos tempos e respectivamente dada a sequência observada e os parâmetros .

Os denominadores de e são os mesmos; eles representam a probabilidade de fazer a observação dados os parâmetros .

Os parâmetros do modelo oculto de Markov podem agora ser atualizados:

que é a frequência esperada gasta no estado no tempo .

que é o número esperado de transições do estado i para o estado j comparado ao número total esperado de transições começando no estado i, incluindo do estado i para ele mesmo. O número de transições começando no estado i é equivalente ao número de vezes que o estado i é observado na sequência de t = 1 a t = T − 1.

onde

é uma função indicadora, e é o número esperado de vezes que as observações de saída foram iguais a enquanto no estado sobre o número total esperado de vezes no estado .

Essas etapas são agora repetidas iterativamente até um nível desejado de convergência.

Nota: É possível ocorrer o sobreajuste (over-fit) em um conjunto de dados específico. Ou seja, . O algoritmo também não garante um máximo global.

Múltiplas sequências

editar

O algoritmo descrito até agora assume uma única sequência observada . No entanto, em muitas situações, existem várias sequências observadas: . Neste caso, as informações de todas as sequências observadas devem ser usadas na atualização dos parâmetros , e . Assumindo que você calculou e para cada sequência , os parâmetros podem agora ser atualizados:

onde

é uma função indicadora

Exemplo

editar

Suponha que temos uma galinha da qual coletamos ovos ao meio-dia todos os dias. Agora, se a galinha botou ovos para coleta ou não, depende de alguns fatores desconhecidos que estão ocultos. Podemos, no entanto (por simplicidade) assumir que a galinha está sempre em um de dois estados que influenciam se a galinha bota ovos, e que este estado depende apenas do estado no dia anterior. Agora, não sabemos o estado no ponto de partida inicial, não sabemos as probabilidades de transição entre os dois estados e não sabemos a probabilidade de a galinha botar um ovo dado um estado específico.[8][9] Para começar, primeiro deduzimos as matrizes de transição e emissão.

Transição
Estado 1 Estado 2
Estado 1 0.5 0.5
Estado 2 0.3 0.7
Emissão
Sem Ovos Ovos
Estado 1 0.3 0.7
Estado 2 0.8 0.2
Inicial
Estado 1 0.2
Estado 2 0.8

Então, pegamos um conjunto de observações (E = ovos, N = sem ovos): N, N, N, N, N, E, E, N, N, N

Isso nos dá um conjunto de transições observadas entre os dias: NN, NN, NN, NN, NE, EE, EN, NN, NN

O próximo passo é estimar uma nova matriz de transição. Por exemplo, a probabilidade da sequência NN e do estado ser e depois é dada pelo seguinte:

Sequência observada Probabilidade mais alta de observar essa sequência se o estado for e depois Probabilidade mais alta de observar essa sequência
NN 0.024 = 0.2 × 0.3 × 0.5 × 0.8 0.3584 ,
NN 0.024 = 0.2 × 0.3 × 0.5 × 0.8 0.3584 ,
NN 0.024 = 0.2 × 0.3 × 0.5 × 0.8 0.3584 ,
NN 0.024 = 0.2 × 0.3 × 0.5 × 0.8 0.3584 ,
NE 0.006 = 0.2 × 0.3 × 0.5 × 0.2 0.1344 ,
EE 0.014 = 0.2 × 0.7 × 0.5 × 0.2 0.0490 ,
EN 0.056 = 0.2 × 0.7 × 0.5 × 0.8 0.0896 ,
NN 0.024 = 0.2 × 0.3 × 0.5 × 0.8 0.3584 ,
NN 0.024 = 0.2 × 0.3 × 0.5 × 0.8 0.3584 ,
Total 0.22 2.4234

Assim, a nova estimativa para a transição de para é agora (referida como "Pseudo probabilidades" nas tabelas a seguir). Em seguida, calculamos as probabilidades de transição de para , de para e de para e normalizamos cada linha da matriz de transição para que as probabilidades de transições de um determinado estado inicial somem 1. Isso nos dá a matriz de transição atualizada:

Matriz de Transição Antiga
Estado 1 Estado 2
Estado 1 0.5 0.5
Estado 2 0.3 0.7
Nova Matriz de Transição (Pseudo Probabilidades)
Estado 1 Estado 2
Estado 1 0.0598 0.0908
Estado 2 0.2179 0.9705
Nova Matriz de Transição (Após Normalização)
Estado 1 Estado 2
Estado 1 0.3973 0.6027
Estado 2 0.1833 0.8167

Em seguida, queremos estimar uma nova matriz de emissão,

Sequência Observada Probabilidade mais alta de observar essa sequência
se for assumido que E vem de
Probabilidade mais alta de observar essa sequência
NE 0.1344 , 0.1344 ,
EE 0.0490 , 0.0490 ,
EN 0.0560 , 0.0896 ,
Total 0.2394 0.2730

A nova estimativa para a emissão de E vindo de agora é .

Isso nos permite calcular a matriz de emissão conforme descrito acima no algoritmo, somando as probabilidades para as respectivas sequências observadas. Em seguida, repetimos se N veio de e para se N e E vieram de e normalizamos.

Matriz de Emissão Antiga
Sem Ovos Ovos
Estado 1 0.3 0.7
Estado 2 0.8 0.2
Nova Matriz de Emissão (Estimativas)
Sem Ovos Ovos
Estado 1 0.0404 0.8769
Estado 2 1.0000 0.7385
Nova Matriz de Emissão (Após Normalização)
Sem Ovos Ovos
Estado 1 0.0441 0.9559
Estado 2 0.5752 0.4248

Para estimar as probabilidades iniciais, assumimos que todas as sequências começam com o estado oculto e calculamos a probabilidade mais alta e depois repetimos para . Novamente, em seguida, normalizamos para fornecer um vetor inicial atualizado.

Finalmente repetimos esses passos até que as probabilidades resultantes convirjam satisfatoriamente.

Aplicações

editar

Reconhecimento de fala

editar

Modelos Ocultos de Markov foram aplicados pela primeira vez ao reconhecimento de fala por James K. Baker em 1975.[10] O reconhecimento de fala contínua ocorre pelos seguintes passos, modelados por um HMM. A análise de características é inicialmente realizada em características temporais e/ou espectrais do sinal de fala. Isso produz um vetor de observação. A característica é então comparada a todas as sequências das unidades de reconhecimento de fala. Essas unidades podem ser fonemas, sílabas ou unidades de palavras inteiras. Um sistema de decodificação de léxico é aplicado para restringir os caminhos investigados, de modo que apenas palavras no léxico (dicionário de palavras) do sistema sejam investigadas. Semelhante à decodificação do léxico, o caminho do sistema é ainda mais restrito pelas regras de gramática e sintaxe. Finalmente, a análise semântica é aplicada e o sistema emite o enunciado reconhecido. Uma limitação de muitas aplicações de HMM ao reconhecimento de fala é que o estado atual depende apenas do estado no passo de tempo anterior, o que não é realista para a fala, pois as dependências geralmente têm vários passos de tempo em duração.[11] O algoritmo de Baum-Welch também tem extensas aplicações na resolução de HMMs usados no campo da síntese de fala.[12]

Criptanálise

editar

O algoritmo de Baum-Welch é frequentemente usado para estimar os parâmetros de HMMs na decifração de informações ocultas ou com ruído e, consequentemente, é frequentemente usado em criptanálise. Na segurança de dados, um observador gostaria de extrair informações de um fluxo de dados sem conhecer todos os parâmetros da transmissão. Isso pode envolver engenharia reversa de um codificador de canal.[13] HMMs e, como consequência, o algoritmo de Baum-Welch também foram usados para identificar frases faladas em chamadas VoIP criptografadas.[14] Além disso, a criptanálise HMM é uma ferramenta importante para investigações automatizadas de dados de tempo de cache. Ela permite a descoberta automática do estado crítico do algoritmo, por exemplo, valores de chave.[15]

Aplicações em bioinformática

editar

Encontrando genes

editar
Procariotos
editar

O software GLIMMER (Gene Locator and Interpolated Markov ModelER) foi um programa inicial de localização de genes usado para a identificação de regiões codificantes em DNA procarioto.[16][17] O GLIMMER usa Modelos de Markov Interpolados (IMMs) para identificar as regiões codificantes e distingui-las do DNA não-codificante. A versão mais recente (GLIMMER3) demonstrou ter maior especificidade e precisão em comparação com os seus antecessores no que diz respeito à previsão dos locais de início da tradução, demonstrando uma precisão média de 99% na localização de pontos 3' em comparação com genes confirmados em procariotos.[18]

Eucariotos
editar

O servidor web GENSCAN é um localizador de genes capaz de analisar sequências eucariotas de até um milhão de pares de bases (1 Mbp) de comprimento.[19] O GENSCAN utiliza um modelo de Markov geral não homogêneo, de período três e de quinta ordem de regiões de codificação de DNA. Além disso, esse modelo é responsável pelas diferenças na densidade e estrutura dos genes (como o comprimento dos íntrons) que ocorrem em diferentes isocoros. Enquanto a maioria dos softwares integrados de descoberta de genes (na época do lançamento do GENSCAN) presumia que as sequências de entrada contivessem exatamente um gene, o GENSCAN resolve um caso geral onde genes parciais, completos ou múltiplos (ou até mesmo nenhum gene) estão presentes.[20] O GENSCAN demonstrou prever exatamente a localização dos éxons com 90% de precisão com 80% de especificidade em comparação a um banco de dados anotado.[21]

Detecção de variação do número de cópias

editar

As Variações do número de cópias (CNVs) são uma forma abundante de variação da estrutura do genoma em humanos. Um HMM bivariado de valor discreto (dbHMM) foi usado para atribuir regiões cromossômicas a sete estados distintos: regiões não afetadas, deleções, duplicações e quatro estados de transição. A solução deste modelo usando Baum-Welch demonstrou a capacidade de prever a localização do ponto de quebra de CNV em aproximadamente 300 pb a partir de experimentos de micro-arranjos.[22] Essa magnitude de resolução permite correlações mais precisas entre diferentes CNVs e através de populações do que as anteriormente possíveis, permitindo o estudo das frequências populacionais das CNV. Também demonstrou um padrão de herança direta para uma CNV específica.

Implementações

editar

Veja também

editar

Referências

editar
  1. «Scaling Factors for Hidden Markov Models». gregorygundersen.com. Consultado em 19 de outubro de 2024 
  2. Rabiner, Lawrence. «First Hand: The Hidden Markov Model». IEEE Global History Network. Consultado em 2 de outubro de 2013 
  3. Jelinek, Frederick; Bahl, Lalit R.; Mercer, Robert L. (maio de 1975). «Design of a linguistic statistical decoder for the recognition of continuous speech». IEEE Transactions on Information Theory. 21 (3): 250–6. doi:10.1109/tit.1975.1055384 
  4. Bishop, Martin J.; Thompson, Elizabeth A. (20 de julho de 1986). «Maximum likelihood alignment of DNA sequences». Journal of Molecular Biology. 190 (2): 159–65. PMID 3641921. doi:10.1016/0022-2836(86)90289-5 
  5. Durbin, Richard (23 de abril de 1998). Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids. [S.l.]: Cambridge University Press. ISBN 978-0-521-62041-3 
  6. Bilmes, Jeff A. (1998). A Gentle Tutorial of the EM Algorithm and its Application to Parameter Estimation for Gaussian Mixture and Hidden Markov Models. Berkeley, CA: International Computer Science Institute. pp. 7–13 
  7. Rabiner, Lawrence (fevereiro de 1989). «A Tutorial on Hidden Markov Models and Selected Applications in Speech recognition» (PDF). Proceedings of the IEEE. Consultado em 29 de novembro de 2019 
  8. «Baum-Welch and HMM applications» (PDF). Johns Hopkins Bloomberg School of Public Health. Consultado em 11 de outubro de 2019. Cópia arquivada (PDF) em 14 de abril de 2021 
  9. Frazzoli, Emilio. «Intro to Hidden Markov Models: the Baum-Welch Algorithm» (PDF). Aeronautics and Astronautics, Massachusetts Institute of Technology. Consultado em 2 de outubro de 2013 
  10. Baker, James K. (1975). «The DRAGON system—An overview». IEEE Transactions on Acoustics, Speech, and Signal Processing. 23: 24–29. doi:10.1109/TASSP.1975.1162650 
  11. Rabiner, Lawrence (fevereiro de 1989). «A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition». Proceedings of the IEEE. 77 (2): 257–286. CiteSeerX 10.1.1.381.3454Acessível livremente. doi:10.1109/5.18626 
  12. Tokuda, Keiichi; Yoshimura, Takayoshi; Masuko, Takashi; Kobayashi, Takao; Kitamura, Tadashi (2000). «Speech Parameter Generation Algorithms for HMM-Based Speech Synthesis». IEEE International Conference on Acoustics, Speech, and Signal Processing. 3 
  13. Dingel, Janis; Hagenauer, Joachim (24 de junho de 2007). «Parameter Estimation of a Convolutional Encoder from Noisy Observations». IEEE International Symposium on Information Theory 
  14. Wright, Charles; Ballard, Lucas; Coull, Scott; Monrose, Fabian; Masson, Gerald (2008). «Spot me if you can: Uncovering spoken phrases in encrypted VoIP conversations». IEEE International Symposium on Security and Privacy 
  15. Brumley, Bob; Hakala, Risto (2009). «Cache-Timing Template Attacks». Advances in Cryptology – ASIACRYPT 2009. Col: Lecture Notes in Computer Science. 5912. [S.l.: s.n.] pp. 667–684. ISBN 978-3-642-10365-0. doi:10.1007/978-3-642-10366-7_39 
  16. Salzberg, Steven; Delcher, Arthur L.; Kasif, Simon; White, Owen (1998). «Microbial gene identification using interpolated Markov Models». Nucleic Acids Research. 26 (2): 544–548. PMC 147303Acessível livremente. PMID 9421513. doi:10.1093/nar/26.2.544 
  17. «Glimmer: Microbial Gene-Finding System». Johns Hopkins University - Center for Computational Biology 
  18. Delcher, Arthur; Bratke, Kirsten A.; Powers, Edwin C.; Salzberg, Steven L. (2007). «Identifying bacterial genes and endosymbiont DNA with Glimmer». Bioinformatics. 23 (6): 673–679. PMC 2387122Acessível livremente. PMID 17237039. doi:10.1093/bioinformatics/btm009 
  19. Burge, Christopher. «The GENSCAN Web Server at MIT». Consultado em 2 de outubro de 2013. Arquivado do original em 6 de setembro de 2013 
  20. Burge, Chris; Karlin, Samuel (1997). «Prediction of Complete Gene Structures in Human Genomic DNA». Journal of Molecular Biology. 268 (1): 78–94. CiteSeerX 10.1.1.115.3107Acessível livremente. PMID 9149143. doi:10.1006/jmbi.1997.0951 
  21. Burge, Christopher; Karlin, Samuel (1998). «Finding the Genes in Genomic DNA». Current Opinion in Structural Biology. 8 (3): 346–354. PMID 9666331. doi:10.1016/s0959-440x(98)80069-9Acessível livremente 
  22. Korbel, Jan; Urban, Alexander; Grubert, Fabien; Du, Jiang; Royce, Thomas; Starr, Peter; Zhong, Guoneng; Emanuel, Beverly; Weissman, Sherman; Snyder, Michael; Gerstein, Marg (12 de junho de 2007). «Systematic prediction and validation of breakpoints associated with copy-number variations in the human genome». Proceedings of the National Academy of Sciences of the United States of America. 104 (24): 10110–5. Bibcode:2007PNAS..10410110K. PMC 1891248Acessível livremente. PMID 17551006. doi:10.1073/pnas.0703834104Acessível livremente 

Ligações externas

editar

📚 Artikel Terkait di Wikipedia

Motor de inferência

fevereiro de 2026  «The LEAPS Algorithms» (PDF)  Uniyal, Mohit (22 de outubro de 2024). «Forward Chaining and Backward Chaining in AI». Applied AI Blog

Algoritmo de busca de expressões Boyer-Moore

algoritmo de busca de expressões Boyer-Moore (Boyer-Moore string search algorithm) é um eficiente algoritmo de busca que é o padrão de qualidade para busca

Lista de jogos para Nintendo Switch

com/games/detail/i-and-me-switch https://www.nintendo.com/games/detail/i-hate-running-backwards-switch https://www.nintendo.com/games/detail/i-wanna-fly-switch https://www

Rede neural recorrente

h_{1}),f_{\theta }(x_{1},h_{1})=(y_{1},h_{2}),\dots } A RNN para trás (backward) processa na direção oposta: f θ ′ ′ ( x N , h N ′ ) = ( y N ′ , h N −

Modelo oculto de Markov

and MAP. Algorithms, 16(3), 173. Azeraf, E., Monfrini, E., Vignon, E., & Pieczynski, W. (2020). Hidden markov chains, entropic forward-backward, and part-of-speech

Atenção (aprendizado de máquina)

passagem de treinamento para trás (backwards pass), os pesos "suaves" existem apenas na passagem para a frente (forward pass) e, portanto, mudam a cada etapa