View source on GitHub
|
Categorical resampler for sequential Monte Carlo.
tfp.experimental.mcmc.resample_independent(
log_probs, event_size, sample_shape, seed=None, name=None
)
The return value from this function is similar to sampling with
expanded_sample_shape = tf.concat([[event_size], sample_shape]), axis=-1)
tfd.Categorical(logits=log_probs).sample(expanded_sample_shape)`
but with values sorted along the first axis. It can be considered to be
sampling events made up of a length-event_size vector of draws from
the Categorical distribution. For large input values this function should
give better performance than using Categorical.
The sortedness is an unintended side effect of the algorithm that is
harmless in the context of simple SMC algorithms.
This implementation is based on the algorithms in [Maskell et al. (2006)][1]. It is also known as multinomial resampling as described in [Doucet et al. (2011)][2].
Args | |
|---|---|
log_probs
|
A tensor-valued batch of discrete log probability distributions. |
event_size
|
the dimension of the vector considered a single draw. |
sample_shape
|
the sample_shape determining the number of draws.
|
seed
|
PRNG seed; see tfp.random.sanitize_seed for details.
Default value: None (i.e. no seed).
|
name
|
Python str name for ops created by this method.
Default value: None (i.e., 'resample_independent').
|
Returns | |
|---|---|
resampled_indices
|
a tensor of samples. |
References
[1]: S. Maskell, B. Alun-Jones and M. Macleod. A Single Instruction Multiple Data Particle Filter. In 2006 IEEE Nonlinear Statistical Signal Processing Workshop. http://people.ds.cam.ac.uk/fanf2/hermes/doc/antiforgery/stats.pdf [2]: A. Doucet & A. M. Johansen. Tutorial on Particle Filtering and Smoothing: Fifteen Years Later In 2011 The Oxford Handbook of Nonlinear Filtering https://www.stats.ox.ac.uk/~doucet/doucet_johansen_tutorialPF2011.pdf
View source on GitHub