Take the 2-minute tour ×
Computer Science Stack Exchange is a question and answer site for students, researchers and practitioners of computer science. It's 100% free, no registration required.

I'm trying to find the most probable path (i.e., sequence of states) on an hidden Markov model (HMM) using the Viterbi algorithm. However, I don't know the transition and emission matrices, which I need to estimate from the observations (data).

To estimate these matrices, which algorithm should I use: the Baum-Welch algorithm or the Viterbi Training algorithm? Why?

In case I should use the Viterbi training algorithm, can anyone provide me a good pseudocode (it's not easy to find) ?

share|improve this question
    
The Viterbi algorithm requires the transition matrices to be known beforehand. You cannot use it (unless I am completely mistaken) a priori. To compute the transition probabilities you can use Baum-Welch (or other EM-based algorithms). –  Nicholas Mancuso Nov 14 '12 at 13:58
    
I know the Viterbi algorithm is only to find the most probable path, but there seems to exist an algorithm called Viterbi Training (not easy to find info on it) which does the same as the Baum-Welch... –  dx_mrt Nov 15 '12 at 8:21
    
This answer on crossvalidate.SE may be of use. I wasn't aware of viterbi-training. I have only used BW or other EM-based methods in the past. Based on the answer in the link, I think BW would be the most useful. It seems Viterbi-Training gives no guarantee on bounds. –  Nicholas Mancuso Nov 15 '12 at 16:03
1  
@NicholasMancuso, if you'd like to expand your comment into an answer, we could clean it up –  Merbs Nov 25 '12 at 16:36
add comment

1 Answer

From my comment:

This answer on crossvalidate.SE may be of use. I wasn't aware of viterbi-training. I have only used BW or other EM-based methods in the past. Based on the answer in the link, I think BW would be the most useful. It seems Viterbi-Training gives no guarantee on bounds. However, the latter does have useful application if BW takes far too long to compute.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.