Modelo de Markov oculto versus rede neural recorrente

13

Quais problemas de entrada seqüencial são mais adequados para cada um? A dimensionalidade da entrada determina qual é a melhor correspondência? Os problemas que requerem "memória mais longa" são mais adequados para uma RNN LSTM, enquanto os problemas com padrões de entrada cíclicos (mercado de ações, clima) são mais facilmente resolvidos por um HMM?

Parece que há muita sobreposição; Estou curioso para saber quais diferenças sutis existem entre os dois.

reparação
fonte
+1 mas a questão pode ser muito amplo ... Além disso, a meu conhecimento que eles são bastante diferentes ..
Haitao Du
eu adicionei mais esclarecimentos
corrigir
Como uma nota lateral você pode colocar um CRF no topo de uma RNN por exemplo github.com/Franck-Dernoncourt/NeuroNER
Franck Dernoncourt

Respostas:

8

Sumário

Os modelos de Markov ocultos (HMMs) são muito mais simples que as redes neurais recorrentes (RNNs) e dependem de fortes suposições que nem sempre podem ser verdadeiras. Se as premissas forem verdadeiras, você poderá ver um melhor desempenho de um HMM, pois é menos complicado trabalhar.

Uma RNN pode ter um desempenho melhor se você tiver um conjunto de dados muito grande, pois a complexidade extra pode aproveitar melhor as informações em seus dados. Isso pode ser verdade mesmo que as suposições dos HMMs sejam verdadeiras no seu caso.

Por fim, não se restrinja apenas a esses dois modelos para sua tarefa de sequência; às vezes, regressões mais simples (por exemplo, ARIMA) podem vencer, e às vezes outras abordagens complicadas, como as Redes Neurais Convolucionais, podem ser as melhores. (Sim, as CNNs podem ser aplicadas a alguns tipos de dados de sequência, assim como as RNNs.)

Como sempre, a melhor maneira de saber qual modelo é melhor é fabricá-los e medir o desempenho em um conjunto de testes realizado.

Fortes Pressupostos dos HMMs

As transições de estado dependem apenas do estado atual, não de nada no passado.

Essa suposição não se aplica a muitas áreas com as quais estou familiarizado. Por exemplo, finja que você está tentando prever para cada minuto do dia se uma pessoa estava acordada ou dormindo com os dados de movimento. A chance de alguém fazer a transição do sono para o acordado aumenta quanto mais tempo a pessoa fica no estado de sono . Uma RNN poderia, teoricamente, aprender esse relacionamento e explorá-lo para obter maior precisão preditiva.

Você pode tentar contornar isso, por exemplo, incluindo o estado anterior como um recurso ou definindo estados compostos, mas a complexidade adicionada nem sempre aumenta a precisão preditiva de um HMM e definitivamente não ajuda os tempos de computação.

Você deve predefinir o número total de estados.

Voltando ao exemplo do sono, pode parecer que existem apenas dois estados com os quais nos preocupamos. No entanto, mesmo que apenas nos preocupemos em prever o estado de vigília versus o sono , nosso modelo pode se beneficiar da descoberta de estados extras como dirigir, tomar banho, etc. (por exemplo, tomar banho geralmente acontece logo antes de dormir). Novamente, uma RNN poderia teoricamente aprender tal relação se mostrasse exemplos suficientes dele.

Dificuldades com RNNs

Pode parecer do acima exposto que RNNs são sempre superiores. Devo observar, no entanto, que as RNNs podem ser difíceis de trabalhar, principalmente quando o conjunto de dados é pequeno ou as seqüências muito longas. Pessoalmente, tive problemas para treinar as RNNs em alguns dos meus dados e desconfio que a maioria dos métodos / diretrizes da RNN publicados esteja sintonizada nos dados de texto . Ao tentar usar RNNs em dados que não são de texto, tive que realizar uma pesquisa de hiperparâmetro mais ampla do que gostaria para obter bons resultados em meus conjuntos de dados específicos.

