Warning: this kernel will not result in a chain which converges to the
target_log_prob
. To get a convergent MCMC, use mcmc_hamiltonian_monte_carlo(...)
or mcmc_metropolis_hastings(mcmc_uncalibrated_hamiltonian_monte_carlo(...))
.
For more details on UncalibratedHamiltonianMonteCarlo
, see HamiltonianMonteCarlo
.
mcmc_uncalibrated_hamiltonian_monte_carlo(
target_log_prob_fn,
step_size,
num_leapfrog_steps,
state_gradients_are_stopped = FALSE,
seed = NULL,
store_parameters_in_results = FALSE,
name = NULL
)
a Monte Carlo sampling kernel
Function which takes an argument like
current_state
(if it's a list current_state
will be unpacked) and returns its
(possibly unnormalized) log-density under the target distribution.
Tensor
or list
of Tensor
s representing the step
size for the leapfrog integrator. Must broadcast with the shape of
current_state
. Larger step sizes lead to faster progress, but
too-large step sizes make rejection exponentially more likely. When
possible, it's often helpful to match per-variable step sizes to the
standard deviations of the target distribution in each variable.
Integer number of steps to run the leapfrog integrator
for. Total progress per HMC step is roughly proportional to
step_size * num_leapfrog_steps
.
logical
indicating that the proposed
new state be run through tf$stop_gradient
. This is particularly useful
when combining optimization over samples from the HMC chain.
Default value: FALSE
(i.e., do not apply stop_gradient
).
integer to seed the random number generator.
If TRUE
, then step_size
and
num_leapfrog_steps
are written to and read from eponymous fields in
the kernel results objects returned from one_step
and
bootstrap_results
. This allows wrapper kernels to adjust those
parameters on the fly. This is incompatible with step_size_update_fn
,
which must be set to NULL
.
string prefixed to Ops created by this function.
Default value: NULL
(i.e., 'hmc_kernel').
Other mcmc_kernels:
mcmc_dual_averaging_step_size_adaptation()
,
mcmc_hamiltonian_monte_carlo()
,
mcmc_metropolis_adjusted_langevin_algorithm()
,
mcmc_metropolis_hastings()
,
mcmc_no_u_turn_sampler()
,
mcmc_random_walk_metropolis()
,
mcmc_replica_exchange_mc()
,
mcmc_simple_step_size_adaptation()
,
mcmc_slice_sampler()
,
mcmc_transformed_transition_kernel()
,
mcmc_uncalibrated_langevin()
,
mcmc_uncalibrated_random_walk()