\documentclass[11pt]{article}
\usepackage{latexsym}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{epsfig}
\usepackage[tight]{subfigure}

%extra packages added
\usepackage{algorithm}
\usepackage{algorithmic}
\numberwithin{equation}{section}
\numberwithin{figure}{section}

\newcommand{\handout}[5]{
  \noindent
  \begin{center}
  \framebox{
    \vbox{
      \hbox to 5.78in { {#1} \hfill #2 }
      \vspace{4mm}
      \hbox to 5.78in { {\Large \hfill #5  \hfill} }
      \vspace{2mm}
      \hbox to 5.78in { {\em #3 \hfill #4} }
    }
  }
  \end{center}
  \vspace*{4mm}
}

\newcommand{\lecture}[5]{\handout{#1}{#2}{#3}{#4}{#5}}

\newtheorem{theorem}{Theorem}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{observation}[theorem]{Observation}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{fact}[theorem]{Fact}
\newtheorem{assumption}[theorem]{Assumption}

% 1-inch margins, from fullpage.sty by H.Partl, Version 2, Dec. 15, 1988.
\topmargin 0pt
\advance \topmargin by -\headheight
\advance \topmargin by -\headsep
\textheight 8.9in
\oddsidemargin 0pt
\evensidemargin \oddsidemargin
\marginparwidth 0.5in
\textwidth 6.5in

\parindent 0in
\parskip 1.5ex

%\renewcommand{\baselinestretch}{1.25}

\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Document header: change the lecture number, date, scribe name, and
% lecture topic.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\lecture{Statistical Techniques in Robotics (16-831, F10)}
%{Lecture\#NN (Thursday August 26)}
%{Lecturer: Drew Bagnell}
%{Scribe:YOUR\_NAME\_HERE \footnotemark}
%{Lecture Topic}

\lecture{Statistical Techniques in Robotics (16-831, F10)}
{Lectures \#20, \#21 (Oct. 28, Nov 2)}
{Lecturer: Drew Bagnell}{Scribe: Zachary Lamb, Jackie Libby\footnotemark}{Kalman Filtering}

% Be sure to acknowledge all previous scribes.
\footnotetext[1]{Some content adapted from previous scribs: Hyunggi Cho and Alberto Rodriguez}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Document body: Scribe your notes here.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Introduction to Gaussian Filters}
Gaussian filters embody the first practical implementations of Bayesian filtering for continuous spaces. Despite a number of deficiencies, they are by far the most popular of techniques implemented to date. 

All Gaussians share the same basic idea that beliefs can be represented by multivariate normal distributions. This representation has important consequences. Since Gaussians are unimodal they possess only a single maximum; this can be readily applied to robot localiztion, for example, where the robot posterior is focused around the true state with some amount of uncertainty. These posteriors are of little use in problems that can have multiple hypotheses, such as global estimation problems.

\section{The Kalman Filter}
\subsection{Introduction}
The Kalman filter was invented as a technique for filtering and prediction in \textit{linear Gaussian systems}. It implements belief computations (Bayesian filtering) for continuous spaces and is not applicable to discrete/hybrid state spaces.

Kalman filters represent beliefs by the moment parameterization, where the belief at time $t$ is represented by a mean $\mu_t$ and covariance $\Sigma_t$. All computed posteriors are \textit{Gaussian} if the following properties hold (Markov assumption must hold as well). These three items ensure that all posteriors are always Gaussian for any time $t$.

\begin{enumerate}
\item The state transition probability $p(x_t|u_t,x_{t-1})$ must be linear in their arguments and with added Gaussian noise. This probability therefore assumes linear dynamics and in this form is called \textit{linear Gaussian}. It is represented by the following equation :
\begin{equation}\label{eq:eq1}
x_{t+1}=A x_t + \varepsilon, \qquad
\textrm{where}~\varepsilon \sim \mathcal{N}(0,Q)
\end{equation}
\item The measurement probability $p(y_t|x_t)$ must also be linear with its arguments and with added Gaussian noise. This probability is represented by the following probability:
\begin{equation}\label{eq:eq2}
y_{t+1}=C x_t + \delta, \qquad
\textrm{where}~\varepsilon \sim \mathcal{N}(0,R)
\end{equation}
\item The initial belief must be normally distributed with some mean $\mu_0$ and covariance $\Sigma_0$.
\end{enumerate}

Combining (\ref{eq:eq1}) and (\ref{eq:eq2}) together, we can show how the state and measurment are thought to come from a normal distribution with a mean vector $\mu$ and covariance matrix $\Sigma$:

\begin{equation}\label{eq:eq3}
\left[\begin{array}{c}x \\ y \end{array} \right] \sim
\mathcal{N}\left(
\left[\begin{array}{c}\mu_x \\ C \mu_x \end{array} \right],
\left[\begin{array}{cc} \Sigma_{xx} & \Sigma_{xy} \\ \Sigma_{yx} & \Sigma_{yy} \end{array} \right]\right)
\end{equation}

We can further equate each of the terms in the covariance matrix in terms of the top left term $\Sigma_{xx}$. 

Since $\mu_{y}=C \mu_x$, then we know,
\begin{equation}\label{eq:eq4}
\Sigma_{yy}=R+ C \Sigma_{xx} C^{T}
\end{equation}

Therefore, all that is left is to determine $\Sigma_{xy}$ since $\Sigma_{yx}=\Sigma_{xy}^{T}$.

\begin{equation}
\nonumber \Sigma_{xy}=E\left[\begin{array}{cc} x & y^{T} \end{array} \right]
\end{equation}

Since $y=C x+\delta$, where $\delta$ has a mean of 0 and is independent of all other observations, we have

\begin{align}\label{eq:eq5}
\nonumber \Sigma_{xy}&=E\left[x(C x + \delta)^{T}\right]\\ 
\nonumber &=E\left[x x^{T} C^{T} \right] + E\left[x \delta^{T} \right]\\
\nonumber &=E\left[x x^{T} \right] C^T + E\left[x\right] E\left[\delta^{T}\right]\\
\nonumber &=\Sigma_{xx} C^{T} + 0\\ 
\Rightarrow \Sigma_{xy}&=\Sigma_{xx} C^{T}
\end{align}

\subsection{The Kalman Filter Algorithm}
The Kalman filter algorithm is depicted in the table below. The input to the filter is the belief represented by the mean $\mu_t$ and covariance $\Sigma_t$ at the previous timestep.

\begin{algorithm}
	\caption{Basic Kalman Filter Algorithm}
\begin{algorithmic}
	\FORALL{$t$}
	\STATE $\mu_{t+1}^{-}=A \mu_t$
	\STATE $\Sigma_{t+1}^{-}= A \Sigma_{t+1} A^{T}+Q$
	\STATE $\mu_{t+1}=\mu_{t+1}^{-}+\Sigma_{t+1}^{-} C^{T}(C \Sigma_{t+1}^{-} C^{T} +R)^{-1} (y_{t}-C \mu_{t}^{-})$
	\STATE $\Sigma_{t+1}=\Sigma_{t+1}^{-}-\Sigma_{t+1}^{-} C^{T} (C \Sigma_{t+1}^{-} C^{T} +R)^{-1} C \Sigma_{t+1}^{-}$
	\ENDFOR
\end{algorithmic}
\end{algorithm}

The first two lines of the algorithm calculate predicted beliefs represented by $\mu^{-}$ and $\Sigma^{-}$ at the new time $(t+1)$ without incorporating the measurement $y_t$. The mean is then updated using the deterministic version of the state transition function shown in (\ref{eq:eq1}) using the variables $\mu_{t}^{-}$ and $\Sigma_{t}^{-}$. 

In the final two lines, the predicted belief is updated into the desired belief by incorporating the measurement $y_t$. The quantity $\Sigma_{t+1}^{-} C^{T}(C \Sigma_{t+1}^{-} C^{T} +R)^{-1}$ is known as the \textit{Kalman Gain}. It details the degree to which each measurement is incorporated into the new state estimate. The third line manipulates the predicted mean in proportion to the Kalman Gain with the quantity $(y_{t}-C \mu_{t}^{-})$, known as the \textit{innovation}.

This algorithm is computationally quite efficient, with the only complexities arising from the matrix inversions in lines 3 and 4 ($O(d^{2})$) and the multiplications in line 4 ($O(n^{2})$). 

Taking \eqref{eq:eq4} and \eqref{eq:eq5} from above, we can evaluate the update rules in terms of the mean vector and covariance matrix.

\begin{align} \label{eq:eq6}
\mu_{x|y}&=\mu_{x}+\Sigma_{xx} C^{T} (R+C \Sigma_{xx} C{T})^{-1}(y-C\mu_{x})\\ \label{eq:eq7}
\Sigma_{x|y}&=\Sigma_{xx} C^{T}(R+ C \Sigma_{xx} C^{T})^{-1} C \Sigma_{xx}\\
\nonumber \Rightarrow \mu_{x|y} &= \mu_x + \Sigma_{xy} \Sigma_{yy}^{-1} (y-C \mu_x)\\
\nonumber \Rightarrow \Sigma_{x|y} &= \Sigma_{xx} - \Sigma_{xy} \Sigma_{yy}^{-1} \Sigma_{yx}
\end{align}

Where $\Sigma_{xy}\Sigma_{yy}^{-1}$ is the \textit{Kalman Gain} and $(y-C \mu_x)$ is the \textit{innovation}.

\subsection{Kalman Filter Illustration}

\begin{figure}[h]
	\centering
		\includegraphics[width=4.5in]{kalman}
	\caption{Kalman filtering example for 1D localization}
	\label{fig:kalman}
\end{figure}

Figure~\ref{fig:kalman} above illustrates the Kalman filter algorithm for simple 1D localization. Supposing the robot moves in the horizontal direction, the prior of robot's position is shown  as the red line in (a). Polling its sensors gives the distribution shown by the green line in (a), and the blue line is a result of the final two lines of the Kalman filter algorithm shown above. In (b) the robot has moved to a new position illustrated by the magenta line. It polls its sensor that report back the position given by the cyan line in (c), and the update from the algorithm gives the posterior given by the yellow line in (d).

The Kalman filter alternates the \textit{sensor update} step (lines 3-4), which incorporates sensor data into the present belief, with the \textit{motion update} step (lines 1-2), where the belief is predicted according to the action taken by the robot.

\section{The Extended Kalman Filter}

\subsection{Why should we linearize?}
The assumptions of linearity for both the measurement and state transition are essential for the correctness of the Kalman filter. The observation that any linear transformation of a Gaussian random variable yields another Gaussian is important in the derivation of the Kalman filter algorithm, so what happens if state transitions and measurements are no longer linear?

Figure~\ref{fig:nonlinear} shows the effect of a nonlinear transformation of a Gaussian random variable. The lower right graph shows the random variable distributed about its mean. It is passed through the nonlinear function represented by the upper right graph. The resulting distribution (upper left) is no longer gaussian in shape, rendering Kalman filtering useless over the domain of the nonlinear function.

\begin{figure}[h]
	\centering
		\includegraphics[width = 3.5in]{nonlinear}
	\caption{Effect of nonlinear transformation of Gaussian random variable.}
	\label{fig:nonlinear}
\end{figure}

\subsection{The Extended Kalman Filter}

Unfortunately, state transitions and measurements are rarely linear in practice. Thus, we would like to be able to model non-linear transformations with our filter. The \textit{Extended Kalman Filter} or \textit{EKF} relaxes the linearity assumption by assuming that the state transition and measurement probabilities are governed \textit{nonlinear} functions $f$ and $g$, such that
\begin{eqnarray}
	x_{t+1} &=& f(x_t) + \varepsilon_{t+1}, \qquad
	\label{eq.nonlinearX}	
	\textrm{where}~\varepsilon \sim \mathcal{N}(0, Q)\\

	y_{t+1} &=& g(x_{t+1}) + \delta_{t+1}, \qquad
	\label{eq.nonlinearY}
	\textrm{where}~\delta \sim \mathcal{N}(0, R)
\end{eqnarray}

Notice that the function $f$ replaces the matrix $A$ and the function $g$ replaces $C$. For arbitrary functions $f$ and $g$, the belief is no longer Gaussian. To combat this, the EKF calculates a Gaussian approximation to the true belief. This is shown in figure~\ref{fig:EKF}

\begin{figure}[h]
	\centering
		\includegraphics[width=3.5in]{EKF}
	\caption{Illustration of EKF}
	\label{fig:EKF}
\end{figure}

The dashed line on the upper left graph represents the Gaussian approximation (\textit{Linearization}) to the density of the random variable $y$. Because it represents belief at some time $t$ by some mean $\mu_t$ and covariance $\Sigma_t$, it still keeps from the original Kalman filter the gaussian belief distribution, but this belief is now an approximation. The goal of the EKF is therefore to efficiently estimate the mean and covariance of a posterior.

Linearization approximates the nonlinear function $f$ and $g$ at the mean of the Gaussian. Projecting it through the linear function shown in the upper right graph of~\ref{fig:EKF} a linear approximation is shown in red of the upper left graph.
\subsection{Linearization via the Taylor Series Expansion}

\newcommand{\partialat}[3]{\frac{\partial {#1}}{\partial {#2}}(#3)}

One way to perform this linearization is to use the Taylor expansion.
In this case we approximate the transformations using the first order Taylor expansion evaluated at the mean estimate of $x$ at time $t$, $\mu_t$:
\begin{eqnarray}
x_{t+1} &\approx& f(\mu_t) + \partialat{f}{x}{\mu_t} (x_t - \mu_t)
  + \varepsilon\\
y_{t+1} &\approx& g(\mu^-_{t+1}) + \partialat{g}{x}{\mu^-_{t+1}}
  (x_{t+1} - \mu^-_{t+1}) + \delta
\end{eqnarray}

The first order derivative terms $\partialat{f}{x}{\mu_t}$ and $\partialat{g}{x}{\mu_{t+1}^{-}}$, also referred to as the Jacobian, is used here as the linear transformation, while the
$f(\mu_t)$ term just serves to shift the mean of the transformation.

\subsection{New Update Rules}
Using the non-linear transformation above, we get the following new update
equations for our mean and variance estimates for the motion model:
\begin{eqnarray}
\mu^-_{t+1} &=& f(\mu^+_t) \\
\Sigma^-_{t+1} &=& J_f \Sigma^+_t J_f^T + Q
\end{eqnarray}

And for the sensor model:
\begin{eqnarray}
\mu_{t+1} &=& \mu^{-}_{t+1} + \Sigma^{-}_{t+1} J_g^T
                (J_g \Sigma^{-}_{t+1} J_g^T + R)^{-1} [y_{t+1} - g(\mu^-_{t+1})]\\
\Sigma_{t+1} &=& \Sigma^-_{t+1} - \Sigma^-_{t+1} J_g^T
                (J_g \Sigma^-_{t+1} J_g^T + R)^{-1} J_g \Sigma^-_{t+1}
\end{eqnarray}

where $J_f = \partialat{f}{x}{\mu^+_t}$ and $J_g = \partialat{g}{x}{\mu^-_{t+1}}$. These lines replace lines 3 and 4 in the Kalman filter algorithm presented above.

\subsection{Problems with Extended Kalman Filtering}
\begin{itemize}
\item Taylor expansion is a poor approximation of most non-linear functions. The goodness of the linearization depends on two factors: the degree of uncertainty and the amount of local nonlinearity in the functions being approximated.
\item Differentiation of the functions $f$ and $g$ can be slightly bothersome, both for you, personally, because you might have forgotten calculus, and because the function might not be continuous across the range in which the linearization is used. An example of a discontinuous function is the hinge loss function for SVM's.  Furthermore, for SVM's, you will get driven towards this discontinuity. (Why? Someone figure this out and explain it to me.)
\item If the linearization is a poor approximation, the the confidence ellipse will not encapsulate the correct answer unless you make it very large.  For this reason, the ellipses are often overconfident.  An overconfident filter can cause divergence, because it starts rejecting the measurements it is given.  It prances off into a state of egotistical oblivion, giving no respect to the poor measurements that are just trying to help it out.
\item EKFs are notoriously bad at handling multiple distinct hypotheses.
\end{itemize}

Extended Kalman Filters are only as good as their approximation about the mean of the estimate. It is important to keep the uncertainty of the state estimate small when applying EKFs to avoid negative effects from the nonlinearities.

\subsection{Example: Non-Linear Regression}
In this example we want to use an EKF for a non-linear regression problem.  In this case our state vector is a set of weights $w$ and we wish to estimate the mean and variance $\mu_w, \Sigma_w$ with our EKF, which we will just refer to as $\mu$ and $\Sigma$ from here on.

\begin{table}[!ht]
	\caption{Comparing a general Kalman Filter with a Bayes Linear Regression Example}
	\centering
	\begin{tabular}{| c | c | l |}			
	  \hline
		KF &
                BLR &  
                Difference &
		\hline
		\hline		
		$x$ & $w$ & \\
		\hline		
		$A$ & $I$ &No process model for how weights are changing over time\\
		\hline		
		$C_t$ & $x^T$ &Different linearlization at every time step.\\
		\hline		
		$Q$ & $0$ &Growing uncertainty with time.\\
		\hline		
		$Y$ & $y$ &$y=w^Tx+\epsilon$\\
		\hline		
		$\Sigma_0$ & $\Sigma_w$ &prior\\
		\hline		
		$\mu_0$ & $\mu_w$ &prior\\
		\hline		
	\end{tabular}
	\label{table.onlyTable}
\end{table}

For our observation model we want to use the non-linear sigmoid function
$\sigma(x) = \frac{1}{1 + \exp(x)}$:
\begin{eqnarray}
y_t &=& \sigma(w^T x_t) + \varepsilon, \qquad \textrm{where}~~\varepsilon \sim \mathcal{N}(0, \gamma^2)
\end{eqnarray}

Note that our output in this case is a single value, so our Jacobian will be a vector. We can find the Jacobian $J_{\sigma}$ using the chain rule and the fact that $\frac{\partial \sigma}{\partial x} = \sigma(x) (1 - \sigma(x))$.  Here we actually want to find the derivative of $g(w) = \sigma(w^Tx)$, so we use the chain rule with $z = w^Tx$.

\begin{eqnarray}
\frac{\partial{g}}{\partial{w}} &=& \frac{\partial{g}}{\partial{z}}\frac{\partial{z}}{\partial{w}}\\
    &=& \sigma(w^Tx) (1 - \sigma(w^Tx)) x^T\\
J_{\sigma} &=& \partialat{g}{w}{\mu}\\
          &=& \sigma(\mu^Tx) (1 - \sigma(\mu^Tx)) x^T
\end{eqnarray}

This gives update equations:
\begin{eqnarray}
\mu_{t+1} &=& \mu^+_{t} + \Sigma^+_{t} J_{\sigma}^T
                (J_{\sigma} \Sigma^+_{t} J_{\sigma}^T + \gamma^2)^{-1} [y_{t+1} - \sigma({\mu^+_{t}}^T x)]\\
\Sigma_{t+1} &=& \Sigma^+_{t} - \Sigma^+_{t} J_{\sigma}^T
                (J_{\sigma} \Sigma^+_{t} J_{\sigma}^T + \gamma^2)^{-1} J_{\sigma} \Sigma^+_{t}
\end{eqnarray}

For this non-linear regression example, there is no motion step, so the update step just takes the output of the update step from the last round.  In other words, $\mu^-_{t+1} = \mu^+_t$ and $\Sigma^-_{t+1} = \Sigma^+_t$. Alternatively, we could add in a pseudo motion model to represent growing uncertainty with each time step:
\begin{eqnarray}
\mu^-_{t+1} &=& \mu_t\\
\Sigma^-_{t+1} &=& \Sigma_t + \lambda I
\end{eqnarray}
where $\lambda$ is forgetting factor and $I$ is an identity matrix.

Also, since we use the sigmoid function for this example, we use $\gamma^2$ instead of $\sigma^2$ to denote the variance, to avoid confusion. More generally, this would be the covariance, $R$, but in this example the sigmoid function outputs a scalar.

\section{Other techniques to deal with nonlinear systems}
Assuming we have the general nonlinear system given by equations (\ref{eq.nonlinearX}) and (\ref{eq.nonlinearY}), we can use other approaches besides the EKF.  A \emph{Statistically Linearized Kalman Filter} tries to overcome that limitation by approximating the Jacobian matrix of the system in a broader region centered at the state of the system.

\subsection{Montecarlo Kalman Filter}

One example of such a filter is the Mantecarlo Kalman Filter (MCKF).  This isn't actually a real filter used in practice, but it is presented here for the sake of demonstration, as a precursor to the discussion of the Unscented Kalman Filter next.

\subsubsection*{Motion Model}
Given the equation of the motion model $x_{t+1} = f(x_t) + \epsilon$, $\mu_t$ and $\Sigma_t$ we need to estimate $\mu^{-}_{t+1}$ and $\Sigma^-_{t+1}$. For that we draw samples from the prior distribution ${x_t^i}$ and pass them through $f(x)$. That way, and with the law of large numbers in hand, we can estimate:

\begin{eqnarray}
\mu^-_{x_{t+1}} & = & \frac{1}{N}\sum_{i=1}^N f(x_t^i)\\
\Sigma^-_{x_{t+1}} & = & \frac{1}{N}\left[\sum\left(f(x_t^i) - \mu^-_{x_{t+1}}\right)\cdot\left(f(x_t^i) - \mu^-_{x_{t+1}}\right)^T\right] + Q
\end{eqnarray}
NOTE: $Q$ is additive noise, uncorrelated with $x_t$.

\subsubsection*{Observation Model}
Given the equation of the observation model $y_{t+1} = g(x_{t+1}) + \delta$ the update rules are the same as before:

\begin{eqnarray}
\mu^+_{x_{t+1}} & =&  \mu^-_{x_{t+1}} + \Sigma_{XY}\Sigma_{YY}^{-1}\left(y_t - \mu_y\right)\\
\Sigma^+_{x_{t+1}} & =&  \Sigma^-_{t+1} - \Sigma_{XY}\Sigma_{YY}^{-1}\Sigma_{YX}
\end{eqnarray}

But now we approximate $\mu_y$, $\Sigma_{YY}$ and $\Sigma_{XY}$ as:

\begin{eqnarray}
\mu_y & = & \frac{1}{N} \sum_{i=1}^N g(x^i_{t})\\
\Sigma_{YY} & = & \frac{1}{N}\left[\sum_{i=1}^N\left(g(x_{t}^i) - \mu_y\right)\cdot\left(g(x_{t}^i) - \mu_y\right)^T\right] + R\\
\Sigma_{XY} & = & \frac{1}{N}\left[\sum_{i=1}^N\left(x_{t}^i - \mu_{x_{t}}\right)\cdot\left(g(x_{t}^i) - \mu_y\right)^T\right]
\end{eqnarray}

In the above equations, we can choose to replace $\mu^-_{x_{t+1}}$ with $f(\mu_{x_t)$ and $\mu_y$ with $g(\mu^-_{x_{t+1}})$.  In other words, we take the mean of our samples and pass them through the nonlinear functions $f$ and $g$, instead of passing every sample through the functions.  If the samples were perfectly gaussian, these two methods would produce the same result.

Note that last year's lectures used $x^i_{t+1}$ instead of $x^i_t$ in these update equations.  I believe it is more correct to use $x^i_t$.  There can be two cases: case 1 is that we're doing an update step on the same timestep as a motion step, (which is what the overall notation is suggesting with the +'s and -'s).  In this case, we would not have $x^i_{t+1}$'s to sample from, because we are still at time step $t$.  Case 2 is that we're doing an update step at the next timestep, and that we are treating the motion and update steps as asynchronous events that happen independently from each other.  In this case, we would look at the update step separately from the motion step, and we could leave the time subscript out altogether because an update step happens at one moment in time.

Comparing the Montecarlo Kalman Filter (MCKF) with the standard Particle Filter (PF):

\begin{itemize}
	\item Good things about the MCKF
	\begin{itemize}
		\item The MCKF forces some smoothing on the uncertainty that simplifies the process to get a solution.
		\item The MCKF doesn't need as many samples as the PF.  The number of samples is on the order of $O(d^2)$.  To estimate $n$ parameters, we need $O(n)$ particles.  Here we have $d^2$ parameters.
	\end{itemize}
	\item Bad things about the MCKF
	\begin{itemize}	
		\item The MCKF will always be unimodal, while a the PF can perfectly maintain several modes in the estimation of the distribution.
	\end{itemize}
\end{itemize}

\subsection{Sigma-Point Filter}
A Sigma-Point Filter has exactly the same formulation as a Montecarlo Kalman Filter but it draws samples in a deterministic way from interesting locations. Suppose  ${\Delta_i}$ are the eigenvectors of the covariance matrix $\Sigma_{x_t}$. Then we sample the points as:

\begin{displaymath}
\mu_{x_{t}} \pm\lambda_i\Delta_i \ \ \ \  i=1\ldots d
\end{displaymath}

where $d$ is the dimension of $x_t$ and $\lambda_i$ is proportional to the eigenvalue corresponding to eigenvector $\Delta_i$. In other words, we pick one point along each eigenvector direction.  We also sometimes pick the last point as the mean itself, so the number of points is $2d+1$. Then, the update rule for the motion model becomes:

\begin{eqnarray}
\mu^-_{x_{t+1}} & = & w_i\sum_{i=1}^N f(x_t^i)\\
\Sigma^-_{x_{t+1}} & = & w_i\left[\sum\left(f(x_t^i) - \mu^-_{x_{t+1}}\right)\cdot\left(f(x_t^i) - \mu^-_{x_{t+1}}\right)^T\right] + Q
\end{eqnarray}

This assumes the weights sum to 1. There are different versions of Sigma-Point filters and they all differ on how weights $w_i$ are selected. All versions choose weights so that the method behaves perfectly for a gaussian model (linear dynamics) and then optimize the weights for different criteria. Different versions include Unscented Kalman Filter, Central Difference Kalman Filter, ... 

The computational cost of Sigma-Point type filters is $O(d^3)$ for finding the eigenvectors (usually implemented by the SVD decomposition) plus $2d+1$ evaluations of the motion model $f(x)$.

Evaluating the Sigma-Point Filter:
\begin{itemize}
	\item Good things 
	\begin{itemize}
		\item It needs less particles to run, and hence reduces the number of motion model evaluations, which can be costly.
		\item It only needs to be implemented once because the algorithm is generic, for any choice of your model, ($f,g$). 
		\item You don't have pretend like you know calculus, because there are no Jacobians.
	\end{itemize}
	\item Bad things
	\begin{itemize}
		\item It can perform really bad if facing an adversarial problem, because it samples the space in a deterministic way.
		\item As the dimension goes up, the center weight can become negative.  (One fix is to leave the center value out for the variance calculations.)
		\item The eigenvalue decomposition need to be done at every time step, which can be costly.  Also, SVD is not always deterministic, so you count bound the computation time.  This makes it difficult to run online.
	\end{itemize}
\end{itemize}

The Unscented Kalman Filter (UKF) is a type of Sigma-Point Filter, for specific choices of $\lambda_i$'s and $w_i$'s.  Fig. \ref{fig-ukf} gives a pictorial representation of the UKF:

\begin{figure}[ht]
\centerline{
  \mbox{\includegraphics[width = 5in]{ut}}}
  \caption{A comparison of the actual transformation, and the approximations given
    by the linear approximation and the unscented transformation. \\
    (Source: http://cslu.cse.ogi.edu/nsel/ukf/node6.html)}
\label{fig-ukf}
\end{figure}

\end{document}
