Releases: probmods/webppl
v0.9.15
v0.9.14
v0.9.13
v0.9.10
New Features
- Node.js core modules can now be imported using the
--require
command line argument. (docs) - Added support for constructing kernel density estimates from the marginal returned by sampling based inference methods. (docs)
- Add the
Mixture
distribution. (docs)
Enhancements
- Improved argument checks for
sample
and distribution constructors. - Documentation updates.
v0.9.9
v0.9.8
Breaking Changes
Optimize
no longer supports the checkpointParams
option
See the new
file backed parameter store
for similar functionality.
Parameter serialization format
The format in which parameters are serialized has changed. As a
result, parameters serialized with 0.9.7 and earlier cannot be loaded
directly into 0.9.8. As a work-around, the following script can be
used to convert old parameters into the new format:
Node v4 is no longer supported
New Features
Add Laplace distribution primitives
- http://docs.webppl.org/en/master/distributions.html#Laplace
- http://docs.webppl.org/en/master/distributions.html#TensorLaplace
More flexible parameter initialization
The param
method now supports an init
option which allows fine
grained control over the initialization of parameters.
Automatic selection of inference method
When no method
is specified when calling Infer
, heuristics are
used to automatically select a reasonable method for the current
model.
Add support for weight decay
Add onStep
callback to Optimize
Add forward
and forwardGuide
methods
These provide a convenient way to generate a single sample from the
model or guide.
- http://docs.webppl.org/en/master/functions/other.html#forward
- http://docs.webppl.org/en/master/functions/other.html#forwardGuide
Add file backed parameter store
Add official support for command line arguments
Allow the ps
parameter to be omitted from Categorical
Warn on superfluous options
Infer
and Optimize
now issue a warning when passed superfluous
options.
Bug Fixes
Fix Poisson sampler
Correctly optimize parameters nested within Enumerate
v0.9.7
New Features
Distribution arg checks
Distribution arguments are now checked at run time. For example, trying to create a Bernoulli distribution with success probability of -1 will now produce the following error:
Bernoulli({p: -1});
// => Error: Parameter "p" should be of type "real [0, 1]".
The docs include a list of parameters and the values they can take for each distribution.
Built-in functions
Added:
Breaking Changes
Switch to lodash
The global variable _
is now bound to lodash rather than underscore in WebPPL programs. Many of the functions available as properties of _
will continue to work as before, but there are some breaking changes. This (non-exhaustive) list of differences between the two describes many of the changes. One change it doesn't mention is that _.object
is no longer available, though _.fromPairs
offers the same functionality.
Global parameter set
Optimize
and the Infer
methods forward
and SMC
now implicitly operate on a global set of parameters, rather than on parameters passed via an argument.
Guide thunks
sample
now expects guide distributions to be wrapped in a function of zero arguments. For example:
sample(dist, {guide: guideDist})
should now be written:
sample(dist, {guide: function() { return guideDist; }});
See the docs for more.
SMC ignoreGuide
option
The ignoreGuide
option of SMC has been replaced with a new importance
option. See the docs for details of this new option.