Modèle de Markov caché vs réseau neuronal récurrent

13

Quels problèmes d'entrée séquentielle conviennent le mieux à chacun? La dimensionnalité d'entrée détermine-t-elle celle qui correspond le mieux? Les problèmes qui nécessitent une "mémoire plus longue" sont-ils mieux adaptés à un LSTM RNN, alors que les problèmes de modèles d'entrée cycliques (bourse, météo) sont plus facilement résolus par un HMM?

Il semble qu'il y ait beaucoup de chevauchements; Je suis curieux de savoir quelles différences subtiles existent entre les deux.

redresser
la source
+1 mais la question peut être trop large ... Aussi, à ma connaissance, ils sont assez différents ..
Haitao Du
j'ai ajouté plus de clarification
réparation le
En remarque, vous pouvez placer un CRF au-dessus d'un RNN, par exemple github.com/Franck-Dernoncourt/NeuroNER
Franck Dernoncourt

Réponses:

8

Résumé

Les modèles de Markov cachés (HMM) sont beaucoup plus simples que les réseaux neuronaux récurrents (RNN) et reposent sur des hypothèses fortes qui ne sont pas toujours vraies. Si les hypothèses sont vraies, vous pouvez voir de meilleures performances d'un HMM car il est moins difficile de travailler.

Un RNN peut être plus performant si vous disposez d'un très grand ensemble de données, car la complexité supplémentaire peut mieux tirer parti des informations contenues dans vos données. Cela peut être vrai même si les hypothèses HMM sont vraies dans votre cas.

Enfin, ne vous limitez pas à ces deux modèles uniquement pour votre tâche de séquence, parfois des régressions plus simples (par exemple ARIMA) peuvent l'emporter, et parfois d'autres approches compliquées telles que les réseaux de neurones à convolution peuvent être les meilleures. (Oui, les CNN peuvent être appliqués à certains types de données de séquence, tout comme les RNN.)

Comme toujours, la meilleure façon de savoir quel modèle est le meilleur est de créer les modèles et de mesurer les performances sur un ensemble de test tenu.

Hypothèses solides des HMM

Les transitions entre États ne dépendent que de l'état actuel, pas de quoi que ce soit dans le passé.

Cette hypothèse ne tient pas dans beaucoup de domaines que je connais. Par exemple, faites comme si vous essayiez de prédire pour chaque minute de la journée si une personne était éveillée ou endormie à partir des données de mouvement. La chance de quelqu'un de transition endormi à éveillé augmente le plus la personne est dans le sommeil état. Un RNN pourrait théoriquement apprendre cette relation et l'exploiter pour une plus grande précision prédictive.

Vous pouvez essayer de contourner cela, par exemple en incluant l'état précédent en tant que fonctionnalité ou en définissant des états composites, mais la complexité supplémentaire n'augmente pas toujours la précision prédictive d'un HMM, et cela n'aide certainement pas les temps de calcul.

Vous devez prédéfinir le nombre total d'états.

Pour revenir à l'exemple du sommeil, il peut sembler que nous ne nous soucions que de deux états. Cependant, même si nous ne nous soucions que de prédire l' éveil par rapport au sommeil , notre modèle peut bénéficier de la détermination d'états supplémentaires tels que la conduite, la douche, etc. (par exemple, la douche vient généralement juste avant de dormir). Encore une fois, un RNN pourrait théoriquement apprendre une telle relation s'il en montrait suffisamment d'exemples.

Difficultés avec les RNN

Il peut sembler d'après ce qui précède que les RNN sont toujours supérieurs. Je dois cependant noter que les RNN peuvent être difficiles à faire fonctionner, surtout lorsque votre ensemble de données est petit ou vos séquences très longues. J'ai personnellement eu du mal à former les RNN sur certaines de mes données, et je soupçonne que la plupart des méthodes / directives RNN publiées sont réglées sur des données texte . Lorsque j'ai essayé d'utiliser des RNN sur des données non textuelles, j'ai dû effectuer une recherche hyperparamétrique plus large que je ne le souhaitais pour obtenir de bons résultats sur mes ensembles de données particuliers.

Dans certains cas, j'ai trouvé que le meilleur modèle pour les données séquentielles est en fait un style UNet ( https://arxiv.org/pdf/1505.04597.pdf ) Modèle de réseau neuronal convolutionnel car il est plus facile et plus rapide à former, et est capable pour prendre en compte le contexte complet du signal.

kbrose
la source
1

Voyons d'abord les différences entre le HMM et le RNN.

À partir de cet article: Un tutoriel sur les modèles de Markov cachés et certaines applications de reconnaissance vocale, nous pouvons apprendre que HMM doit être caractérisé par les trois problèmes fondamentaux suivants:

