Quelles sont les différences entre les modèles de Markov cachés et les réseaux de neurones?

40

Je ne fais que me mouiller dans les statistiques alors je suis désolé si cette question n’a pas de sens. J'ai utilisé des modèles de Markov pour prédire les états cachés (casinos injustes, lancers de dés, etc.) et des réseaux de neurones pour étudier les clics d'utilisateurs sur un moteur de recherche. Les deux avaient des états cachés que nous essayions de comprendre à l'aide d'observations.

À ma connaissance, ils prédisent tous deux des états cachés. Je me demande donc quand utiliser les modèles de Markov sur des réseaux de neurones. S'agit-il simplement d'approches différentes de problèmes similaires?

(Je suis intéressé par l’apprentissage, mais j’ai aussi une autre motivation, j’ai un problème que j’essaie de résoudre en utilisant des modèles de Markov cachés, mais cela me rend dingue alors j’étais intéressé de voir si je pouvais passer à autre chose.)

Âme perdue
la source
2
Vous voudrez peut-être regarder ici: stats.stackexchange.com/questions/4498/…
Nucular
Souhaitez-vous choisir une réponse ou clarifier davantage ce que vous recherchez?
conjugateprior

Réponses:

28

Ce qui est caché et ce qui est observé

Ce qui est caché dans un modèle de Markov caché est identique à ce qui est caché dans un modèle de mélange discret. Par souci de clarté, oubliez la dynamique de l'état caché et utilisez un modèle de mélange fini, par exemple. L '"état" dans ce modèle est l'identité de la composante qui a provoqué chaque observation. Dans cette classe de modèles, de telles causes ne sont jamais observées, de sorte que «cause cachée» est traduite statistiquement par l'affirmation selon laquelle les données observées ont des dépendances marginales qui sont supprimées lorsque le composant source est connu. Et les composantes sources sont estimées être ce qui rend cette relation statistique vraie.

