# Recursive Bayesian estimation

Recursive Bayesian estimation, also known as a Bayes filter, is a general probabilistic approach for estimating an unknown probability density function recursively over time using incoming measurements and a mathematical process model.

## In robotics

A Bayes filter is an algorithm used in computer science for calculating the probabilities of multiple beliefs to allow a robot to infer its position and orientation. Essentially, Bayes filters allow robots to continuously update their most likely position within a coordinate system, based on the most recently acquired sensor data. This is a recursive algorithm. It consists of two parts: prediction and innovation. If the variables are linear and normally distributed the Bayes filter becomes equal to the Kalman filter.

In a simple example, a robot moving throughout a grid may have several different sensors that provide it with information about its surroundings. The robot may start out with certainty that it is at position (0,0). However, as it moves farther and farther from its original position, the robot has continuously less certainty about its position; using a Bayes filter, a probability can be assigned to the robot's belief about its current position, and that probability can be continuously updated from additional sensor information.

## Model

The true state $x$ is assumed to be an unobserved Markov process, and the measurements $z$ are the observed states of a Hidden Markov Model (HMM). The following picture presents a Bayesian Network of a HMM.

Because of the Markov assumption, the probability of the current true state given the immediately previous one is conditionally independent of the other earlier states.

$p(\textbf{x}_k|\textbf{x}_{k-1},\textbf{x}_{k-2},\dots,\textbf{x}_0) = p(\textbf{x}_k|\textbf{x}_{k-1} )$

Similarly, the measurement at the k-th timestep is dependent only upon the current state, so is conditionally independent of all other states given the current state.

$p(\textbf{z}_k|\textbf{x}_k,\textbf{x}_{k-1},\dots,\textbf{x}_{0}) = p(\textbf{z}_k|\textbf{x}_{k} )$

Using these assumptions the probability distribution over all states of the HMM can be written simply as:

$p(\textbf{x}_0,\dots,\textbf{x}_k,\textbf{z}_1,\dots,\textbf{z}_k) = p(\textbf{x}_0)\prod_{i=1}^k p(\textbf{z}_i|\textbf{x}_i)p(\textbf{x}_i|\textbf{x}_{i-1}).$

However, when using the Kalman filter to estimate the state x, the probability distribution of interest is associated with the current states conditioned on the measurements up to the current timestep. (This is achieved by marginalising out the previous states and dividing by the probability of the measurement set.)

This leads to the predict and update steps of the Kalman filter written probabilistically. The probability distribution associated with the predicted state is the sum (integral) of the products of the probability distribution associated with the transition from the (k - 1)-th timestep to the k-th and the probability distribution associated with the previous state, over all possible $x_{k_-1}$.

$p(\textbf{x}_k|\textbf{z}_{1:k-1}) = \int p(\textbf{x}_k | \textbf{x}_{k-1}) p(\textbf{x}_{k-1} | \textbf{z}_{1:k-1} ) \, d\textbf{x}_{k-1}$

The probability distribution of update is proportional to the product of the measurement likelihood and the predicted state.

$p(\textbf{x}_k|\textbf{z}_{1:k}) = \frac{p(\textbf{z}_k|\textbf{x}_k) p(\textbf{x}_k|\textbf{z}_{1:k-1})}{p(\textbf{z}_k|\textbf{z}_{1:k-1})} = \alpha\,p(\textbf{z}_k|\textbf{x}_k) p(\textbf{x}_k|\textbf{z}_{1:k-1})$

The denominator

$p(\textbf{z}_k|\textbf{z}_{1:k-1}) = \int p(\textbf{z}_k|\textbf{x}_k) p(\textbf{x}_k|\textbf{z}_{1:k-1}) d\textbf{x}_{k}$

is constant relative to $x$, so we can always substitute it for a coefficient $\alpha$, which can usually be ignored in practice. The numerator can be calculated and then simply normalized, since its integral must be unity.

## Sequential Bayesian filtering

Sequential Bayesian filtering is the extension of the Bayesian estimation for the case when the observed value changes in time. It is a method to estimate the real value of an observed variable that evolves in time.

The method is named:

filtering
when we estimate the current value given past and current observations,
smoothing
when estimating past values given present and past measures, and
prediction
when estimating a probable future value given the present and the past measures.

The notion of Sequential Bayesian filtering is extensively used in control and robotics.