GeneralisedFilters
Installation
In the julia
REPL:
] add GeneralisedFilters
Documentation
GeneralisedFilters
provides implementations of various filtering and smoothing algorithms for state-space models (SSMs). The goal of the package is to provide a modular and extensible framework for implementing advanced algorithms including Rao-Blackwellised particle filters, two-filter smoothers, and particle Gibbs/conditional SMC. Performance is a primary focus of this work, with type stability, GPU-acceleration, and efficient history storage being key design goals.
Interface
GeneralisedFilters.AncestorCallback
— TypeAncestorCallback
A callback for sparse ancestry storage, which preallocates and returns a populated ParticleTree
object.
GeneralisedFilters.DenseAncestorCallback
— TypeDenseAncestorCallback
A callback for dense ancestry storage, which fills a DenseParticleContainer
.
GeneralisedFilters.ParticleDistribution
— TypeParticleDistribution
A container for particle filters which composes the weighted sample into a distibution-like object, with the states (or particles) distributed accoring to their log-weights.
GeneralisedFilters.ParticleTree
— TypeParticleTree
A sparse container for particle ancestry, which tracks the lineage of the filtered draws.
Reference
Jacob, P., Murray L., & Rubenthaler S. (2015). Path storage in the particle filter doi:10.1007/s11222-013-9445-x
GeneralisedFilters.RaoBlackwellisedParticle
— TypeRaoBlackwellisedParticle
A container for Rao-Blackwellised states, composed of a marginalised state z
(e.g. a Gaussian or Categorical distribution) and a singular state x
.
GeneralisedFilters.ResamplerCallback
— TypeResamplerCallback
A callback which follows the resampling indices over the filtering algorithm. This is more of a debug tool and visualizer for various resapmling algorithms.
GeneralisedFilters.initialise
— Functioninitialise([rng,] model, alg; kwargs...)
Propose an initial state distribution.
GeneralisedFilters.predict
— Functionpredict([rng,] model, alg, iter, filtered; kwargs...)
Propagate the filtered distribution forward in time.
GeneralisedFilters.step
— Functionstep([rng,] model, alg, iter, state, observation; kwargs...)
Perform a combined predict and update call of the filtering on the state.
GeneralisedFilters.update
— Functionupdate(model, alg, iter, proposed, observation; kwargs...)
Update beliefs on the propagated distribution given an observation.