4 ms·
don't forget tensorflow probability and pyro. I think 'probabilistic programming' is potentially one of the next popular paradigms of programming (or perhaps d
by fault1 5y ago
don't forget tensorflow probability and pyro.
I think 'probabilistic programming' is potentially one of the next popular paradigms of programming (or perhaps data science), especially with stuff like copilot. In this space, Julia can potentially shine relative to the current incumbents, since the focus on whole language JIT + lispyness really mixes very naturally to the style of the staged programming that is necessary for more complex probabilistic models. It also has one of the nicest libs for it (Turing), which is stan-like, but allows for more advanced models: https://turing.ml/stable/ https://turing.ml/stable/
My Julia-fu is weak compared to my Python or R-fu (or even C++), but the ecosystem is pretty innovative, if still immature (I would love more gradual typing tools).
- nextos 5y agoSure, Pyro is very nice for some deep latent probabilistic models. E.g. deep HMMs. So great to model complex time series and space-state models. Edward and TensorFlow Probability are theoretically also good for this, but docs are a bit lacking. Turing is very user friendly, but in my experience really hard to scale to large hierarchical (multilevel) continuous variable models, which is what Stan was designed for. It can do lots of other things, like e.g. Bayesian NNs (Turing + Flux). And it's good for learning. I've prototyped lots of models on Turing, but I have had to eventually migrate them to Stan as I struggled a lot with efficiency once I tried to scale to a massive number of variables (think e.g. a proteomics experiment).