Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Hidden Markov Model (HMM)

Um modelo oculto de Markov (HMM) infere uma sequência de estados ocultos a partir de observações ruidosas. Os seus parâmetros, o algoritmo de Viterbi e as aplicações.

Um modelo oculto de Markov (HMM) é um modelo probabilístico de uma sequência em que um sistema transita entre estados que não podem ser observados diretamente, e cada estado oculto produz uma observação que pode ser observada. Dada uma sequência de observações, como quadros de áudio ou letras de DNA, um HMM calcula a probabilidade de cada sequência de estados ocultos, por exemplo, os fonemas por trás do áudio ou as regiões gênicas por trás das letras. “Markov” refere-se à suposição central do modelo: o próximo estado depende apenas do estado atual. Leonard Baum e seus colegas desenvolveram a teoria no fim da década de 1960, e os HMMs passaram a impulsionar o reconhecimento de fala por décadas. Construídos inteiramente com probabilidades explícitas, eles continuam sendo uma ferramenta padrão na análise de séries temporais e na bioinformática, além de um exemplo clássico de IA estatística.

Componentes de um HMM#

Um HMM com N estados ocultos é definido por três conjuntos de probabilidades:

  • Probabilidades iniciais (π): A probabilidade de começar em cada estado oculto.
  • Probabilidades de transição (A): Uma matriz N × N cuja entrada A[i, j] é a probabilidade de passar do estado i para o estado j em uma etapa, o que faz dos estados ocultos uma cadeia de Markov.
  • Probabilidades de emissão (B): A probabilidade de cada observação dado o estado atual. Observações discretas usam uma tabela, enquanto observações contínuas, como características acústicas, usam distribuições como misturas gaussianas.

Duas suposições mantêm o modelo tratável: cada estado depende apenas do estado anterior, e cada observação depende apenas do estado atual. Desenrolado ao longo do tempo, o modelo é uma cadeia de estados ocultos, cada um emitindo uma observação:

Três problemas clássicos de HMM#

O tutorial de 1989, amplamente citado, de Lawrence Rabiner organizou o uso de HMMs em torno de três perguntas. Cada uma tem uma solução de programação dinâmica cujo custo cresce com N² × T para T observações, em vez de crescer com as Nᵀ sequências de estados possíveis:

  • Avaliação: Qual é a probabilidade de uma sequência de observações sob um determinado modelo? O algoritmo forward soma todas as trajetórias ocultas, permitindo que um reconhecedor escolha o modelo de palavras que melhor explica um enunciado.
  • Decodificação: Qual sequência de estados ocultos melhor explica as observações? O algoritmo de Viterbi, publicado por Andrew Viterbi em 1967 para decodificar códigos convolucionais, encontra a trajetória mais provável, e o algoritmo forward-backward fornece a probabilidade de cada estado em cada etapa temporal.
  • Aprendizado: Quais parâmetros melhor se ajustam a um conjunto de sequências de observações? O algoritmo de Baum-Welch, uma instância de maximização da expectativa, estima π, A e B a partir de sequências não rotuladas. Quando as sequências de estados são rotuladas, basta contar as transições e emissões.

A decodificação de Viterbi pode ser escrita em poucas linhas de NumPy. Neste modelo, a atividade de uma pessoa, caminhar ou correr, é oculta; um rastreador informa uma leitura de velocidade por quadro, e as atividades tendem a persistir de um quadro para o seguinte:

import numpy as np

states = ["walk", "run"]
start = np.array([0.8, 0.2])  # probabilidades do estado inicial
trans = np.array([[0.9, 0.1], [0.1, 0.9]])  # as atividades tendem a persistir entre os quadros
emit = np.array([[0.7, 0.25, 0.05], [0.1, 0.3, 0.6]])  # P(velocidade | estado) para lento, médio, rápido
obs = [0, 0, 2, 0, 0, 1, 2, 2, 1, 2]  # leituras de velocidade por quadro

# Viterbi: melhor log-probabilidade de chegar a cada estado, mais ponteiros de retrocesso
logp = np.log(start) + np.log(emit[:, obs[0]])
back = []
for o in obs[1:]:
    scores = logp[:, None] + np.log(trans)  # linhas: estado anterior; colunas: próximo estado
    back.append(scores.argmax(axis=0))
    logp = scores.max(axis=0) + np.log(emit[:, o])

# Rastreia a sequência de estados mais provável, de trás para frente, a partir do melhor estado final
path = [int(logp.argmax())]
for pointers in reversed(back):
    path.insert(0, int(pointers[path[0]]))
print("Speeds: ", " ".join(["slow", "medium", "fast"][o] for o in obs))
print("Decoded:", " ".join(states[s] for s in path))

Ele decodifica walk walk walk walk walk run run run run run. A leitura rápida no quadro 3 continua sendo “caminhar”, pois mudar para correr e voltar exigiria duas transições improváveis; as leituras médias nos quadros 6 e 9 passam a ser “correr” por causa dos quadros rápidos ao redor. Um classificador por quadro que ignorasse as transições teria classificado o quadro 3 como corrida.

  • Filtro de Kalman: Executa a mesma recursão de predição e atualização para estados contínuos com dinâmica linear e ruído gaussiano. O algoritmo forward do HMM é seu equivalente para estados discretos.
  • Redes bayesianas: Um HMM é a rede bayesiana dinâmica mais simples, com uma variável oculta e uma observada por etapa temporal.
  • Processo de decisão de Markov (MDP): Acrescenta ações e recompensas a uma cadeia de Markov com estados observados, estrutura por trás do aprendizado por reforço.
  • Redes neurais recorrentes e transformers: Aprendem dependências não lineares de longo alcance a partir de grandes conjuntos de dados e substituíram os HMMs na maioria das tarefas de fala e linguagem. Os HMMs precisam de muito menos dados, e todas as suas probabilidades podem ser consultadas diretamente.
  • Modelos de espaço de estados (SSMs): Camadas de aprendizado profundo, como Mamba, compartilham a ideia de espaço de estados da teoria de controle e atualizam um vetor oculto contínuo com dinâmica determinística aprendida.

Aplicações no mundo real#

  • Reconhecimento de fala: Da década de 1980 até o início da década de 2010, a maioria dos reconhecedores modelava cada fonema como um pequeno HMM com emissões de misturas gaussianas. Depois, redes neurais profundas assumiram o modelo de emissão em sistemas híbridos, e modelos ponta a ponta substituíram posteriormente o HMM por completo.
  • Bioinformática: HMMs de perfil descrevem famílias de sequências relacionadas de proteínas ou DNA. O HMMER os utiliza para pesquisar parentes distantes em bancos de dados de sequências e serve de base para o banco de dados de famílias de proteínas Pfam; ferramentas de identificação de genes também usam HMMs para classificar trechos de um genoma como codificantes ou não codificantes.
  • Etiquetagem de classes gramaticais: Os primeiros sistemas estatísticos de processamento de linguagem natural classificavam palavras como substantivos, verbos e outras classes gramaticais, usando a decodificação de Viterbi sobre sequências de etiquetas.
  • Reconhecimento de atividades: Sequências de poses corporais ou leituras de sensores vestíveis são decodificadas em atividades como ficar em pé, caminhar ou cair. A solução de monitoramento de exercícios da Ultralytics rastreia uma sequência desse tipo com dois estados: ela classifica cada pessoa como “para cima” ou “para baixo” com base em um ângulo articular dos pontos-chave de estimativa de pose do YOLO26 — por padrão, o cotovelo —, alternando acima de 145° e abaixo de 90°, e conta uma repetição a cada mudança de “para cima” para “para baixo”.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina