7 ms·
Stan and PyMC3 both implement automatic differentiation based variational inference, so you can write down your statistical model and not care "much" about deri
by marmaduke 10y ago
Stan and PyMC3 both implement automatic differentiation based variational inference, so you can write down your statistical model and not care "much" about derivatives.
http://mc-stan.org http://mc-stan.org
https://github.com/pymc-devs/pymc3 https://github.com/pymc-devs/pymc3
- AlexCoventry 10y agoThere's also the TensorFlow-based Edward: https://github.com/blei-lab/edward https://github.com/blei-lab/edward
- proditus 10y agostan and edward dev here. happy to answer any questions. (shakir's blog posts are amazing; i recommend them all.)
- marmaduke 10y agoWhoa cool but the build is failing tisk tisk. A big issue I ran into with stan even with advi was scaling to large datasets since it (and Eigen) are single threaded. Would Edward answer all my prayers? When is Riemannian HMC going to arrive?
- proditus 10y agoi'm assuming you're referring to building edward? installation is a bit of a pain because tensorflow is not on pypi yet. please take a look here: http://edwardlib.org/troubleshooting http://edwardlib.org/troubleshooting edward should answer some of your prayers :) there's still some time until stan goes parallel/gpu, though there's lots of interest there. riemannin hmc is likely just around the corner!
- murbard2 10y agoVery cool, many questions 1) Why create a project distinct from Stan? Was it the prospect of benefiting of all the work going into TF and focus solely on the sampling procedures rather than autodiff or GPU integration? 2) Are you implementing NUTS? 3) Any plans to implement parallel tempering 4) Any plans to handle "tall" data using stochastic estimates of the likelihood?
- proditus 10y agogreat questions. 1. you touch upon the right strengths of TF; that was certainly one consideration. edward is designed to address two goals that complement stan. the first is to be a platform for inference research: as such, edward is primarily a tool for machine learning researchers. the second is to support a wider class of models than stan (at the cost of not offering a "works out of the box" solution). our recent whitepaper explains these goals in a bit more detail: https://arxiv.org/pdf/1610.09787.pdf https://arxiv.org/pdf/1610.09787.pdf 2) no immediate plans. but we have HMC and are looking for volunteers :) 3) same answer as above :) should be relatively easy to implement tempering. 4) this is already in the works! stay tuned!
- marmaduke 10y agoWhy TF instead of Theano as PyMC3 has done? Shouln't it be straightforward to port PyMC3 algos over TF? My main gripe with Theano is that OpenCL support is near non-existent, but this is also the case with TF.
- murbard2 10y ago4) which approach are you using? Generalized Poisson Estimator, or estimating the convexity effect of the exponential by looking at the sample variance of the log likelihood? The former is more pure, the latter may be more practical if ugly.
- proditus 10y agotheses are great insights. our first approach is the simplest: stochastic variational inference. consider a likelihood that factorizes over datapoints. stochastic variational inference then computes stochastic gradients of the variational objective function at each iteration by subsampling a "minibatch" of data at random. i reckon the techniques you suggest would work as we move forward!
- eli_gottlieb 10y agoWhat's the impediment to porting these variational algorithms over to a Turing-complete probabilistic programming language?
- marmaduke 10y agoStan is Turing complete or you mean.. inception??
- eli_gottlieb 10y agoSo I can write a Church to Stan compiler, in principle?
- marmaduke 10y agoYes, you would either generate Stan code or rewrite your AST into something the Stan compiler understands. However, if Church allows you to express non differentiable models (e.g. if you have a Heaviside function), then they will either fail or not work well with HMC or ADVI (the variational inference algorithm Stan uses), because both assume that gradient of the posterior can be computed and is informative about the posterior.