Ce qui est caché dans un réseau neuronal multicouche à anticipation avec des unités centrales sigmoïdes, ce sont les états de ces unités, et non les sorties qui sont la cible de l'inférence. Lorsque la sortie du réseau est une classification, c'est-à-dire une distribution de probabilité sur des catégories de sortie possibles, ces valeurs d'unités cachées définissent un espace dans lequel les catégories sont séparables. L'astuce pour apprendre un tel modèle est de créer un espace caché (en ajustant la cartographie des unités d'entrée) dans lequel le problème est linéaire. Par conséquent, des limites de décision non linéaires sont possibles à partir du système dans son ensemble.

Génératif versus discriminant

Le modèle de mélange (et HMM) est un modèle du processus de génération de données, parfois appelé modèle de vraisemblance ou «modèle prospectif». Associé à certaines hypothèses sur les probabilités antérieures de chaque état, vous pouvez en déduire une distribution sur les valeurs possibles de l'état masqué à l'aide du théorème de Bayes (approche générative). Notez que, bien qu’ils soient appelés «antérieurs», l’ancien et les paramètres de vraisemblance sont généralement appris à partir de données.

Contrairement au modèle de mélange (et HMM), le réseau de neurones apprend directement une distribution a posteriori sur les catégories de sortie (approche discriminative). Cela est possible car les valeurs de sortie ont été observées lors de l'estimation. Et puisqu'elles ont été observées, il n'est pas nécessaire de construire une distribution postérieure à partir d'un modèle antérieur et spécifique pour la vraisemblance, telle qu'un mélange. Le postérieur est appris directement à partir des données, ce qui est plus efficace et moins dépendant du modèle.

Mélanger et assortir

Pour rendre les choses plus confuses, ces approches peuvent être mélangées, par exemple lorsque l'état du modèle de mélange (ou HMM) est parfois réellement observé. Lorsque cela est vrai et dans certaines autres circonstances non pertinentes ici, il est possible de s'entraîner de manière discriminante dans un modèle autrement génératif. De même, il est possible de remplacer la cartographie du modèle de mélange d'un HMM par un modèle de transfert plus souple, par exemple un réseau de neurones.

Questions

Il n'est donc pas tout à fait vrai que les deux modèles prédisent un état caché. Les HMM peuvent être utilisés pour prédire un état caché, mais uniquement du type attendu par le modèle prévisionnel. Les réseaux de neurones peuvent être utilisés pour prédire un état non encore observé , par exemple des états futurs pour lesquels des prédicteurs sont disponibles. Ce genre d'état n'est pas caché en principe, il n'a tout simplement pas été observé.

Quand utiliseriez-vous l'un plutôt que l'autre? Dans mon expérience, les réseaux de neurones constituent des modèles de séries chronologiques plutôt maladroits. Ils supposent également que vous avez observé une sortie. Les HMM n'en ont pas, mais vous n'avez vraiment aucun contrôle sur ce qu'est l'état caché. Néanmoins, ce sont des modèles appropriés de séries chronologiques.

conjuguéprior
la source
2
+1 c'est très bien. Par Similarly it is possible to replace the mixture model mapping of an HMM with a more flexible forward model, e.g., a neural network.:, voulez-vous dire remplacer les probabilités d’émission p (Observé | Caché) par un feed forward NN? Je l'ai rencontré à quelques endroits mais aucun ne donne d'explication. ils mentionnent simplement qu'ils l'ont mis en œuvre. Je suppose qu'ils remplacent l'étape MLE d'apprentissage des émissions, mais je ne comprends pas comment. Connaissez-vous un code ou un exemple explicatif? Tous les pointeurs bienvenus, merci.
Zhubarb
Il semble être moins utilisé de cette façon (une autre personne de ML peut me corriger ici). Cela dit, l'estimation du vecteur d'état de mappage de paramètres NN à la sortie conditionnée à la connaissance du vecteur d'état (ou au moins à la connaissance de sa valeur attendue, comme dans un algorithme EM) correspond à la même tâche que l'apprentissage avec les données d'entrée et de sortie observées, donc j'imagine rien de spécial à dire sur cette partie.
conjugateprior
La réponse est bonne, sauf que: les réseaux de neurones peuvent être discriminants (feed forward, etc.) ou génératifs (machines bolzmann restreintes, etc.). En outre, les réseaux de neurones récurrents tels que les modèles LSTM et Reservoir Computing peuvent modéliser des séries chronologiques ainsi que des modèles HMM - et parfois même supérieurs à ceux du modèle HMM, en particulier dans le cas de séries chronologiques avec une dynamique non linéaire forte et une corrélation de longue durée.
GuSuku
10

Les modèles de Markov cachés peuvent être utilisés pour générer un langage, c'est-à-dire une liste d'éléments d'une famille de chaînes. Par exemple, si vous avez un modèle HMM qui modélise un ensemble de séquences, vous pourrez générer des membres de cette famille en répertoriant les séquences qui appartiendraient au groupe de séquences que nous modélisons.

Réseaux de neurones, prenez une entrée d’un espace de grande dimension et mappez-la simplement vers un espace de petite dimension (la façon dont les réseaux de neurones mappent cette entrée est basée sur la formation, sa topologie et d’autres facteurs). Par exemple, vous pouvez prendre une image d'un nombre de 64 bits et la mapper sur une valeur vraie / fausse qui indique si ce nombre est 1 ou 0.

Alors que les deux méthodes peuvent (ou peuvent au moins essayer de) distinguer si un élément est membre d'une classe ou non, les réseaux de neurones ne peuvent pas générer un langage comme décrit ci-dessus.

Il existe des alternatives aux modèles de Markov cachés, vous pouvez par exemple utiliser un réseau bayésien plus général, une topologie différente ou une grammaire stochastique sans contexte (SCFG) si vous pensez que le problème réside dans le manque de puissance des HMM. modélisez votre problème, c'est-à-dire si vous avez besoin d'un algorithme capable de discriminer des hypothèses plus complexes et / ou de décrire le comportement de données beaucoup plus complexe.

Andrew
la source
6
+1 pour le deuxième paragraphe. Je tiens à souligner que quiconque comprend clairement tous les éléments de cette réponse ne poserait probablement pas la question initiale. Il n'est probablement pas utile de mentionner les grammaires formelles à quelqu'un dont le message commence par "je ne fais que me mouiller dans les statistiques ..." Le deuxième paragraphe ci-dessous résume l'essence de ce que le PO demande. Au lieu du premier paragraphe, vous pourriez dire: un modèle HMM modélise les dépendances conditionnelles des états cachés, chaque état ayant une distribution de probabilité sur les observations.
Phillip Cloud le
7
Cette réponse est tout simplement fausse. Le réseau de neurones est supposé être un relais. Ce n'est qu'une classe de réseaux de neurones. Les modèles récurrents ne mappent pas simplement les entrées individuelles vers une représentation de dimension inférieure et peuvent générer un langage. Voir par exemple arxiv.org/abs/1308.0850
rd11
Générer une séquence (comme dans le document lié) n’est pas la même chose que générer une langue. Je suppose que vous pouvez les appliquer pour distinguer les éléments d'un ensemble et sinon, si vous le souhaitez, un modèle récurrent peut être envisagé comme prenant une seule grande entrée couvrant les entrées individuelles avec récurrence et renvoyant une sortie importante. Pas sûr que le réseau de neurones récurrent puisse vous donner les sorties sans aucune entrée.
Andrew
Hmm. Pouvez-vous donner un exemple de quelque chose que vous pensez qu'un HMM peut générer et que vous pensez ne peut pas être généré avec un RNN?
rd11
L’exemple qui me vient à l’esprit est le suivant: avec un HMM, vous pouvez obtenir une séquence d’éléments appartenant au langage représenté par le HMM. Pour qu'un RNN puisse le faire, vous devez ajouter quelque chose en plus (par exemple, essayez les différentes entrées et marquez une entrée en tant que membre d'une classe ou autrement) - bien que dans le cas des RNN, vous ayez probablement plusieurs entrées. (l'un après l'autre) comme représentant un seul "élément". Les HMM conviennent plus naturellement pour générer un langage.
Andrew
3

La meilleure réponse à cette question, d'après ce que j'ai trouvé, est la suivante: l'apprentissage en profondeur d'une chaîne de Markov déguisée . C’est exactement ce que j’ai compris, mais comme il ya déjà eu une discussion ailleurs sur Internet, je mets le lien ici.

p(X1....Xn)=p(X1)p(X2|X1)p(X3|X2)...

p(X1....Xn)=p(X1)p(X2|X1)p(X3|X2,X1)p(X4|X3,X2,X1)...

Nous pouvons utiliser une séquence de caractères comme entrée au lieu d'un seul caractère. De cette façon, nous pouvons mieux saisir l'état (en fonction du contexte).

Jayadevan Vijayan
la source