Baum-Welch algorithm
From Wikipedia, the free encyclopedia
In computer science, statistical computing and bioinformatics, the Baum-Welch algorithm is used to find the unknown parameters of a hidden Markov model (HMM). It makes use of the forward-backward algorithm and is named for Leonard E. Baum and Lloyd R. Welch.
Contents |
[edit] Explanation
The Baum-Welch algorithm is a generalized expectation-maximization (GEM) algorithm. It can compute maximum likelihood estimates and posterior mode estimates for the parameters (transition and emission probabilities) of an HMM, when given only emissions as training data.
The algorithm has two steps:
- Calculating the forward probability and the backward probability for each HMM state;
- On the basis of this, determining the frequency of the transition-emission pair values and dividing it by the probability of the entire string. This amounts to calculating the expected count of the particular transition-emission pair. Each time a particular transition is found, the value of the quotient of the transition divided by the probability of the entire string goes up, and this value can then be made the new value of the transition.
[edit] See also
[edit] References
The algorithm was introduced in the paper:
- L. E. Baum, T. Petrie, G. Soules, and N. Weiss, "A maximization technique occurring in the statistical analysis of probabilistic functions of Markov chains", Ann. Math. Statist., vol. 41, no. 1, pp. 164--171, 1970.
The Shannon Lecture by Welch, which speaks to how the algorithm can be implemented efficiently:
- Hidden Markov Models and the Baum-Welch Algorithm, IEEE Information Theory Society Newsletter, Dec. 2003.
The path-counting algorithm, an alternative to the Baum-Welch algorithm:
- Comparing and Evaluating HMM Ensemble Training Algorithms Using Train and Test and Condition Number Criteria, Journal of Pattern Analysis and Applications, 2003.
[edit] External links
- An Interactive Spreadsheet for Teaching the Forward-Backward Algorithm (spreadsheet and article with step-by-step walkthrough)
This computer science article is a stub. You can help by expanding it. |