Em alguns casos, descobri que o melhor modelo para dados seqüenciais é na verdade um estilo UNet ( https://arxiv.org/pdf/1505.04597.pdf ) Modelo de rede neural convolucional, pois é mais fácil e rápido de treinar, e é capaz para levar em consideração o contexto completo do sinal.

kbrose
fonte
1

Vamos primeiro ver as diferenças entre o HMM e o RNN.

A partir deste trabalho: Um tutorial sobre modelos ocultos de Markov e aplicativos selecionados em reconhecimento de voz , podemos aprender que HMM deve ser caracterizada pelos seguintes três problemas fundamentais:

Problema 1 (Probabilidade): Dado um HMM λ = (A, B) e uma sequência de observação O, determine a probabilidade P (O | λ).
Problema 2 (decodificação): dada uma sequência de observação O e um HMM λ = (A, B), descubra a melhor sequência de estados ocultos Q.
Problema 3 (aprendizado): dada uma sequência de observação O e o conjunto de estados no HMM, aprenda os parâmetros A e B. do HMM

Podemos comparar o HMM com o RNN a partir dessas três perspectivas.

Probabilidade

soma sobre todas as sequências ocultas Probabilidade no HMM (Figura A.5) Modelo de linguagem na RNN
basta obter a probabilidade das funções softmax

No HMM, calculamos a probabilidade por onde o representa todas as possíveis sequências de estados ocultos e a probabilidade é a real probabilidade no gráfico. Enquanto na RNN o equivalente, até onde eu sei, é o inverso da perplexidade na modelagem de linguagem em que e não somamos os estados ocultos e não obtemos a probabilidade exata. P(O)=QP(O,Q)=QP(O|Q)P(Q)Q1p(X)=t=1T1p(xt|x(t1),...,x(1))T

Decodificação

No HMM, a tarefa de decodificação está computando e determinando qual sequência de variáveis ​​é a fonte subjacente de alguma sequência das observações usando o algoritmo de Viterbi e o comprimento do resultado é normalmente igual à observação; enquanto em RNN a decodificação está computando e o comprimento de não é geralmente igual à observação .vt(j)=maxi=1Nvt1(i)aijb(ot)P(y1,...,yO|x1,...,xT)=o=1OP(yo|y1,...,yo1,co)YX

o caminho ousado
Decodificação no HMM (Figura A.10)

a parte do decodificador
Decodificação em RNN

Aprendendo

A aprendizagem no HMM é muito mais complicada do que na RNN. No HMM, usualmente usava o algoritmo Baum-Welch (um caso especial do algoritmo Expectativa-Maximização), enquanto no RNN é geralmente a descida do gradiente.

Para suas subquestões:

Quais problemas de entrada seqüencial são mais adequados para cada um?

Quando você não tiver dados suficientes, use o HMM e quando precisar calcular a probabilidade exata, o HMM também seria o melhor (tarefas generativas modelando como os dados são gerados). Caso contrário, você pode usar o RNN.

A dimensionalidade da entrada determina qual é a melhor correspondência?

Acho que não, mas pode levar mais tempo para o HMM descobrir se os estados ocultos são muito grandes, pois a complexidade dos algoritmos (para trás e para Viterbi) é basicamente o quadrado do número de estados discretos.

Os problemas que requerem "memória mais longa" são mais adequados para uma RNN LSTM, enquanto os problemas com padrões de entrada cíclicos (mercado de ações, clima) são mais facilmente resolvidos por um HMM?

No HMM, o estado atual também é afetado pelos estados e observações anteriores (pelos estados pai) e você pode tentar o Modelo Markov oculto de segunda ordem para "memória mais longa".

Eu acho que você pode usar a RNN para fazer quase

referências

  1. Processamento de linguagem natural com aprendizado profundo CS224N / Ling284
  2. Modelos ocultos de Markov
Lerner Zhang
fonte
Mas, no artigo mencionado, diz que o HMM tem um estado oculto, embora discreto?
Oleg Afanasyev
@OlegAfanasyev Yes. Acho que estou errado, mas voltarei a esta resposta mais tarde.
Lerner Zhang
Isso foi corrigido?
GENIVI-LEARNER 23/03
11
@ GENIVI-LEARNER Reescrevi a resposta e espero que seja de alguma ajuda para você e também espero que você me forneça algumas sugestões sobre como torná-lo melhor.
Lerner Zhang
0

Eu encontrei essa pergunta, porque eu estava pensando sobre suas semelhanças e diferenças também. Eu acho que é muito importante afirmar que os Modelos de Markov Ocultos (HMMs) não têm entradas e saídas no sentido mais estrito.

Os HMMs são os chamados modelos generativos ; se você tiver um HMM, poderá gerar algumas observações a partir do estado em que se encontra. Isso é fundamentalmente diferente dos RNNs, pois, mesmo se você tiver um RNN treinado, precisará contribuir com ele.

Um exemplo prático em que isso é importante é a síntese da fala. Os estados subjacentes do Hidden Markov são telefones e os eventos de probabilidade emitidos são a acústica. Se você tiver um modelo de palavra treinado, poderá gerar quantas realizações diferentes desejar.

Mas com as RNNs, você precisa fornecer pelo menos alguma semente de entrada para obter sua saída. Você pode argumentar que, nos HMMs, você também precisa fornecer uma distribuição inicial, portanto é semelhante. Mas se mantivermos o exemplo de síntese de fala, não é porque a distribuição inicial será fixa (começando sempre pelos primeiros telefones da palavra).

Com os RNNs, você obtém uma sequência de saída determinística para um modelo treinado, se estiver usando a mesma semente de entrada o tempo todo. Com o HMM, você não faz isso porque as transições e as emissões são sempre amostradas de uma distribuição de probabilidade.

boomkin
fonte