metaprob
metaprob copied to clipboard
An embedded language for probabilistic programming and meta-programming.
VKM: "variational inference on a toy Bayesian linear regression example, with a naive mean field [variational] approximation, using reverse-mode AD [on a subset of Metaprob]" (see https://github.com/probcomp/metaprob-clojure/milestones/5 and https://github.com/probcomp/metaprob-clojure/milestone/4 )
This is one of the last remaining examples that Metaprob needs to support in order to get up to Church or Venture level competence. We've been talking about it since...
The name `trace-get-value` provides consistency with `trace-has-value?` and `trace-set-value`, and provides the correct naming scheme that is expected with the "getters and setters" design pattern.
We already support mutual recursion in two ways: 1. Generative functions defined at the top level, with `def`, can be mutually recursive. (The programmer can use `(declare ...)` to write...
This will hopefully help prevent regressions like the one that #120 fixes.
This fixes two things about the current implementation of `log-categorical`: 1. The scorer for the distribution had been turning a probability, instead of a log probability. 2. The `scores-to-probabilities` function...
In my understanding, a user who is writing a Metaprob `inf` must specify two `gen` procedures: the "sampler" and the "scorer". The sampler is a generative model which specifies the...
https://github.com/probcomp/metaprob/blob/c1a01ea02c51ea0f8fedebd45954914d7645bde9/src/metaprob/distributions.clj#L55-L60 In the scorer, argument `x` should be checked to lie in the interval `[a,b]`.
We've changed how we refer to what is currently called a target trace- they're now called "observation" traces. Update the code to reflect this change.