An implement of the dimension-independent MALA (or Inf-MALA) proposal. More...
#include <InfMALAProposal.h>
An implement of the dimension-independent MALA (or Inf-MALA) proposal.
This class implements the \(\infty-\)MALA proposal (and its geometry-aware version: \(\infty-\)mMALA proposal) described in Beskos et al., 2017. The proposal takes the form
\[ u^\prime = \rho u + \sqrt{1 - \rho^2} \frac{\sqrt{h}}{2} \left\{ u - K C^{-1} (u - u_0) - K \nabla \Phi \right\} + \sqrt{1-\rho} z \]
where \(u\) is the current state of the chain, \(\rho = \frac{4 - h}{4 + h}\) with \(h\) being the step size used to discretize the Langevin SDE, \(u_0\) is the prior mean, \(C\) is the prior covariance, \(\Phi\) is the negagive log likelihood (note that \(\nabla \pi_\text{post} = - C^{-1} (u - u_0) - \nabla \Phi\)), \(z\sim N(0,K)\) is a normal random variable with a strategically chosen covariance \(K\), and \(u^\prime\) is the propsed point.
Note that the above proposal is the geometry-aware version, and it is the \(\infty-\)MALA proposal when \(K = C\).
Configuration Parameters:
Parameter Key | Type | Default Value | Description |
---|---|---|---|
"StepSize" | double | 1.0 | The step size used to discrete the Langevin SDE. |
Definition at line 40 of file InfMALAProposal.h.
Public Member Functions | |
InfMALAProposal (boost::property_tree::ptree const &pt, std::shared_ptr< AbstractSamplingProblem > prob) | |
InfMALAProposal (boost::property_tree::ptree const &pt, std::shared_ptr< AbstractSamplingProblem > prob, std::shared_ptr< muq::Modeling::GaussianBase > zDistIn) | |
virtual | ~InfMALAProposal ()=default |
Public Member Functions inherited from muq::SamplingAlgorithms::MCMCProposal | |
MCMCProposal (boost::property_tree::ptree const &pt, std::shared_ptr< AbstractSamplingProblem > const &probIn) | |
virtual | ~MCMCProposal ()=default |
virtual void | Adapt (unsigned int const t, std::vector< std::shared_ptr< SamplingState >> const &state) |
Adapt the proposal after each step. More... | |
void | SetCommunicator (std::shared_ptr< parcer::Communicator > newcomm) |
virtual void | SetBlockInd (int newBlockInd) |
virtual int | GetBlockInd () const |
Additional Inherited Members | |
Public Types inherited from muq::SamplingAlgorithms::MCMCProposal | |
typedef std::function< std::shared_ptr< MCMCProposal >boost::property_tree::ptree, std::shared_ptr< AbstractSamplingProblem >)> | MCMCProposalConstructor |
typedef std::map< std::string, MCMCProposalConstructor > | MCMCProposalMap |
Static Public Member Functions inherited from muq::SamplingAlgorithms::MCMCProposal | |
static std::shared_ptr< MCMCProposal > | Construct (boost::property_tree::ptree const &pt, std::shared_ptr< AbstractSamplingProblem > const &probIn) |
Static constructor for the transition kernel. More... | |
static std::shared_ptr< MCMCProposalMap > | GetMCMCProposalMap () |
muq::SamplingAlgorithms::InfMALAProposal::InfMALAProposal | ( | boost::property_tree::ptree const & | pt, |
std::shared_ptr< AbstractSamplingProblem > | prob | ||
) |
Construct the Inf-mMALA proposal with identity covariance for \(K\).
InfMALAProposal::InfMALAProposal | ( | boost::property_tree::ptree const & | pt, |
std::shared_ptr< AbstractSamplingProblem > | prob, | ||
std::shared_ptr< muq::Modeling::GaussianBase > | zDistIn | ||
) |
Construct the Inf-mMALA proposal with strategically chosen Gaussian distribution zDistIn for \(z\).
Definition at line 28 of file InfMALAProposal.cpp.
|
virtualdefault |
|
protected |
Returns the product of the proposal covariance times gradient of the log target density at the current state. Checks the metadata of the currentstate first to see if this has already been computed.
Definition at line 68 of file InfMALAProposal.cpp.
References muq::SamplingAlgorithms::MCMCProposal::blockInd, muq::SamplingAlgorithms::MCMCProposal::prob, and zDist.
Referenced by LogDensity(), and Sample().
|
overrideprotectedvirtual |
Implements muq::SamplingAlgorithms::MCMCProposal.
Definition at line 56 of file InfMALAProposal.cpp.
References muq::SamplingAlgorithms::MCMCProposal::blockInd, GetSigmaGrad(), rho, stepSize, and zDist.
|
overrideprotectedvirtual |
Implements muq::SamplingAlgorithms::MCMCProposal.
Definition at line 38 of file InfMALAProposal.cpp.
References muq::SamplingAlgorithms::MCMCProposal::blockInd, GetSigmaGrad(), rho, stepSize, and zDist.
|
protected |
Definition at line 63 of file InfMALAProposal.h.
Referenced by InfMALAProposal(), LogDensity(), and Sample().
|
protected |
Definition at line 61 of file InfMALAProposal.h.
Referenced by InfMALAProposal(), LogDensity(), and Sample().
|
protected |
Definition at line 66 of file InfMALAProposal.h.
Referenced by GetSigmaGrad(), LogDensity(), and Sample().