Problème 1 (vraisemblance): étant donné un HMM λ = (A, B) et une séquence d'observation O, déterminer la vraisemblance P (O | λ).
Problème 2 (décodage): étant donné une séquence d'observation O et un HMM λ = (A, B), découvrez la meilleure séquence d'états cachés Q.
Problème 3 (apprentissage): étant donné une séquence d'observation O et l'ensemble des états dans le HMM, apprendre les paramètres HMM A et B.

Nous pouvons comparer le HMM avec le RNN de ces trois perspectives.

Probabilité

additionner toutes les séquences cachées Probabilité dans HMM (Image A.5) Modèle de langage dans RNN
juste obtenir la probabilité des fonctions softmax

P(O)=QP(O,Q)=QP(O|Q)P(Q)Q1p(X)=t=1T1p(Xt|X(t-1),...,X(1))T

Décodage

vt(j)=muneXje=1Nvt-1(je)unejejb(ot)P(y1,...,yO|X1,...,XT)=o=1OP(yo|y1,...,yo-1,co)OuiX

le chemin audacieux
Décodage en HMM (Figure A.10)

la partie décodeur
Décodage en RNN

Apprentissage

L'apprentissage en HMM est beaucoup plus compliqué que celui en RNN. Dans HMM, il utilise généralement l'algorithme Baum-Welch (un cas particulier de l'algorithme Expectation-Maximization) tandis que dans RNN, il s'agit généralement de la descente de gradient.

Pour vos sous-questions:

Quels problèmes d'entrée séquentielle conviennent le mieux à chacun?

Lorsque vous ne disposez pas de suffisamment de données, utilisez le HMM et lorsque vous devez calculer la probabilité exacte, le HMM conviendrait également mieux (tâches génératives modélisant la façon dont les données sont générées). Sinon, vous pouvez utiliser RNN.

La dimensionnalité d'entrée détermine-t-elle celle qui correspond le mieux?

Je ne pense pas, mais cela peut prendre plus de temps à HMM pour savoir si les états cachés sont trop grands car la complexité des algorithmes (en avant en arrière et Viterbi) est fondamentalement le carré du nombre d'états discrets.

Les problèmes qui nécessitent une "mémoire plus longue" sont-ils mieux adaptés à un LSTM RNN, alors que les problèmes de modèles d'entrée cycliques (bourse, météo) sont plus facilement résolus par un HMM?

Dans HMM, l'état actuel est également affecté par les états et observations précédents (par les états parents), et vous pouvez essayer le modèle de Markov caché du second ordre pour une "mémoire plus longue".

Je pense que vous pouvez utiliser RNN pour faire presque

références

  1. Traitement du langage naturel avec Deep Learning CS224N / Ling284
  2. Modèles de Markov cachés
Lerner Zhang
la source
Mais dans l'article référencé, il est dit que HMM a un état caché, bien que discret?
Oleg Afanasyev le
@OlegAfanasyev Oui. Je pense que je me trompe, mais je reviendrai sur cette réponse plus tard.
Lerner Zhang
Cela a-t-il été corrigé?
GENIVI-LEARNER
1
@ GENIVI-LEARNER J'ai réécrit la réponse et j'espère qu'elle vous sera utile et j'espère également que vous me fournirez quelques suggestions sur la façon de l'améliorer.
Lerner Zhang
0

J'ai trouvé cette question, parce que je me posais également des questions sur leurs similitudes et leurs différences. Je pense qu'il est très important de déclarer que les modèles de Markov cachés (HMM) n'ont pas d'entrées et de sorties au sens strict.

Les HMM sont des modèles dits génératifs , si vous avez un HMM, vous pouvez générer des observations telles quelles. Ceci est fondamentalement différent des RNN, car même si vous avez un RNN formé, vous avez besoin de commentaires.

Un exemple pratique où cela est important est la synthèse vocale. Les états cachés sous-jacents de Markov sont les téléphones et les événements de probabilité émis sont l'acoustique. Si vous avez un modèle de mot formé, vous pouvez en générer autant de réalisations différentes que vous le souhaitez.

Mais avec les RNN, vous devez fournir au moins quelques graines d'entrée pour sortir votre sortie. Vous pourriez faire valoir que dans les HMM, vous devez également fournir une distribution initiale, donc c'est similaire. Mais si nous nous en tenons à l'exemple de la synthèse vocale, ce n'est pas parce que la distribution initiale sera fixe (en commençant toujours par les premiers téléphones du mot).

Avec les RNN, vous obtenez une séquence de sortie déterministe pour un modèle entraîné, si vous utilisez tout le temps la même graine d'entrée. Avec HMM, vous ne le faites pas parce que les transitions et les émissions sont toujours échantillonnées à partir d'une distribution de probabilité.

boomkin
la source