ABSTRACT
Inspired by earlier work on Augur, Vate is a probabilistic programming language for the construction of JVM based probabilistic models with an Object-Oriented interface. As a compiled language it is able to examine the dependency graph of the model to produce optimised code that can be dynamically targeted to different platforms. Using Gibbs Sampling, Metropolis-Hastings and variable marginalisation it can handle a range of model types and is able to efficiently infer values, estimate probabilities, and execute models.
- Eli Bingham, Jonathan P. Chen, Martin Jankowiak, Fritz Obermeyer, Neeraj Pradhan, Theofanis Karaletsos, Rohit Singh, Paul Szerlip, Paul Horsfall, and Noah D. Goodman. 2019. Pyro: Deep Universal Probabilistic Programming. J. Mach. Learn. Res. 20, 1 (Jan. 2019), 973--978.Google Scholar
- Bob Carpenter, Andrew Gelman, Matthew D Hoffman, Daniel Lee, Ben Goodrich, Michael Betancourt, Marcus Brubaker, Jiqiang Guo, Peter Li, and Allen Riddell. 2017. Stan: A probabilistic programming language. Journal of statistical software 76, 1 (2017).Google ScholarCross Ref
- Stuart Geman and Donald Geman. 1984. Stochastic Relaxation, Gibbs Distributions, and the Bayesian Restoration of Images. IEEE Trans. Pattern Anal. Mach. Intell. 6, 6 (Nov. 1984), 721--741. https://doi.org/10.1109/TPAMI.1984.4767596Google Scholar
- Noah D. Goodman. 2013. The Principles and Practice of Probabilistic Programming. In Proceedings of the 40th Annual ACM SIGPLANSIGACT Symposium on Principles of Programming Languages (Rome, Italy) (POPL '13). Association for Computing Machinery, New York, NY, USA, 399--402. https://doi.org/10.1145/2429069.2429117Google ScholarDigital Library
- Noah D. Goodman, Vikash K. Mansinghka, Daniel Roy, Keith Bonawitz, and Joshua B. Tenenbaum. 2008. Church: A Language for Generative Models. In Proceedings of the Twenty-Fourth Conference on Uncertainty in Artificial Intelligence (Helsinki, Finland) (UAI'08). AUAI Press, Arlington, Virginia, USA, 220--229.Google ScholarDigital Library
- Maria I. Gorinova, Andrew D. Gordon, and Charles Sutton. 2019. Probabilistic Programming with Densities in SlicStan: Efficient, Flexible, and Deterministic. Proc. ACM Program. Lang. 3, POPL, Article 35 (Jan. 2019), 30 pages. https://doi.org/10.1145/3290348Google ScholarDigital Library
- Robert J. B. Goudie, Rebecca M. Turner, Daniela De Angelis, and Andrew Thomas. 2020. MultiBUGS: A Parallel Implementation of the BUGS Modeling Framework for Faster Bayesian Inference. Journal of Statistical Software 95, 7 (2020). https://doi.org/10.18637/jss.v095.i07Google ScholarCross Ref
- Tim Harris and Stefan Kaestle. 2015. Callisto-RTS: Fine-Grain Parallel Loops. In 2015 USENIX Annual Technical Conference (USENIX ATC 15). USENIX Association, Santa Clara, CA, 45--56. https://www.usenix.org/conference/atc15/technical-session/presentation/harrisGoogle Scholar
- W. K. Hastings. 1970. Monte Carlo Sampling Methods Using Markov Chains and Their Applications. Biometrika 57, 1 (1970), 97--109. http://www.jstor.org/stable/2334940Google ScholarCross Ref
- Doug Lea. 2000. A Java Fork/Join Framework. In Proceedings of the ACM 2000 Conference on Java Grande (San Francisco, California, USA) (JAVA '00). Association for Computing Machinery, New York, NY, USA, 36--43. https://doi.org/10.1145/337449.337465Google ScholarDigital Library
- Lawrence M. Murray and Thomas B. Schön. 2020. Automated learning with a probabilistic programming language: Birch. arXiv:1810.01539 [stat.ML]Google Scholar
- Martyn Plummer. 2003. JAGS: A program for analysis of Bayesian graphical models using Gibbs sampling.Google Scholar
- John Salvatier, Thomas V. Wiecki, and Christopher Fonnesbeck. 2016. Probabilistic programming in Python using PyMC3. PeerJ Computer Science 2 (apr 2016), e55. https://doi.org/10.7717/peerj-cs.55Google Scholar
- Nazanin Tehrani, Nimar S. Arora, Yucen Lily Li, Kinjal Divesh Shah, David Noursi, Michael Tingley, Narjes Torabi, Sepehr Masouleh, Eric Lippert, and Erik Meijer. 2020. Bean Machine: A Declarative Probabilistic Programming Language For Efficient Programmable Inference. In Proceedings of the 10th International Conference on Probabilistic Graphical Models (Proceedings of Machine Learning Research, Vol. 138), Manfred Jaeger and Thomas Dyhre Nielsen (Eds.). PMLR, 485--496. http://proceedings.mlr.press/v138/tehrani20a.htmlGoogle Scholar
- Andrew Thomas, David J Spiegelhalter, and WR Gilks. 1992. BUGS: A program to perform Bayesian inference using Gibbs sampling. Bayesian statistics 4 (1992), 837--842.Google Scholar
- David Tolpin, Jan Willem van de Meent, Hongseok Yang, and Frank Wood. 2016. Design and Implementation of Probabilistic Programming Language Anglican. arXiv preprint arXiv:1608.05263 (2016).Google Scholar
- Dustin Tran, Alp Kucukelbir, Adji B. Dieng, Maja Rudolph, Dawen Liang, and David M. Blei. 2016. Edward: A library for probabilistic modeling, inference, and criticism. arXiv preprint arXiv:1610.09787 (2016).Google Scholar
- Jean-Baptiste Tristan, Daniel Huang, Joseph Tassarotti, Adam C Pocock, Stephen Green, and Guy L Steele. 2014. Augur: Data-Parallel Probabilistic Modeling. In Advances in Neural Information Processing Systems, Z. Ghahramani, M. Welling, C. Cortes, N. Lawrence, and K. Q. Weinberger (Eds.), Vol. 27. Curran Associates, Inc., 2600--2608. https://proceedings.neurips.cc/paper/2014/file/cf9a242b70f45317ffd281241fa66502-Paper.pdfGoogle Scholar
- John Winn and Tom Minka. 2009. Probabilistic Programming with Infer.NET. https://www.microsoft.com/en-us/research/publication/probabilistic-programming-infer-net/Google Scholar
Recommendations
What are the Odds?: probabilistic programming in Scala
SCALA '13: Proceedings of the 4th Workshop on ScalaProbabilistic programming is a powerful high-level paradigm for probabilistic modeling and inference. We present Odds, a small domain-specific language (DSL) for probabilistic programming, embedded in Scala. Odds provides first-class support for random ...
JOPI: a Java object-passing interface
JGI '02: Proceedings of the 2002 joint ACM-ISCOPE conference on Java GrandeRecently there has been an increasing interest in developing parallel programming capabilities in Java to harness the vast resources available in clusters, grids and heterogeneous networked systems. In this paper, we introduce a Java object-passing ...
JOPI: a Java object-passing interface: Research Articles
2002 ACM Java Grande–ISCOPE Conference Part IIRecently there has been an increasing interest in developing parallel programming capabilities in Java to harness the vast resources available in clusters, grids and heterogeneous networked systems. In this paper, we introduce a Java object-passing ...
Comments