lppl
v2.0.0
|
Generic Metropolis-Hastings algorithm with user-specified proposal distribution. More...
#include "base.hpp"
Public Member Functions | |
V | operator() (I &input, endog_proposal_t< Ts... > &proposal) |
Runs the inference algorithm. More... | |
void | step (record_t< DTypes< Ts... >> &, I &input) |
Public Member Functions inherited from Inference< GenericMetropolis, I, O, V, Q, Ts... > | |
Inference (pp_t< I, O, Ts... > f, Q< V, O, Ts... > &queryer, inf_options_t opts) | |
std::enable_if_t< std::is_same_v< typename has_proposal< G >::type, No >, V > | operator() (I &input) |
Runs the specified inference algorithm with the specified queryer. More... | |
std::enable_if_t< std::is_same_v< typename has_proposal< G >::type, Endog >, V > | operator() (I &input, endog_proposal_t< Ts... > &proposal) |
Runs the specified inference algorithm with the specified queryer using the specified proposal distribution. More... | |
std::enable_if_t< std::is_same_v< typename has_proposal< G >::type, Exog >, V > | operator() (I &input, exog_proposal_t< I, Ts... > &proposal) |
Runs the specified inference algorithm with the specified queryer using the specified proposal distribution. More... | |
void | step (record_t< DTypes< Ts... >> &r, I &input) |
Additional Inherited Members | |
Public Attributes inherited from Inference< GenericMetropolis, I, O, V, Q, Ts... > | |
pp_t< I, O, Ts... > | f |
inf_options_t | opts |
Q< V, O, Ts... > & | queryer |
inference_state< GenericMetropolis, I, O, Ts... > | state |
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 |