# Hidden Markov Models

Hidden Markov Models are probabilistic algorithms that can be employed in all those contexts where it's impossible to measure the state of a system (we can only model it as a stochastic variable with a known transition probability), but it's possible to access some data connected to it. An example can be a complex engine that is made up of a large number of parts. We can define some internal states and learn a transition probability matrix (we're going to learn how to do that), but we can only receive measures provided by specific sensors.

Let's consider a stochastic process *X*(*t*) that can assume *N* different states: *s*_{1}*, s*_{2}*, …, s*_{N} with first-order Markov chain dynamics. Let's also suppose that we cannot observe the state of *X*(*t*), but we have access to another process *O*(*t*), connected to *X*(*t*), which produces observable outputs (often known as emissions). The resulting process is called a **Hidden Markov Model** (**HMM**), and a generic...