Quais são as diferenças entre os modelos ocultos de Markov e as redes neurais?


40

Estou apenas começando a me molhar nas estatísticas, então desculpe se esta pergunta não faz sentido. Eu usei os modelos de Markov para prever estados ocultos (cassinos injustos, jogadas de dados etc.) e redes neurais para estudar os cliques dos usuários em um mecanismo de pesquisa. Ambos tinham estados ocultos que estávamos tentando descobrir usando observações.

Pelo que entendi, ambos prevêem estados ocultos, então estou me perguntando quando alguém usaria modelos de Markov em redes neurais? São apenas abordagens diferentes para problemas semelhantes?

(Estou interessado em aprender, mas também tenho outra motivação, tenho um problema que estou tentando resolver usando modelos ocultos de Markov, mas isso está me deixando maluco, por isso estava interessado em ver se posso mudar para o uso de outra coisa.)


2
Você pode querer olhar aqui: stats.stackexchange.com/questions/4498/...
Atomics

Você gostaria de escolher uma resposta ou esclarecer melhor o que está procurando?
conjugateprior

Respostas:


27

O que está oculto e o que é observado

O que está oculto em um modelo de Markov oculto é o mesmo que está oculto em um modelo de mistura discreta; portanto, para maior clareza, esqueça a dinâmica do estado oculto e use um modelo de mistura finita como exemplo. O 'estado' neste modelo é a identidade do componente que causou cada observação. Nesta classe de modelo, tais causas nunca são observadas, portanto, a "causa oculta" é traduzida estatisticamente na alegação de que os dados observados têm dependências marginais que são removidas quando o componente de origem é conhecido. E estima-se que os componentes de origem sejam o que torna essa relação estatística verdadeira.

O que está oculto em uma rede neural de múltiplas camadas feedforward com unidades médias sigmóides são os estados dessas unidades, não as saídas que são alvo da inferência. Quando a saída da rede é uma classificação, ou seja, uma distribuição de probabilidade entre as possíveis categorias de saída, esses valores de unidades ocultas definem um espaço no qual as categorias são separáveis. O truque para aprender esse modelo é criar um espaço oculto (ajustando o mapeamento das unidades de entrada) dentro do qual o problema é linear. Consequentemente, limites de decisão não lineares são possíveis no sistema como um todo.

Generativo versus discriminativo

O modelo de mistura (e HMM) é um modelo do processo de geração de dados, às vezes chamado de probabilidade ou 'modelo futuro'. Quando associado a algumas suposições sobre as probabilidades anteriores de cada estado, é possível inferir uma distribuição sobre os valores possíveis do estado oculto usando o teorema de Bayes (uma abordagem generativa). Observe que, embora chamado de 'prior', o prior e os parâmetros na probabilidade geralmente são aprendidos com os dados.

Em contraste com o modelo de mistura (e HMM), a rede neural aprende uma distribuição posterior diretamente sobre as categorias de saída (uma abordagem discriminativa). Isso é possível porque os valores de saída foram observados durante a estimativa. E, como foram observadas, não é necessário construir uma distribuição posterior a partir de um modelo anterior e específico para a probabilidade, como uma mistura. O posterior é aprendido diretamente dos dados, que são mais eficientes e menos dependentes do modelo.

Misturar e combinar

Para tornar as coisas mais confusas, essas abordagens podem ser misturadas, por exemplo, quando o estado do modelo de mistura (ou HMM) às vezes é realmente observado. Quando isso é verdade, e em algumas outras circunstâncias não relevantes aqui, é possível treinar discriminativamente em um modelo generativo. Da mesma forma, é possível substituir o mapeamento do modelo de mistura de um HMM por um modelo avançado mais flexível, por exemplo, uma rede neural.

As questões

Portanto, não é bem verdade que os dois modelos prevejam o estado oculto. Os HMMs podem ser usados ​​para prever o estado oculto, embora apenas do tipo que o modelo a frente está esperando. Redes neurais podem ser usadas para prever um estado ainda não observado , por exemplo, estados futuros para os quais preditores estão disponíveis. Este tipo de estado não está oculto em princípio, apenas não foi observado ainda.

Quando você usaria um e não o outro? Bem, redes neurais fazem modelos de séries temporais bastante estranhos na minha experiência. Eles também assumem que você observou a saída. Os HMMs não, mas você realmente não tem controle sobre qual é realmente o estado oculto. No entanto, eles são modelos de séries temporais adequados.


2
+1 Isso é muito bom. Por: Similarly it is possible to replace the mixture model mapping of an HMM with a more flexible forward model, e.g., a neural network.você quer dizer substituir as probabilidades de emissão p (Observado | Oculto) por um feed NN? Eu me deparei com isso em alguns lugares, mas nenhum dá uma explicação; eles apenas mencionam que o implementaram. Suponho que eles substituam a etapa do MLE para aprender as emissões, mas não conseguem entender como. Você conhece algum código ou exemplo explicativo? Qualquer indicação bem-vinda, obrigado.
Zhubarb 26/09/14

