KernelForwardBackwardSmoother Class Template Reference

Inheritance diagram for KernelForwardBackwardSmoother:

Inheritance graph
[legend]

List of all members.


Detailed Description

template<class T = unsigned int, class NT = Almost2Norm, class KT = AlmostGaussianKernel, class ST = MedianPartitioner>
class indii::ml::filter::KernelForwardBackwardSmoother< T, NT, KT, ST >

Kernel forward-backward smoother.

Author:
Lawrence Murray <lawrence@indii.org>
Version:
Rev
Date:
Date
Parameters:
T The type of time.
NT Norm type.
KT Kernel type.
ST Partitioner type.
KernelForwardBackwardSmoother is suitable for continuous time systems with nonlinear transition and measurement functions, approximating state and noise with indii::ml::aux::DiracMixturePdf distributions. It is particularly suitable in situations where the transition density is intractable, such as for transition functions defined using Stochastic Differential Equations (SDEs).

For ease of use, KernelForwardBackwardSmoother handles proposal distribution sampling and sample propagations internally.

A number of significant optimisations may be triggered using Flags. The use of flags is entirely optional, and considered an advanced feature. Not using flags will trigger the most generally applicable algorithms, suitable in all situations. Using the right flags in the right situation will give significant performance improvements. Using flags in the wrong situation will give erronous results. Be sure to understand the assumptions implied by a flag, and be certain that those assumptions are suitable, before putting it to use.

See also:
indii::ml::filter for general usage guidelines.

References

Murray, L. Bayesian Learning of Continuous Time Dynamical Systems (with applications in Functional Magnetic Resonance Imaging). PhD thesis. Online at http://www.indii.org/research/.

Definition at line 59 of file KernelForwardBackwardSmoother.hpp.


Public Member Functions

 KernelForwardBackwardSmoother (KernelForwardBackwardSmootherModel< T > *model, const NT &N, const KT &K, const T tT, const indii::ml::aux::DiracMixturePdf &p_xT)
 Constructor.
virtual ~KernelForwardBackwardSmoother ()
 Destructor.
virtual
KernelForwardBackwardSmootherModel
< T > * 
getModel ()
 Get the model being estimated.
void smooth (const T tn, indii::ml::aux::DiracMixturePdf &p_xtn_ytn, indii::ml::aux::DiracMixturePdf &p_xtnp1_ytn, indii::ml::aux::Pdf &q_xtn, const unsigned int flags=0)
 Step back in time and smooth.
void smooth (const T tn, indii::ml::aux::DiracMixturePdf &p_xtn_ytn, indii::ml::aux::DiracMixturePdf &p_xtnp1_ytn, const unsigned int flags=0)
 Step back in time and smooth, using filter density as proposal distribution.
virtual
indii::ml::aux::DiracMixturePdf 
smoothedMeasure ()
 Apply the measurement function to the current smoothed state to obtain an estimated measurement.
indii::ml::aux::DiracMixturePdfgetProposals ()
 Get last set of proposal samples.
indii::ml::aux::DiracMixturePdfgetPropagations ()
 Get last set of proposal sample propagations.
void smoothedResample (ParticleResampler *resampler)
 Resample the smoothed state.

Constructor & Destructor Documentation

KernelForwardBackwardSmoother ( KernelForwardBackwardSmootherModel< T > *  model,
const NT &  N,
const KT &  K,
const T  tT,
const indii::ml::aux::DiracMixturePdf p_xT 
) [inline]

Constructor.

Parameters:
model Model to estimate.
N The kernel density norm.
K The kernel density kernel.
tT $t_T$; starting time.
p_xT $p(\mathbf{x}_T)$; prior over the state at time $t_T$.

Definition at line 203 of file KernelForwardBackwardSmoother.hpp.

~KernelForwardBackwardSmoother (  )  [inline, virtual]

Destructor.

Definition at line 216 of file KernelForwardBackwardSmoother.hpp.


Member Function Documentation

indii::ml::filter::KernelForwardBackwardSmootherModel< T > * getModel (  )  [inline, virtual]

Get the model being estimated.

Returns:
The model being estimated.

Definition at line 222 of file KernelForwardBackwardSmoother.hpp.

void smooth ( const T  tn,
indii::ml::aux::DiracMixturePdf p_xtn_ytn,
indii::ml::aux::DiracMixturePdf p_xtnp1_ytn,
indii::ml::aux::Pdf q_xtn,
const unsigned int  flags = 0 
) [inline]

Step back in time and smooth.

Parameters:
tn $t_n$; the time to which to rewind the system. This must be less than the current time $t_{n+1}$.
p_xtn_ytn $p(\mathbf{x}_n\,|\,\mathbf{y}_{1:n})$; filter density at time $t_n$. May be modified.
p_xtnp1_ytn $p(\mathbf{x}_{n+1}\,|\,\mathbf{y}_{1:n})$; uncorrected filter density at time $t_{n+1}$. May be modified.
q_xtn $q(\mathbf{x}_n)$; proposal distribution.
flags Optimisation flags.
See also:
Flags for optimisation flags.

Definition at line 227 of file KernelForwardBackwardSmoother.hpp.

void smooth ( const T  tn,
indii::ml::aux::DiracMixturePdf p_xtn_ytn,
indii::ml::aux::DiracMixturePdf p_xtnp1_ytn,
const unsigned int  flags = 0 
) [inline]

Step back in time and smooth, using filter density as proposal distribution.

Parameters:
tn $t_n$; the time to which to rewind the system. This must be less than the current time $t_{n+1}$.
p_xtn_ytn $p(\mathbf{x}_n\,|\,\mathbf{y}_{1:n})$; filter density at time $t_n$. May be modified.
p_xtnp1_ytn $p(\mathbf{x}_{n+1}\,|\,\mathbf{y}_{1:n})$; uncorrected filter density at time $t_{n+1}$. May be modified.
flags Optimisation flags.
See also:
Flags for optimisation flags.

Definition at line 375 of file KernelForwardBackwardSmoother.hpp.

indii::ml::aux::DiracMixturePdf smoothedMeasure (  )  [inline, virtual]

Apply the measurement function to the current smoothed state to obtain an estimated measurement.

Returns:
The estimated measurement.

Implements Smoother< T, indii::ml::aux::DiracMixturePdf >.

Definition at line 547 of file KernelForwardBackwardSmoother.hpp.

indii::ml::aux::DiracMixturePdf & getProposals (  )  [inline]

Get last set of proposal samples.

Returns:
Set of proposal samples from last call to smooth().

Definition at line 535 of file KernelForwardBackwardSmoother.hpp.

indii::ml::aux::DiracMixturePdf & getPropagations (  )  [inline]

Get last set of proposal sample propagations.

Returns:
Set of proposal sample propagations from last call to smooth().

Definition at line 541 of file KernelForwardBackwardSmoother.hpp.

void smoothedResample ( ParticleResampler resampler  )  [inline]

Resample the smoothed state.

See also:
ParticleFilter::resample()

Definition at line 564 of file KernelForwardBackwardSmoother.hpp.


Generated on Wed Dec 17 15:11:58 2008 for dysii Dynamical Systems Library by  doxygen 1.5.3