This is just a quick summary about what we are working on and thinking about for the next PyMC3 release (v3.2, aiming for Fall, 2017). It is not a promise for any features.
Feel free to chime in and tell us what you think is important, or if we are missingimportant features or improvements.
GSoC
We have three Google Summer of Code projects:
- Improvements to our Gaussian process module
- An implementation for Riemannian HMC
- Work on support for variational methods
Usability
- Improve error messages and warnings.
There are several parts of PyMC3 where error messages can be hard to understand. Especially wheretheano
is involved, the stack trace may get long and hard to follow very quickly. These errors may be about shape mismatches, variables with incorrect support for a parameter, and domain errors during sampling - Mass matrix adaptation in NUTS during tuning (merged on master)
- Choose parametrization when defining a variable (#1924)
At leastCentered
/NonCentered
forNormal
,MvNormal
,StudentT
- Experimental xarray support for traces
- Make a shinystan clone (Dash looks interesting)
Modeling
- Support for ODEs
- A
UnitVector
distribution (uniform) - Direct support for
Truncated
/Censored
distributions without using a potential (#1864) -
LKJCholeskyCorr
(for cases where we’d like to model the correlation, not the covariance,LKJCholeskyCov
is available already) - Fix some deficiencies with
Mixture
and addTruncatedStickBreaking
so we can do nonparametrics more efficiently
Documentation
We are planning some restructuring of the docs. Some of the example notebooks will probably be expanded and moved into the sphinx doc. Also, new sections about eg theano usage in PyMC3.
Internal stuff
- Refactor test suite (there is a lot of stuff that is covered too well, and some that isn’t covered enough)
- Get benchmark suite running (#1829)
- Keep refactoring HMC with an eye towards being able to more easily experiment with, eg, RMHMC, XHMC, an iterative implementation of NUTS
- Better GPU support (for example, #2345)
- Refactoring of
distribution.py
to get better shape handling and stop depending on the theanotest_vals
Cool projects that someone might pick up
- Discontinuous HMC (i.e. Nishimura et al)
- Better samplers for mixtures