beanmachine.ppl.inference.single_site_nmc module
- class beanmachine.ppl.inference.single_site_nmc.SingleSiteNewtonianMonteCarlo(real_space_alpha: float = 10.0, real_space_beta: float = 1.0)
Bases:
beanmachine.ppl.inference.base_inference.BaseInference
Single site Newtonian Monte Carlo [1]. This algorithm selects a proposer based on the support of the random variable. Valid supports include real, positive real, and simplex. Each site is proposed independently.
[1] Arora, Nim, et al. Newtonian Monte Carlo: single-site MCMC meets second-order gradient methods
- Parameters
real_space_alpha – alpha value for real space as specified in [1], defaults to 10.0
real_space_beta – beta value for real space as specified in [1], defaults to 1.0
- get_proposers(world: beanmachine.ppl.world.world.World, target_rvs: Set[beanmachine.ppl.model.rv_identifier.RVIdentifier], num_adaptive_sample: int) List[beanmachine.ppl.inference.proposer.base_proposer.BaseProposer]
Returns the proposer(s) corresponding to every non-observed variable in target_rvs. Should be implemented by the specific inference algorithm.