Cadeias de Markov vs. HMM

11

As cadeias de Markov fazem sentido para mim; posso usá-las para modelar mudanças de estado probabilísticas em problemas da vida real. Depois vem o HMM. Diz-se que os HMMs são mais adequados para modelar muitos problemas do que os MCs. No entanto, os problemas mencionados pelas pessoas são um pouco complexos de entender, como o processamento de fala. Então, minha pergunta é: você pode descrever um problema "real e simples" para o qual o HMM é mais adequado que o MC? e explicar por que? obrigado

Mario
fonte

Respostas:

19

O reconhecimento de fala não é um exemplo tão complexo quanto você pensa.

Primeiro, imagine criar uma cadeia de Markov (MC) que faça reconhecimento de texto. Seu programa lê vários textos (perfeitos, sem erros) e calcula estados (palavras) e alterações de estado (próximas palavras). Parece que você conseguiu isso. Agora você pode gerar texto ou prever algum texto para prever a próxima palavra usando os estados e as probabilidades de transição do seu MC.

Agora imagine que você deseja usar seu MC com fala. Você simplesmente manda as pessoas lerem um texto semelhante ao seu MC e pronto, certo? Bem ... Exceto que eles pronunciarão as palavras de maneira diferente: onde o texto escrito diz "batata", você ouvirá "po-TAY-toh" e "po-TAH-toh" e "po-TAH-toh" e "pu-TAY -para ", etc. E vice-versa: o texto" comeu "e" oito "representam dois estados diferentes, mas são (geralmente) pronunciados da mesma forma.

Seu algoritmo não vê mais os estados subjacentes (palavras), ele vê uma distribuição probabilística de pronúncias para cada palavra. Seu MC original está oculto por trás das pronúncias e agora seu modelo precisa ter duas camadas.

Para que muitas pessoas leiam em voz alta o texto que você usou para o treinamento original, você pode obter uma distribuição das pronúncias de cada palavra e, em seguida, combinar seu modelo original com o modelo de pronúncia e ter um Modelo Markov oculto ( um HMM).

A maioria dos problemas do mundo real será assim, pois o mundo real tende a ser barulhento. Na verdade, você não saberá em que estado está o item. Em vez disso, você terá uma variedade de indicadores para cada estado: às vezes o mesmo indicador para estados diferentes ("ate" e "oito") e às vezes indicadores diferentes para o mesmo estado ("pu-TAY-toe" e "pah-tah-TOE"). Portanto, os HMMs são mais adequados para problemas do mundo real.

[Duas anotações: 1) o reconhecimento de fala real funciona no nível dos fonemas, não no nível das palavras, e 2) acredito que os HMMs eram o rei da colina para o reconhecimento de fala, mas foram recentemente destronados por redes neurais profundas.]

Wayne
fonte
6

Basicamente, um HMM é um modelo de Markov no qual o estado não é totalmente observável, mas apenas indiretamente por meio de algumas observações barulhentas. A parte do modelo de Markov é uma maneira simples de impor dependências temporais no estado. Do mesmo modo, os problemas nos quais os HMMs são úteis são aqueles em que o estado segue um modelo de Markov, mas você não observa o estado diretamente.

Existem várias coisas que você pode fazer com um HMM. Uma coisa útil que você pode fazer é a seguinte - dado um conjunto de observações barulhentas até o momento, talvez você queira saber qual é o estado atual mais provável do sistema. Para fazer isso, você combinaria adequadamente a estrutura da cadeia de Markov com as observações para inferir o estado. Da mesma forma, você pode estender isso para inferir toda a sequência de estados a partir da sequência de observações ( isso é padrão).

Em ciência e engenharia, esse modelo é usado o tempo todo. Por exemplo, talvez você esteja gravando vídeo de um animal simples como c. elegans(um verme) e possui apenas um pequeno número de estados comportamentais discretos. No vídeo, você deseja rotular cada quadro com o estado comportamental do animal. A partir de um único quadro, o algoritmo de rotulagem apresenta algum erro / ruído. No entanto, também existem dependências temporais que você pode modelar com uma cadeia de Markov ... Se em um quadro o animal estava em um estado, é provável que ele esteja no mesmo estado para o próximo quadro (e talvez alguns estados permitam apenas transições para outros estados). Basicamente, combinando suas observações ruidosas de um único quadro com a estrutura das transições (pelo HMM), você pode obter uma sequência de estimativas de estado mais suavizada e com melhor restrição.

Josh
fonte
2

HMM é um modelo de mistura. Assim como a mistura do modelo gaussiano . A razão pela qual a usamos, além da cadeia de Markov, é que é mais complexo capturar os padrões de dados.

Semelhante a se usarmos Gaussian único para modelar uma variável contenciosa OU usarmos mistura de Gaussian para modelar uma variável contínua.

Eu usaria uma variável contínua para demonstrar essa ideia: suponha que tenhamos esses dados

insira a descrição da imagem aqui

É melhor modelá-lo com 2 gaussianos e com proporções diferentes. O que é "equivalente" em caso discreto: construímos um HMM com 2 estados ocultos.

Haitao Du
fonte