lppl
v0.13.0
|
Generic Metropolis-Hastings algorithm with user-specified proposal distribution. More...
#include "base.hpp"
Public Member Functions | |
V | operator() (I &input, pp_t< record_t< Ts... >, double, Ts... > &proposal) |
Runs the inference algorithm. More... | |
void | step (MetropolisState< Ts... > &state, pp_t< I, O, Ts... > &f, Q< V, O, Ts... > &queryer, pp_t< record_t< Ts... >, double, Ts... > &proposal, pp_t< record_t< Ts... >, double, Ts... > &replayed_proposal, I input, inf_options_t opts) |
![]() | |
Inference (pp_t< I, O, Ts... > f, Q< V, O, Ts... > &queryer, inf_options_t opts) | |
std::enable_if_t< has_proposal< G >::value==kernel::none, V > | operator() (I &input) |
Runs the specified inference algorithm with the specified queryer. More... | |
std::enable_if_t< has_proposal< G >::value==kernel::full, V > | operator() (I &input, P &proposal) |
Runs the specified inference algorithm with the specified queryer using the specified proposal distribution. More... | |
std::enable_if_t< has_proposal< G >::value==kernel::partial, V > | operator() (I &input, pp_t< record_t< Ts... >, double, Ts... > &proposal) |
Runs the specified inference algorithm with the specified queryer using the specified proposal distribution. More... | |
Additional Inherited Members | |
![]() | |
pp_t< I, O, Ts... > | f |
inf_options_t | opts |
Q< V, O, Ts... > & | queryer |
Generic Metropolis-Hastings algorithm with user-specified proposal distribution.
Suppose the probabilistic program factors as \(p(x, z) = p(x|z)p(z)\) and the proposal distribution takes the form \(q(z'|z)\). The log acceptance ratio is computed as \( \log \alpha = [\log p(x, z') - \log q(z' | z)] - [\log p(x, z) - \log q(z | z')]\), where \(z' \sim q(z'|z)\) are the newly generated unobserved rvs. The proposal distribution need not be symmetric.
I | The input type of the probabilistic program |
O | The output type of the probabilistic program |
V | The type of the value to be queried |
Q | The queryer class template |
Ts | The types of the distributions in the probabilistic program |