Que tipo de algoritmo de aprendizado de máquina é o Hidden Markov Model?

12

Eu usei o algoritmo Hidden Markov Model para reconhecimento de fala automatizado em uma classe de processamento de sinal. Agora, estudando a literatura de aprendizado de máquina, vejo que os algoritmos são classificados como "Classificação", "Clustering" ou "Regressão". Em qual balde o HMM se enquadra? Não encontrei modelos markov ocultos listados na literatura.

user1411110
fonte

Respostas:

14

Eu ficaria tentado a responder "nenhum" ou "classificação e agrupamento".

Por que "nenhum"? Porque os HMMs não estão na mesma bolsa que as máquinas de vetores de suporte ou k-means.

Máquinas de vetores de suporte ou k-means são projetadas especificamente para resolver um problema (classificação no primeiro caso, agrupamento no segundo) e, de fato, são apenas um procedimento de otimização para maximizar um critério de "qualidade esperada da classificação" ou "qualidade do agrupamento" . A beleza está na escolha do critério e do procedimento de otimização. O HMM não é um algoritmo em si. Eles são um tipo específico de distribuição de probabilidade sobre seqüências de vetores - para os quais conhecemos bons algoritmos de estimação de parâmetros e de distribuição marginal. Mas perguntar se eles estão na família "agrupamento" ou "classificação" é tão ridículo quanto perguntar se a distribuição gaussiana é um aprendizado supervisionado ou não supervisionado.

Por que "classificação e agrupamento"? Por causa do seguinte: Sendo distribuições de probabilidade, o HMM pode ser usado para classificação em uma estrutura bayesiana; e sendo modelo com estados ocultos, alguns agrupamentos latentes dos dados de treinamento podem ser recuperados de seus parâmetros. Mais precisamente:

O HMM pode ser usado para classificação. Esta é uma aplicação direta da estrutura de classificação bayesiana, com o HMM sendo usado como modelo probabilístico que descreve seus dados. Por exemplo, você tem um grande banco de dados de enunciados de dígitos ("um", "dois" etc.) e deseja criar um sistema capaz de classificar um enunciado desconhecido. Para cada classe em seus dados de treinamento ("um", "dois", você estima os parâmetros de um modelo HMM que descreve as seqüências de treinamento nessa classe - e termina com 10 modelos. Em seguida, para realizar o reconhecimento, calcule os 10 pontuações de probabilidade (que indicam a probabilidade da sequência que você deseja reconhecer ter sido gerada pelo modelo) e o modelo com a pontuação mais alta fornece o dígito. No tutorial Rabiner sobre HMMs, a etapa de treinamento é "Problema 3", a etapa de classificação é "Problema 2".

kγkk

pichenettes
fonte
1

Primeiro, vamos olhar para as três opções:

  • Classificação : identificando a qual classe de um conjunto de classes predefinidas os dados pertencem.
  • Clustering : aprendendo o conjunto de classes ao qual os dados pertencem.
  • Regressão : localizando um relacionamento entre variável e um ou mais outros.

A descrição do HMM na Wikipedia tem a seguinte tabela:

insira a descrição da imagem aqui

então o número de estados (classes) é fixo.

Isso significa que o algoritmo não tenta descobrir o número de classes (estados) são ---, portanto, não é um cluster aberto (onde o número de estados é desconhecido).

No entanto, como aponta o @nikie, o HMM fará cluster.

Não existe realmente uma variável independente (como existe no contexto da regressão) - portanto, não é regressão.

Então, minha resposta é que o HMM é uma classificação e um algoritmo de agrupamento , não acredito que seja uma regressão.

Peter K.
fonte
2
Como você obtém do "número de classes se fixo" para "para que o algoritmo não tente descobrir que as classes são"? O número de classes para o agrupamento k-means também é fixo, mas é claramente um algoritmo de agrupamento.
Niki Estner
Suponho que estou acostumado ao cluster aberto em vez de fixo. Atualizará a resposta. Obrigado!
Peter K.