2013-03-12 3 views
6

Je suis nouveau au modèle de Markov caché. Je comprends l'idée principale et j'ai essayé des fonctions HMM intégrées à Matlab pour m'aider à mieux comprendre.Modèle de Markov caché Valeurs d'observation multiples pour chaque état

Si j'ai une séquence d'observations et les états correspondants, par ex.

seq = 2  6  6  1  4  1  1  1  5  4 
states = 1  1  2  2  2  2  2  2  2  2 

et je peux utiliser fonction hmmestimate pour calculer des matrices de transition et la probabilité d'émission en tant que:

[TRANS_EST, EMIS_EST] = hmmestimate(seq, states) 

TRANS_EST =

0.5000 0.5000 
    0 1.0000 

EMIS_EST =

 0 0.5000   0   0   0 0.5000 
0.5000   0   0 0.2500 0.1250 0.1250 

Dans l'exemple, l'observation est juste une valeur unique.

L'image ci-dessous décrit ma situation. Si j'ai des états: {Sleep, Work, Sport}, et j'ai un ensemble d'observations: {lightoff, allumé, fréquence cardiaque> 100 .....} Si j'utilise un nombre pour représenter chaque observation, dans ma situation chaque Etat a de multiples observations en même temps,

seq = {2,3,5}  {6,1}  {2}  {2,3,6}  {4}  {1,2}  {1}  
states = 1    1  2   2   2  2  2  

Je ne sais pas comment implémenter dans Matlab pour obtenir la transition et de la matrice de probabilité d'émission. Je suis complètement perdu, que dois-je faire dans la prochaine étape? Est-ce que j'utilise la bonne approche?

Merci!

+0

Bonjour, je travaille sur un problème similaire. Avez-vous trouvé une solution à cela? J'ai beaucoup cherché, mais je n'ai même pas trouvé de papier ou d'exemple d'implémentation pour vérifier qu'il est possible d'avoir plusieurs variables d'observation avec HMM.D'après ce que je comprends, avoir plusieurs séquences d'observation (de la même variable) est possible mais je ne suis pas sûr de la situation si les séquences appartiennent réellement à différentes variables. – Rhubarb

+0

Salut Berkan, HMM n'est pas adapté à ce problème. Je suis à la recherche d'autres options – leon

+0

Je viens d'envoyer un message sur votre blog. Pouvez-vous expliquer pourquoi vous pensez que HMM ne convient pas à cela? J'ai lu cela pendant une semaine et, comme je l'ai déjà dit, je ne suis pas encore tout à fait sûr du sujet. Je présume que vous avez regardé le problème plus longtemps que moi, donc aucun pointeur ou explication (quant à savoir pourquoi ce n'est pas possible) serait extrêmement bienvenu. – Rhubarb

Répondre

3

Si vous connaissez la séquence d'états cachés, alors l'estimation de la vraisemblance maximale est trivial: ce sont les comptes empiriques normalisés. En d'autres termes, comptez les transitions et les émissions, puis divisez les éléments de chaque ligne par les comptes totaux de cette ligne.

Dans le cas où vous avez plusieurs variables d'observation, codifiez les observations comme un vecteur où chaque élément donne la valeur de l'une des variables aléatoires sur ce pas de temps, par ex. '{lumières = 1, ordinateur = 0, fréquence cardiaque> 100 = 1, emplacement = 0}'. La clé est que vous devez avoir le même nombre d'observations à chaque pas de temps, sinon les choses seront beaucoup plus difficiles.

+0

merci pour votre réponse, je ne sais pas comment mettre en vecteur dans la fonction hmmestimate matlab? – leon

+0

Vous ne pouvez pas utiliser hmmestimate pour cela, mais vous pouvez très facilement écrire une boucle for qui boucle sur chaque état et compte les transitions sortantes et les émissions, puis normalise. – jerad

1

Je pense que vous avez deux options. 1) coder plusieurs observations en un seul nombre. Par exemple, si vous savez que la valeur maximale possible pour l'observation est N, et qu'à chaque état vous pouvez avoir au plus K observations, vous pouvez coder toutes les combinaisons d'observations comme un nombre compris entre 0 et N^K - 1. En faisant cela, vous supposez que {2,3,6} et {2,3,5} ne partagent rien, ce sont deux observations complètement différentes. 2) Ou vous pouvez avoir plusieurs distributions d'émission pour chaque état. Je n'ai pas utilisé les fonctions intégrées dans matlab pour l'estimation HMM, donc je n'ai aucune idée si cela supporte ou non cela. Mais l'idée est la suivante: si vous avez plusieurs distributions d'émissions dans un état, la probabilité d'émission n'en est que le produit. C'est ce que suggère Jerad.

Questions connexes