4

I'm looking for some realworld applications of the Forward Algorithm as proposed by Rabiner (forward Algorithm on wikipedia).

I would prefer applications where the executing time is important.

Martin Kristiansen
  • 9,875
  • 10
  • 51
  • 83

3 Answers3

3

If you mean the forward-backward algorithm, that's applied inside the Baum-Welch algorithm for training HMMs, which is used in various fields such as NLP (part-of-speech tagging, speech recognition) and bioinformatics.

Fred Foo
  • 355,277
  • 75
  • 744
  • 836
1

Actually the forward algorithm is different from the forward-backward (EM) algorithm used in Baum-Welch. The forward algorithm is used to determine the probability of being in a state given a sequence of observations. For each observation you take the probabilities over the states computed for the previous observation, and then extend it out one more step using the transition probability table. The forward algorithm is basically an efficient way to do this because it caches all the intermediate state probabilities so they are computed only once. (This is a form of memoization or dynamic programming...)

The Baum-Welch algorithm is used to derive the transition and emission probabilities from the data, while the forward algorithm (and the Viterbi algorithm) use this data to compute state probabilities and most likely states given observations.

rosejn
  • 849
  • 1
  • 7
  • 9
1

To clarify a couple points, as I disagree with the Wikipedia characterization of the Forward algorithm (see Durbin):

Forward (and separately, Backward) are used to compute the probability of a sequence of observations/emissions when the state path is not known, and moreover, to compute that probability much more efficiently than the naive approach (which very quickly ends up in a combinatoric explosion). Together, they can provide the probability of a given emission/observation at each position in the sequence of observations. It is from this information that a version of the most likely state path is computed ("posterior decoding"). The Viterbi algorithm calculates another version of the most likely state path.

Indeed, a good implementation of either Forward or Backward will save you mountains of time when compared with the bother of computing the probability for the given sequence w.r.t. every other state path.

You will see these applied in any context that you want to separate the states which the system can be in, from the observables that you can measure about the system. The most employable (and complex) are probably finance problems. Simplistically, say your state paths are composed of elements from [Bull, Bear] and that you've posterior decoded state paths from the VIX or something for the last several months at a resolution relevant to the kind of commercial / geopolitical events you're trying to capture. This kind of computation can be used to train your model as you receive new and more data (through Baum-Welch or a more general EM algorithm), and Forward will tell you when the data that you're getting (your real time sequence of observations) becomes very low in probability relative to what you'd expect from your model (as trained up to that point). Statistically speaking, that's when you buy or sell.

CXavier
  • 11
  • 1