Um modelo de Markov oculto (HMM) é um modelo estatístico utilizado para descrever sistemas que transitam entre estados ao longo do tempo. Nos HMMs, a sequência de estados pelos quais o sistema passa não é diretamente observável (está "escondida"), mas pode ser inferida a partir de uma sequência de resultados observáveis ou emissões produzidas por cada estado. Os HMMs são particularmente poderosos na modelação de dados sequenciais e na análise de séries temporais em vários domínios da Inteligência Artificial (IA) e da Aprendizagem Automática (AM). Pertencem a uma classe de modelos conhecidos como modelos gráficos probabilísticos, fornecendo uma estrutura para lidar com a incerteza em sistemas dinâmicos.
Conceitos fundamentais
Os HMMs são definidos por dois processos estocásticos (aleatórios) principais:
- Estados ocultos: Uma cadeia de estados de Markov subjacente e não observável. O sistema transita entre estes estados ocultos de acordo com probabilidades específicas. O pressuposto central é a propriedade de Markov: a probabilidade de transição para o estado seguinte depende apenas do estado atual e não da sequência de estados que o precederam.
- Emissões observáveis: Cada estado oculto gera uma saída ou emissão observável com base numa determinada distribuição de probabilidade. Estas emissões são os dados que realmente observamos.
O modelo é caracterizado por:
- Estados: Um conjunto finito de estados ocultos.
- Observações: Um conjunto finito de emissões ou observações possíveis.
- Probabilidades de transição: As probabilidades de passar de um estado oculto para outro.
- Probabilidades de emissão: As probabilidades de observar uma determinada emissão dado que o sistema está num estado oculto específico.
- Distribuição do estado inicial: As probabilidades de o sistema começar em cada estado oculto.
Como funcionam os modelos de Markov ocultos
Trabalhar com HMMs envolve normalmente a resolução de três problemas fundamentais, muitas vezes resolvidos com algoritmos específicos detalhados em tutoriais como o de Rabiner:
- Problema de avaliação: Dado um HMM e uma sequência de observações, qual é a probabilidade de as observações terem sido geradas pelo modelo? (Resolve usando o algoritmo Forward).
- Problema de descodificação: Dado um HMM e uma sequência de observações, qual é a sequência mais provável de estados ocultos que produziu essas observações? (Resolve usando o algoritmo de Viterbi).
- Problema de aprendizagem: Dada uma sequência de observações (ou múltiplas sequências), como podemos ajustar os parâmetros do HMM (probabilidades de transição e de emissão) para melhor ter em conta os dados observados? (Frequentemente resolvido utilizando o algoritmo de Baum-Welch, uma instância do algoritmo de maximização da expetativa). Isto é crucial para o treino do modelo.
Aplicações no mundo real
Os HMMs têm sido aplicados com sucesso em vários domínios:
- Reconhecimento de voz: Esta é uma aplicação clássica. Os estados ocultos podem representar fonemas (unidades básicas de som), enquanto as observações são caraterísticas acústicas extraídas do sinal de fala. O HMM decodifica a seqüência mais provável de fonemas dado o áudio, formando a base para o reconhecimento de palavras. Historicamente, ferramentas como o CMU Sphinx dependiam muito dos HMMs.
- Bioinformática: Os HMMs são amplamente utilizados na análise de sequências. Por exemplo, na descoberta de genes, os estados ocultos podem representar regiões codificantes, regiões não codificantes ou estruturas específicas de genes (como códons iniciais, exons, introns). As observações são os pares de bases do ADN (A, C, G, T). O modelo ajuda a identificar a localização dos genes numa longa sequência de ADN. Software como o HMMER utiliza HMMs de perfil para análise de sequências de proteínas, comparando sequências com bases de dados como a base de dados NCBI Gene.
- Processamento de linguagem natural (NLP): Utilizado para tarefas como a etiquetagem de parte do discurso, em que os estados ocultos são etiquetas gramaticais (substantivo, verbo, adjetivo) e as observações são as palavras de uma frase. Aplica-se também no reconhecimento de entidades nomeadas (NER).
- Visão por computador (CV): Aplicada no reconhecimento de gestos, no reconhecimento de actividades a partir de vídeo e, por vezes, historicamente, no rastreio de objectos, embora muitas vezes ultrapassada por métodos como os filtros de Kalman ou abordagens de aprendizagem profunda.
- Finanças: Modelação de regimes de mercado (por exemplo, mercados em alta ou em baixa) como estados ocultos baseados em indicadores financeiros observáveis.
- Análise de imagens médicas: Analisa sequências de imagens ou sinais médicos ao longo do tempo.