On Sun, Jul 24, 2011 at 7:52 AM, Dhruv <dhru...@gmail.com> wrote:

> ... If you look into the *definition* of HMM,  the hidden sequence is drawn
> from
> only one set. The hidden sequence's transitions can be expressed as a joint
> probability p(s0, s1). Similarly the observed sequence has a joint
> distribution with the hidden sequence such as p(y0, s1) and so on.
>

I think gentler language might be a good idea here.  The question was not at
all unreasonable.


>
> The hidden state transitions follow the Markov memorylessness property and
> hence form a Markov Chain.
>
> In your case, you are trying to model your problem assuming that there are
> two underlying state sequences affecting the observed output. This doesn't
> fit into the HMM's definition and you probably want something else.
>

Actually, what the original poster wanted is quite sensible.  While the
output sequence is due to a single input sequence, that input sequence is
not observable.  As such, we have a noisy channel problem where we want to
estimate something about that original sequence.  The point of the Markov
model is that it defines a distribution of output sequence given an input
sequence (and model).  This distribution can be inverted so that given a
particular output sequence, we can estimate the probability distribution of
input sequences conditional on the output.

The typical decoding algorithm for HMM's estimates only the maximum
likelihood input sequence but this does not negate the fact that we have a
distribution.  There are alternative decoding algorithms that allow a set of
high probability sequences to be estimated or allow a partial probability
lattice to be output that allows alternative sequences to be probed.

If you do want to fit your problem into the HMM framework, you need to
> condense the X1 and X2 sequences into a single set and then condition the
> Ys
> on it.
>

Not at all.


> > 3. Can we get output probabilities from the HMM for a concrete state?
> >
>
> Yes, after training, you can retrieve any of the trained model's
> distributions as a Mahout Matrix type and use get(row, col).
>

This is not quite what the question was.

Reply via email to