View source on GitHub |
Ensemble Kalman filter update step.
tfp.experimental.sequential.ensemble_kalman_filter_update(
state,
observation,
observation_fn,
damping=1.0,
low_rank_ensemble=False,
seed=None,
name=None
)
The Ensemble Kalman Filter is a Monte Carlo version of the traditional Kalman Filter. See also [2]. It assumes the model
X[t] ~ transition_fn(X[t-1])
Y[t] ~ observation_fn(X[t])
Given the ensemble state.particles
sampled from P(X[t] | Y[t-1], ...)
,
this function assimilates obervation Y[t]
to produce the updated ensemble
sampled from P(X[t] | Y[t], ...)
.
Typically, with G
some deterministic observation mapping,
observation_fn(X)
returns a normal distribution centered at G(X)
.
Args | |
---|---|
state
|
Instance of EnsembleKalmanFilterState .
|
observation
|
Tensor representing the observation for this timestep.
|
observation_fn
|
callable returning an instance of
tfd.MultivariateNormalLinearOperator along with an extra information
to be returned in the EnsembleKalmanFilterState .
|
damping
|
Floating-point Tensor representing how much to damp the
update by. Used to mitigate filter divergence. Default value: 1.
|
low_rank_ensemble
|
Whether to use a LinearOperatorLowRankUpdate (rather than a dense Tensor) to represent the observation covariance. The "low rank" is the ensemble size. This is useful only if (i) the ensemble size is much less than the number of observations, and (ii) the LinearOperator associated with the observation_fn has an efficient inverse |
seed
|
PRNG seed; see tfp.random.sanitize_seed for details.
|
name
|
Python str name for ops created by this method.
Default value: None (i.e., 'ensemble_kalman_filter_update' ).
|
Returns | |
---|---|
next_state
|
EnsembleKalmanFilterState representing particles at next
timestep, after applying Kalman update equations.
|
References
[1] Geir Evensen. Sequential data assimilation with a nonlinear quasi-geostrophic model using Monte Carlo methods to forecast error statistics. Journal of Geophysical Research, 1994.
[2] Matthias Katzfuss, Jonathan R. Stroud & Christopher K. Wikle Understanding the Ensemble Kalman Filter. The Americal Statistician, 2016.