| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Inference.MH
Description
Metropolis-Hastings inference
Synopsis
- mh :: (FromSTrace env, es ~ '[ObsReader env, Dist, State STrace, State LPTrace, Observe, Sample]) => Int -> (b -> Model env es a) -> (b, Env env) -> [Tag] -> Sampler [Env env]
- mhStep :: es ~ '[ObsReader env, Dist, State STrace, State LPTrace, Observe, Sample] => Env env -> Model env es a -> [Tag] -> [((a, STrace), LPTrace)] -> Sampler [((a, STrace), LPTrace)]
- runMH :: es ~ '[ObsReader env, Dist, State STrace, State LPTrace, Observe, Sample] => Env env -> STrace -> Addr -> Model env es a -> Sampler ((a, STrace), LPTrace)
- traceLPs :: (Member (State LPTrace) es, Member Sample es, Member Observe es) => Prog es a -> Prog es a
- handleSamp :: STrace -> Addr -> Prog '[Sample] a -> Sampler a
- lookupSample :: Member a PrimVal => STrace -> PrimDist a -> Addr -> Addr -> Sampler a
- accept :: Addr -> STrace -> STrace -> LPTrace -> LPTrace -> IO Double
Documentation
Arguments
| :: (FromSTrace env, es ~ '[ObsReader env, Dist, State STrace, State LPTrace, Observe, Sample]) | |
| => Int | Number of MH iterations |
| -> (b -> Model env es a) | Model awaiting an input |
| -> (b, Env env) | (Model input, input model environment) |
| -> [Tag] | An optional list of observable variable names (strings) to specify sample sites of interest. |
| -> Sampler [Env env] |
|
Top-level wrapper for Metropolis-Hastings (MH) inference
Arguments
| :: es ~ '[ObsReader env, Dist, State STrace, State LPTrace, Observe, Sample] | |
| => Env env | Model environment |
| -> Model env es a | Model |
| -> [Tag] | Tags indicating sample sites of interest |
| -> [((a, STrace), LPTrace)] | Trace of previous MH outputs |
| -> Sampler [((a, STrace), LPTrace)] | Updated trace of MH outputs |
Perform one step of MH
Arguments
| :: es ~ '[ObsReader env, Dist, State STrace, State LPTrace, Observe, Sample] | |
| => Env env | Model environment |
| -> STrace | Sample trace of previous MH iteration |
| -> Addr | Sample address of interest |
| -> Model env es a | Model |
| -> Sampler ((a, STrace), LPTrace) | Sampler generating: (model output, sample trace, log-probability trace) |
Handler for one iteration of MH
traceLPs :: (Member (State LPTrace) es, Member Sample es, Member Observe es) => Prog es a -> Prog es a Source #
Handler for tracing log-probabilities for each Sample and Observe operation
Arguments
| :: STrace | Sample trace |
| -> Addr | Address of the proposal sample site for the current MH iteration |
| -> Prog '[Sample] a | Probabilistic program with just |
| -> Sampler a |
Handler for Sample that selectively reuses old samples or draws new ones
Arguments
| :: Member a PrimVal | |
| => STrace | Sample trace |
| -> PrimDist a | Distribution to sample from |
| -> Addr | Address of current sample site |
| -> Addr | Address of proposal sample site |
| -> Sampler a |
For a given address, look up a sampled value from a sample trace, returning it only if the primitive distribution it was sampled from matches the current one.