Descubra os Modelos Ocultos de Markov (HMMs), seus princípios, aplicações em reconhecimento de fala, bioinformática e IA, e como eles inferem estados ocultos.
Um modelo de Markov oculto (HMM) é um modelo estatístico de IA utilizado para descrever sistemas probabilísticos probabilísticos em que os estados internos não são diretamente observáveis (ocultos) mas podem ser inferidos através de uma sequência de eventos observáveis. Os HMMs são particularmente eficazes para análise de séries temporais e dados sequenciais, baseando-se no pressuposto de Markov: a probabilidade de um estado futuro depende apenas do estado atual e não dos eventos que o precederam. Esta estrutura fez dos HMMs uma ferramenta fundamental em domínios como Processamento de linguagem natural (PNL), bioinformática e processamento da fala.
Um HMM modela um processo como um sistema que transita entre estados ocultos ao longo do tempo, emitindo resultados observáveis em em cada passo. O modelo é definido por três conjuntos principais de probabilidades:
Dois algoritmos-chave são fundamentais para a utilização de HMMs. O algoritmo O algoritmo de Viterbi é utilizado para a descodificação, determinando a A descodificação é efectuada determinando a sequência mais provável de estados ocultos que produziram uma dada sequência de observações. Para aprender os parâmetros do modelo modelo a partir dos dados de treino, o algoritmo algoritmo de Baum-Welch, um tipo de método de método de maximização da expetativa (EM), é normalmente utilizado.
Enquanto os modernos Aprendizado Profundo (DL) estruturas como
PyTorch frequentemente lidam com tarefas sequenciais atualmente, a compreensão dos
HMMs fornece uma visão crítica da modelação probabilística. O exemplo Python a seguir usa o
hmmlearn para demonstrar uma previsão de estado simples:
# pip install hmmlearn
import numpy as np
from hmmlearn import hmm
# Define an HMM with 2 hidden states (e.g., Sunny, Rainy) and 2 observables
model = hmm.CategoricalHMM(n_components=2, random_state=42)
model.startprob_ = np.array([0.6, 0.4]) # Initial state probabilities
model.transmat_ = np.array([[0.7, 0.3], [0.4, 0.6]]) # Transition matrix
model.emissionprob_ = np.array([[0.9, 0.1], [0.2, 0.8]]) # Emission matrix
# Predict the most likely hidden states for a sequence of observations
logprob, predicted_states = model.decode(np.array([[0, 1, 0]]).T)
print(f"Predicted sequence of hidden states: {predicted_states}")
Os HMM foram fundamentais para o desenvolvimento dos primeiros sistemas de IA e continuam a ser utilizados nos casos em que a interpretabilidade e o raciocínio probabilístico são necessários. e o raciocínio probabilístico são necessários.
Os HMMs são frequentemente comparados com outras técnicas de modelação de sequências, embora difiram significativamente em termos de estrutura e capacidade:
Modelos modernos de visão por computador, tais como Ultralytics YOLO11, utilizam Redes Neuronais Convolucionais (CNN) e Transformadores avançados em vez de HMMs para tarefas como deteção de objectos e deteção de objectos e segmentação de instâncias. No entanto, os HMM continuam a ser um conceito valioso para compreender os fundamentos estatísticos da aprendizagem automática (ML).