Forward-Backward
Summary
This is a dynamic programming algorithm, used in Hidden Markov Models to efficiently compute the state posteriors over all the hidden state variables.
These values are then used in Posterior Decoding, which simply chooses the state with the highest posterior marginal for each position in the sequence.
The forward-backward algorithm can be computed in linear time, where as, a brute force algorithm that checks all possible state sequences would be exponential over the length of the sequence.
Posterior Decoding
Posterior decoding consists in picking the highest state posterior for each position in the sequence:
where is the state posterior for position . The state posterior is given by:
where is sequence posterior of all possible state sequences where the position is the state .
The sequence posterior for a given sequence is defined as:
is calculated as the product of all node potentials of the nodes in the sequence, corresponding to the state observation parameters for the state , and the transition potentials of the transition in the sequence, corresponding to the translation parameters. These potentials are estimated during the training process of Hidden Markov Models. As an example the sequence in red in the following figure would be calculated as .