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 forward-backward algorithm to compute the statistics for the expectation step. History The Baum–Welch algorithm was named after its inventors Leonard E. Baum and Lloyd R. Welch. The algorithm and the Hidden Markov models were first described in a series of articles by Baum and his peers at the IDA Center for Communications Research, Princeton in the late 1960s and early 1970s. One of the first major applications of HMMs was to the field of speech processing. In the 1980s, HMMs were emerging as a useful tool in the analysis of biological systems and information, and in particular genetic information. They have since become an important tool in the probabilistic modeling of genomic sequences. Description A hidden Markov model describes the joint probability of a collection of "hidden" and observed discrete random variables. It relies on the assumption that the i-th hidden variable given the (i − 1)-th hidden variable is independent of previous hidden variables, and the current observation variables depend only on the current hidden state. The Baum–Welch algorithm uses the well known EM algorithm to find the maximum likelihood estimate of the parameters of a hidden Markov model given a set of observed feature vectors. Let be a discrete hidden random variable with possible values (i.e. We assume there are states in total). We assume the is independent of time , which leads to the definition of the time-independent stochastic transition matrix The initial state distribution (i.e. when ) is given by The observation variables can take one of possible values. We also assume the observation given the "hidden" state is time independent. The probability of a certain observation at time for state is given by Taking into account all the possible values of and , we obtain the matrix where belongs to all the possible states and belongs to all the observations. An observation sequence is given by . Thus we can describe a hidden Markov chain by . The Baum–Welch algorithm finds a local maximum for (i.e. the HMM parameters that maximize the probability of the observation). Algorithm Set with random initial conditions. They can also be set using prior information about the parameters if it is available; this can speed