Wednesday, January 23, 2008

An Introduction to Hidden Markov Models

Summary
Rabiner and Juang provide an excellent beginner's guide to Hidden Markov models. The begin with a bit of background information about HMMs, before describing what an HMM is through an example. An HMM is essential a set of hidden states about which probabilistic observations can be made and a set of rules governing how to move between states. Given an HMM, we can produce a series of observations by moving between states according to the rules and then probabilistically generating the observation. Additionally, Rabiner and Juang detail three other problems that can be solved using HMMs. First, is determining the likelihood of a sequence of observations given an HMM. This can be done using the forward or backward procedure, detailed on page 9. Next, given an HMM and an observation sequence, the most likely state sequence can be determined using the Viterbi algorithm on page 11. Lastly, an HMM can be generated from a sequence or sequence of observations using Baum-Welch re-estimation, also on page 11. Lastly, they provide a example application of HMMs, recognition of single spoken words.

Discussion
This paper is a great reference for HMMs. The algorithms are described in a straight-forward, understandable manner. The only hard part is when and how to apply an HMM to a given problem.

Reference
Rabiner, L. and B. Juang (1986). "An introduction to hidden Markov models." ASSP Magazine, IEEE [see also IEEE Signal Processing Magazine] 3(1): 4-16.

4 comments:

- D said...

How to apply. Aye, there's the rub. Especially when there are so many ways you can construct an HMM (left-right, ergotic, number of states, what are states). That's always the question, though, whether it's what HMM-specific approach do I want to take, or what kind of classifier do I want to use, or what sorting algorithm would best suit my needs (I vote bubble).

Brandon said...

yeah that's the one thing I don't like about HMMs - guess and check on how many states to use. just like any other recognition algorithm that needs some parameter cross-validated.

Paul Taele said...

Josh and Brandon's comments illustrate how I'm such a newbie when it comes to actual implementation of HMMs. I do have to say that while I could never implement one based on this paper alone, it did help me better understand the Iba paper on GR for mobile robots.

Pankaj said...

I agree with your point. It is really hit and trial method of estimating the states required.However, some contextal information about the data can be useful is approximating the states like in case of speech, phonemes may be helpful.In case of sketch,number of variations in stroke may be useful.

Usually, HMM's are useful when there is temporal change in the sequence of events and you do not know precisely what is to be expected , but you have an idea about possible outcomes at that state.