The forward algorithm, in the context of a
hidden Markov model
A hidden Markov model (HMM) is a statistical Markov model in which the system being modeled is assumed to be a Markov process — call it X — with unobservable ("''hidden''") states. As part of the definition, HMM requires that there be an ob ...
(HMM), is used to calculate a 'belief state': the probability of a state at a certain time, given the history of evidence. The process is also known as ''filtering''. The forward algorithm is closely related to, but distinct from, the
Viterbi algorithm
The Viterbi algorithm is a dynamic programming algorithm for obtaining the maximum a posteriori probability estimate of the most likely sequence of hidden states—called the Viterbi path—that results in a sequence of observed events, especiall ...
.
The forward and backward algorithms should be placed within the context of probability as they appear to simply be names given to a set of standard mathematical procedures within a few fields. For example, neither "forward algorithm" nor "Viterbi" appear in the Cambridge encyclopedia of mathematics. The main observation to take away from these algorithms is how to organize Bayesian updates and inference to be efficient in the context of directed graphs of variables (see
sum-product networks).
For an HMM such as this one:
this probability is written as
. Here
is the hidden state which is abbreviated as
and
are the observations
to
.
The backward algorithm complements the forward algorithm by taking into account the future history if one wanted to improve the estimate for past times. This is referred to as ''smoothing'' and the
forward/backward algorithm computes
for
. Thus, the full forward/backward algorithm takes into account all evidence. Note that a belief state can be calculated at each time step, but doing this does not, in a strict sense, produce the most likely state ''sequence'', but rather the most likely state at each time step, given the previous history. In order to achieve the most likely sequence, the
Viterbi algorithm
The Viterbi algorithm is a dynamic programming algorithm for obtaining the maximum a posteriori probability estimate of the most likely sequence of hidden states—called the Viterbi path—that results in a sequence of observed events, especiall ...
is required. It computes the most likely state sequence given the history of observations, that is, the state sequence that maximizes
.
History
The forward algorithm is one of the algorithms used to solve the decoding problem. Since the development of speech recognition
[ Lawrence R. Rabiner, "A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition". ''Proceedings of the ]IEEE
The Institute of Electrical and Electronics Engineers (IEEE) is a 501(c)(3) professional association for electronic engineering and electrical engineering (and associated disciplines) with its corporate office in New York City and its operation ...
'', 77 (2), p. 257–286, February 1989
10.1109/5.18626
/ref> and pattern recognition and related fields like computational biology
Computational biology refers to the use of data analysis, mathematical modeling and computational simulations to understand biological systems and relationships. An intersection of computer science, biology, and big data, the field also has fo ...
which use HMMs, the forward algorithm has gained popularity.
Algorithm
The goal of the forward algorithm is to compute the joint probability
Given two random variables that are defined on the same probability space, the joint probability distribution is the corresponding probability distribution on all possible pairs of outputs. The joint distribution can just as well be considere ...
, where for notational convenience we have abbreviated as and as . Computing directly would require marginalizing over all possible state sequences , the number of which grows exponentially with . Instead, the forward algorithm takes advantage of the conditional independence
In probability theory, conditional independence describes situations wherein an observation is irrelevant or redundant when evaluating the certainty of a hypothesis. Conditional independence is usually formulated in terms of conditional probabil ...
rules of the hidden Markov model
A hidden Markov model (HMM) is a statistical Markov model in which the system being modeled is assumed to be a Markov process — call it X — with unobservable ("''hidden''") states. As part of the definition, HMM requires that there be an ob ...
(HMM) to perform the calculation recursively.
To demonstrate the recursion, let
::.
Using the chain rule
In calculus, the chain rule is a formula that expresses the derivative of the composition of two differentiable functions and in terms of the derivatives of and . More precisely, if h=f\circ g is the function such that h(x)=f(g(x)) for every , ...
to expand , we can then write
::.
Because is conditionally independent of everything but , and is conditionally independent of everything but , this simplifies to
::.
Thus, since and are given by the model's emission distributions and transition probabilities
A Markov chain or Markov process is a stochastic model describing a sequence of possible events in which the probability of each event depends only on the state attained in the previous event. Informally, this may be thought of as, "What happe ...
, one can quickly calculate from and avoid incurring exponential computation time.
The initial condition is set as some prior probability over as
:: such that
Once the joint probability has been computed using the forward algorithm, we can easily obtain the related joint probability as
::
and the required conditional probability as
::
Once the conditional probability has been calculated, we can also find the point estimate of . For instance, the MAP estimate of is given by
::
while the MMSE estimate of is given by
::
The forward algorithm is easily modified to account for observations from variants of the hidden Markov model as well, such as the Markov jump linear system.
Pseudocode
#Initialize
#:,
#:transition probabilities, ,
#:emission probabilities, ,
#:observed sequence,
#:prior probability,
#For to
#:.
#Calculate
#Return
Example
This example on observing possible states of weather from the observed condition of seaweed. We have observations of seaweed for three consecutive days as dry, damp, and soggy in order. The possible states of weather can be sunny, cloudy, or rainy. In total, there can be such weather sequences. Exploring all such possible state sequences is computationally very expensive. To reduce this complexity, Forward algorithm comes in handy, where the trick lies in using the conditional independence of the sequence steps to calculate partial probabilities, as shown in the above derivation. Hence, we can calculate the probabilities as the product of the appropriate observation/emission probability, ( probability of state seen at time t from previous observation) with the sum of probabilities of reaching that state at time t, calculated using transition probabilities. This reduces complexity of the problem from searching whole search space to just using previously computed 's and transition probabilities.
Applications of the algorithm
The forward algorithm is mostly used in applications that need us to determine the probability of being in a specific state when we know about the sequence of observations. We first calculate the probabilities over the states computed for the previous observation and use them for the current observations, and then extend it out for the next step using the transition probability table. The approach basically caches all the intermediate state probabilities so they are computed only once. This helps us to compute a fixed state path. The process is also called posterior decoding.
The algorithm computes probability much more efficiently than the naive approach, which very quickly ends up in a combinatorial 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 algorithm can be applied wherever we can train a model as we receive data using Baum-Welch or any general EM algorithm. The Forward algorithm will then tell us about the probability of data with respect to what is expected from our model. One of the applications can be in the domain of Finance, where it can help decide on when to buy or sell tangible assets.
It can have applications in all fields where we apply Hidden Markov Models. The popular ones include Natural language processing domains like tagging part-of-speech and speech recognition. Recently it is also being used in the domain of Bioinformatics.
Forward algorithm can also be applied to perform Weather speculations. We can have a HMM describing the weather and its relation to the state of observations for few consecutive days (some examples could be dry, damp, soggy, sunny, cloudy, rainy etc.). We can consider calculating the probability of observing any sequence of observations recursively given the HMM. We can then calculate the probability of reaching an intermediate state as the sum of all possible paths to that state. Thus the partial probabilities for the final observation will hold the probability of reaching those states going through all possible paths.
Variants of the algorithm
Hybrid Forward Algorithm:
A variant of the Forward Algorithm called Hybrid Forward Algorithm (HFA) can be used for the construction of radial basis function (RBF) neural networks with tunable nodes. The RBF neural network is constructed by the conventional subset selection algorithms. The network structure is determined by combining both the stepwise forward network configuration and the continuous RBF parameter optimization. It is used to efficiently and effectively produce a parsimonious RBF neural network that generalizes well. It is achieved through simultaneous network structure determination and parameter optimization on the continuous parameter space. HFA tackles the mixed integer hard problem using an integrated analytic framework, leading to improved network performance and reduced memory usage for the network construction.
Forward Algorithm for Optimal Control in Hybrid Systems:
This variant of Forward algorithm is motivated by the structure of manufacturing environments that integrate process and operations control. We derive a new property of the optimal state trajectory structure which holds under a modified condition on the cost function. This allows us to develop a low-complexity, scalable algorithm for explicitly determining the optimal controls, which can be more efficient than Forward Algorithm.
Continuous Forward Algorithm:[Peng, Jian-Xun, Kang Li, and George W. Irwin. "A novel continuous forward algorithm for RBF neural modelling." ''Automatic Control, IEEE Transactions'' on 52.1 (2007): 117-122.]
A continuous forward algorithm (CFA) can be used for nonlinear modelling and identification using radial basis function (RBF) neural networks. The proposed algorithm performs the two tasks of network construction and parameter optimization within an integrated analytic framework, and offers two important advantages. First, the model performance can be significantly improved through continuous parameter optimization. Secondly, the neural representation can be built without generating and storing all candidate regressors, leading to significantly reduced memory usage and computational complexity.
Complexity
Complexity of Forward Algorithm is , where is the number of hidden or latent variables, like weather in the example above, and is the length of the sequence of the observed variable. This is clear reduction from the adhoc method of exploring all the possible states with a complexity of .
See also
* Viterbi algorithm
The Viterbi algorithm is a dynamic programming algorithm for obtaining the maximum a posteriori probability estimate of the most likely sequence of hidden states—called the Viterbi path—that results in a sequence of observed events, especiall ...
* Forward-backward algorithm
* Baum–Welch algorithm In electrical engineering, statistical computing and bioinformatics, the Baum–Welch algorithm is a special case of the expectation–maximization algorithm used to find the unknown parameters of a hidden Markov model (HMM). It makes use of the f ...
References
{{reflist
Further reading
* Russell and Norvig's ''Artificial Intelligence, a Modern Approach'', starting on page 570 of the 2010 edition, provides a succinct exposition of this and related topics
* Smyth, Padhraic, David Heckerman, and Michael I. Jordan. "Probabilistic independence networks for hidden Markov probability models." Neural computation 9.2 (1997): 227-269
* Read, Jonathon. "Hidden Markov Models and Dynamic Programming." University of Oslo (2011)
* Kohlschein, Christian, '' An introduction to Hidden Markov Models
* Manganiello, Fabio, Mirco Marchetti, and Michele Colajanni. ''Multistep attack detection and alert correlation in intrusion detection systems.'' Information Security and Assurance. Springer Berlin Heidelberg, 2011. 101-110
* Zhang, Ping, and Christos G. Cassandras. "An improved forward algorithm for optimal control of a class of hybrid systems." Automatic Control, IEEE Transactions on 47.10 (2002): 1735-1739.
* Stratonovich, R. L. "Conditional markov processes". ''Theory of Probability & Its Applications'' 5, no. 2 (1960): 156178.
Softwares
Hidden Markov Model R-Package
contains functionality for computing and retrieving forward procedure
provides tools for using and inferring HMMs.
GHMM Library for Python
The hmm package
Haskell library for HMMS, implements Forward algorithm.
Library for Java
contains Machine Learning and Artificial Intelligence algorithm implementations.
Markov models