Class TransitionKernel
Base class for all MCMC TransitionKernel
s.
This class defines the minimal requirements to efficiently implement a Markov chain Monte Carlo (MCMC) transition kernel. A transition kernel returns a new state given some old state. It also takes (and returns) "side information" which may be used for debugging or optimization purposes (i.e, to "recycle" previously computed results).
Properties
is_calibrated
Returns True
if Markov chain converges to specified distribution.
TransitionKernel
s which are "uncalibrated" are often calibrated by
composing them with the tfp.mcmc.MetropolisHastings
TransitionKernel
.
Methods
bootstrap_results
bootstrap_results(init_state)
Returns an object with the same type as returned by one_step(...)[1]
.
Args:
init_state
:Tensor
or Pythonlist
ofTensor
s representing the initial state(s) of the Markov chain(s).
Returns:
kernel_results
: A (possibly nested)tuple
,namedtuple
orlist
ofTensor
s representing internal calculations made within this function.
one_step
one_step(
current_state,
previous_kernel_results
)
Takes one step of the TransitionKernel.
Must be overridden by subclasses.
Args:
current_state
:Tensor
or Pythonlist
ofTensor
s representing the current state(s) of the Markov chain(s).previous_kernel_results
: A (possibly nested)tuple
,namedtuple
orlist
ofTensor
s representing internal calculations made within the previous call to this function (or as returned bybootstrap_results
).
Returns:
next_state
:Tensor
or Pythonlist
ofTensor
s representing the next state(s) of the Markov chain(s).kernel_results
: A (possibly nested)tuple
,namedtuple
orlist
ofTensor
s representing internal calculations made within this function.