lppl
v0.13.0
|
Metropolis Hastings using the prior distribution as the proposal. More...
#include "base.hpp"
Public Member Functions | |
V | operator() (I &input) |
void | step (MetropolisState< Ts... > &state, pp_t< I, O, Ts... > f, Q< V, O, Ts... > &queryer, 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 |
Metropolis Hastings using the prior distribution as the proposal.
Suppose the generative model factors as \( p(x,z) = p(x|z)p(z) \). The acceptance ratio is \( \log \alpha = \log p(x|z') - \log p(x|z) \), where \( z' \sim p(z) \) is the new draw from the prior, and \( z \sim p(z) \) is the old/existing draw from the prior. Each weight passed to the queryer is \( \log w = 0 \).
I | The input type of the program on which to perform inference |
O | The output type of the program on which to perform inference |
V | The type emitted by the queryer |
Q | The queryer type |
Ts | The distribution types used in the probabilistic program |