Multivariate Hidden Markov Model

2k Views Asked by At

How can I combine multiple emmision spectra about the same markov states?

Let's use the classical HMM example:

% states
S = {sunny, rainy, foggy}

% discrete observations
x = {umbrella, no umbrella}

Now what if I had multiple observation sequences. E.g.:

% sequence 1
x1 = {umbrella, no umbrella}

% sequence 2
x2 = {wearing a coat, not wearing a coat}

How can I combine these two observation sequences into one HMM?

Note: I would like a way to combine x1 and x2 such that their inter-dependencies are also modelled. Therefore simply saying x={x1 x2} would (IMO) not be a good solution.


Specifically, I want to train a HMM based on Matlab's hmmtrain:

[ESTTR,ESTEMIT] = hmmtrain(seq,TRGUESS,EMITGUESS)

This only allows me to insert one seq.

Now let's say I have 5 different emmision spectra which all say something about the states of the HMM. How can I handle this multivariate case?

2

There are 2 best solutions below

15
On BEST ANSWER

How about taking the Cartesian product of the possible observations from each set. That is, your new discrete emission model will be:

  • umbrella and wearing-a-coat
  • umbrella and not-wearing-a-coat
  • no-umbrella and wearing-a-coat
  • no-umbrella and not-wearing-a-coat
0
On

What about creating preconditions to choose a special HMM? Instead of a huge HMM you can create several small HMMs und you choose only the relevant HMM. For example: if (umbrella=true) then apply HMM_1 else apply HMM_2. Then, you also have fewer emission symbols in a HMM. Nice side effect: You save training and testing time.