| 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] | 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) | (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 | |
| -> 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.