Modèle de Markov caché pour plusieurs variables observées
Je suis en train d'utiliser un modèle de Markov caché (HMM) pour un problème où je m'différentes variables observées (Yti) et une seule variable cachée (Xt) à chaque point de temps, t. Pour plus de clarté, nous supposons que toutes les variables observées (Yti) sont catégoriques, où chaque Yti transmet des informations différentes et peuvent avoir différentes cardinalités.
Un exemple est donné dans la figure ci-dessous, où M=3.
Mon objectif est de former la transition,les émissions et les probabilités antérieures d'un HMM, à l'aide de la Baum-Welch algorithme, de ma variable observée séquences (Yti). Disons, Xt sera d'abord avoir 2 états cachés.
J'ai lu quelques tutoriels (dont le fameux Rabiner papier) et est allé à travers les codes de quelques HMM packages de logiciels, à savoir "HMM boîte à outils de MatLab " et " hmmpytk paquet Python'. Dans l'ensemble, j'ai fait une vaste recherche sur le web et toutes les ressources que j'ai pu trouver - ne couvrent que les cas où il n'existe qu'une seule variable observée (M=1) à chaque point de temps. Ce de plus en plus me fait penser HMM ne sont pas adaptés pour les situations avec de multiples variables observées.
- Est-il possible de modéliser le problème décrit dans la figure comme un HMM?
- Si elle l'est, comment peut-on modifier le Baum-Welch algorithme pour répondre à la formation de la HMM les paramètres en fonction du multi-variable d'observation (d'émission) des probabilités?
- Si non, connaissez-vous une méthode qui est plus approprié pour la situation représentée dans la figure?
Grâce.
Edit:
Dans ce papier, la situation représentée sur la figure est décrite comme une Dynamique Naive Bayes, qui -en termes de formation et d'algorithmes d'estimation de l' - nécessite une légère extension de Baum-Welch et des algorithmes de Viterbi pour une seule variable HMM.
source d'informationauteur Rhubarb
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple de le faire, et d'avoir le modèle restent générative, est de faire de la y_is conditionnellement indépendant compte tenu de la
x_is
. Cela conduit à trivial estimateurs, et relativement peu de paramètres, mais il est assez restrictive hypothèse dans certains cas (en gros, c'est le HMM forme de la naïveté classificateur de Bayes).EDIT: ce que cela signifie. Pour chaque timestep je, vous avez un multivariée observation
y_i = {y_i1...y_in}
. Vous traitez lesy_ij
comme étant conditionnellement indépendants donné x_i, de sorte que:vous êtes alors, de fait, l'apprentissage d'un classificateur de Bayes naïf pour chaque valeur possible de la variable cachée x. (Conditionnellement indépendants est important ici: il y a des dépendances dans le inconditionnel de distribution de l'ys). Cela peut être appris à la norme EM pour un HMM.
Vous pouvez aussi, comme un intervenant l'a dit, traiter la concaténation de la
y_ijs
comme une seule observation, mais si la dimension de tout de j variables est trivial au-delà de cela conduira à une beaucoup de paramètres, et vous aurez besoin de façon de plus les données d'entraînement.Avez-vous besoin tout particulièrement le modèle génératif? Si vous êtes seulement à la recherche d'inférence dans le
x_is
vous auriez probablement beaucoup mieux servi avec un champ aléatoire conditionnelqui, par ses fonctions peut avoir beaucoup plus complexe observations sans même restrictif des hypothèses d'indépendance.J'ai trouvé que cela peut être réalisé par la modélisation du système Dynamique Naïf classificateur de Bayes (DNB), qui est une légère extension de l'ordinaire (une seule variable) HMM pouvant accueillir multi-observation des scénarios comme le montre la figure.
La prudence est de rigueur en ce que la DNB a encore un état caché et ne devrait donc pas être considérée comme une directe séquentielle de l'expansion de l'original Naïf classificateur de Bayes. La "naïve" dans l'algorithme du nom vient du fait que toutes les variables observées sont indépendantes les unes des autres, compte tenu de l'état caché variable.
Semblable à un HMM, les estimations des paramètres de ce modèle peuvent être obtenus via le Baum Welch (ou EM, selon ce que vous préférez pour le nommer) de l'algorithme. Depuis l'émission de la distribution à chaque pas de temps est le produit de P(Yti|Xt) de chaque variable observée Yti, en avant, en arrière, et les variables des équations doivent être légèrement modifié comme décrit dans la section 3 de ce papier par Aviles-Arriaga et coll.
La chose que vous cherchez sont Structurés de type Perceptron. Jetez un oeil à la suite glissé sur page 42.
http://www.cs.umd.edu/class/fall2015/cmsc723/slides/inclass_09.pdf
vous pourrait modéliser le problème en utilisant les tenseurs
la structure d'un tenseur à l'aide de deux séries de temps et ensuite d'identifier les HMM paramètres.
"Modèle de Markov caché Identification via les Tenseurs" est une bonne référence pour ce.
Matlab fournit tenseur boîte à outils.
pour info, je suis en train de travailler sur un problème connexe, alors n'hésitez pas à m'envoyer un email si vous voulez discuter en privé de manière
Vous pouvez essayer caché semi-modèle de Markov qui est une extension de hmm. Il permet à chaque état durable pour plusieurs périodes de temps.