Parece ser menos usado dessa maneira (mais alguém de ML pode me corrigir aqui). Assim, estimar os parâmetros NN que mapeiam o vetor de estado para produzir condicionalmente o conhecimento do vetor de estado (ou pelo menos conhecer o valor esperado, como em um algoritmo EM) é a mesma tarefa que o treinamento com dados de entrada e saída observados, então acho que há nada de especial a dizer sobre essa parte.
conjugateprior

A resposta é boa, exceto: As redes neurais podem ser discriminativas (feed forward etc) ou generativas (máquinas bolzmann restritas etc.). Além disso, redes neurais recorrentes, como os modelos LSTM e Reservoir Computing, podem modelar séries temporais e HMM - e algumas vezes até melhores que o HMM, especialmente no caso de séries temporais com forte dinâmica não linear e correlação de longo prazo.
precisa saber é o seguinte

10

Modelos de Markov ocultos podem ser usados ​​para gerar uma linguagem, ou seja, listar elementos de uma família de strings. Por exemplo, se você tiver um HMM que modela um conjunto de seqüências, poderá gerar membros dessa família, listando as sequências que se enquadram no grupo de sequências que estamos modelando.

Redes Neurais, pegue uma entrada de um espaço de alta dimensão e simplesmente mapeie-a para um espaço dimensional inferior (a maneira como as Redes Neurais mapeiam essa entrada é baseada no treinamento, em sua topologia e outros fatores). Por exemplo, você pode pegar uma imagem de um número de 64 bits e mapeá-la para um valor verdadeiro / falso que descreva se esse número é 1 ou 0.

Embora ambos os métodos sejam capazes de (ou pelo menos tentem) discriminar se um item é membro de uma classe ou não, as Redes Neurais não podem gerar um idioma como descrito acima.

Existem alternativas aos modelos de Markov ocultos disponíveis; por exemplo, você pode usar uma rede bayesiana mais geral, uma topologia diferente ou uma gramática livre de contexto estocástico (SCFG) se você acredita que o problema está na falta de poder dos HMMs. modele seu problema - isto é, se você precisar de um algoritmo capaz de discriminar hipóteses mais complexas e / ou descrever o comportamento dos dados que são muito mais complexos.


6
+1 para o segundo parágrafo. Gostaria de salientar que quem entende claramente todos os elementos dessa resposta provavelmente não faria a pergunta original. Provavelmente, não é útil mencionar gramáticas formais para alguém cujo post começa com "Estou apenas me irritando nas estatísticas ..." O segundo parágrafo aqui captura a essência do que o OP está pedindo. Em vez do primeiro parágrafo, você pode dizer: um HMM modela dependências condicionais de estados ocultos, em que cada estado tem uma distribuição de probabilidade sobre as observações.
Phillip Cloud

7
Esta resposta está simplesmente errada. A Rede Neural aqui é assumida como feedforward. Esta é apenas uma classe de redes neurais. Os modelos recorrentes não mapeiam simplesmente entradas únicas para uma representação de dimensão mais baixa e podem gerar linguagem. Veja, por exemplo, arxiv.org/abs/1308.0850
rd11

Gerar uma sequência (como no artigo vinculado) não é o mesmo que gerar um idioma. Suponho que você possa aplicá-los para discernir entre os elementos de um conjunto e, caso contrário, se desejar, um modelo recorrente pode ser considerado como tendo uma única entrada grande que se estende sobre as entradas individuais com recorrência e retornando uma saída grande. Não tenho certeza se a Rede Neural recorrente pode fornecer as saídas sem nenhuma entrada.
Andrew

Hmm. Você pode dar um exemplo de algo que você acha que um HMM pode gerar e que acredita que não pode ser gerado com uma RNN?
RD11

O exemplo que vem à mente é o seguinte: dado um HMM, você pode obter uma sequência de elementos que pertencem ao idioma que o HMM representa. Para que uma RNN faça isso, é necessário adicionar algo além dela (por exemplo, tente as diferentes entradas e marque uma entrada como membro de uma classe ou de outra forma) - embora, no caso de RNNs, você provavelmente esteja procurando várias entradas (um após o outro) como representando um único "item". Os HMMs são mais adequados naturalmente para a finalidade de gerar um idioma.
Andrew

3

A melhor resposta para esta pergunta do que eu encontrei é a seguinte: está aprendendo profundamente uma cadeia de Markov disfarçada . Isso é exatamente o que eu entendi, mas como já houve uma discussão em outro lugar na Internet, estou colocando o link aqui.

Modelo de cadeias de Markov:

p(x1....xn)=p(x1)p(x2|x1)p(x3|x2)...

Os RNNs tentam modelar:

p(x1....xn)=p(x1)p(x2|x1)p(x3|x2,x1)p(x4|x3,x2,x1)...

Podemos usar uma sequência de caracteres como entrada em vez de um único caractere. Dessa forma, podemos capturar melhor o estado (dependendo do contexto).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.