Abstract
We introduce inference metaprogramming for probabilistic programming languages, including new language constructs, a formalism, and the rst demonstration of e ectiveness in practice. Instead of relying on rigid black-box inference algorithms hard-coded into the language implementation as in previous probabilistic programming languages, infer- ence metaprogramming enables developers to 1) dynamically decompose inference problems into subproblems, 2) apply in- ference tactics to subproblems, 3) alternate between incorpo- rating new data and performing inference over existing data, and 4) explore multiple execution traces of the probabilis- tic program at once. Implemented tactics include gradient- based optimization, Markov chain Monte Carlo, variational inference, and sequental Monte Carlo techniques. Inference metaprogramming enables the concise expression of proba- bilistic models and inference algorithms across diverse elds, such as computer vision, data science, and robotics, within a single probabilistic programming language.
Supplemental Material
- 2016. Uber Engineering Pyro Announcement. https://eng.uber.com/pyro/. (2016).Google Scholar
- Christophe Andrieu, Nando De Freitas, Arnaud Doucet, and Michael I. Jordan. 2003. An introduction toMCMCfor machine learning. Machine learning 50, 1-2 (2003), 5-43.Google Scholar
- Bob Carpenter, Andrew Gelman, Matt Hoffman, Daniel Lee, Ben Goodrich, Michael Betancourt, Michael A. Brubaker, Jiqiang Guo, Peter Li, and Allen Riddell. 2016. Stan: A probabilistic programming language. Journal of Statistical Software 20 (2016), 1-37.Google Scholar
- P Robert Christian and George Casella. 1999. Monte Carlo statistical methods. (1999).Google Scholar
- Gregory F Cooper. 1990. The computational complexity of probabilistic inference using Bayesian belief networks. Artificial intelligence 42, 2-3 (1990), 393-405. Google Scholar
Digital Library
- Marco. Cusumano-Towner. 2016. Venture implementation of the Cross-Cat method for Automatic Model Discovery for Multivariate Data Tables. http://probcomp.csail.mit.edu/pldi2018/venture-crosscat.tar. (2016).Google Scholar
- Marco F. Cusumano-Towner, Benjamin Bichsel, Timon Gehr, Martin Vechev, and Vikash K. Mansinghka. 2018. Incremental inference for probabilistic programs. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). Google Scholar
Digital Library
- Marco F. Cusumano-Towner and Vikash K. Mansinghka. 2018. Using probabilistic programs as proposals. In Workshop on Probabilistic Programming Languages, Semantics, and Systems (PPS, co-located with POPL).Google Scholar
- Marco F Cusumano-Towner, Alexey Radul, David Wingate, and Vikash K Mansinghka. 2017. Probabilistic programs for inferring the goals of autonomous agents. arXiv preprint arXiv:1704.04977 (2017).Google Scholar
- DARPA. 2017. Probabilistic Programming for Advancing Machine Learning (PPAML). (2017).Google Scholar
- Pierre Del Moral, Arnaud Doucet, and Ajay Jasra. 2006. Sequential monte carlo samplers. Journal of the Royal Statistical Society: Series B (Statistical Methodology) 68, 3 (2006), 411-436.Google Scholar
Cross Ref
- Arnaud Doucet, Nando De Freitas, and Neil Gordon. 2001. An introduction to sequential Monte Carlo methods. In Sequential Monte Carlo methods in practice. Springer, 3-14.Google Scholar
- David A Forsyth and Jean Ponce. 2002. Computer vision: a modern approach. Prentice Hall Professional Technical Reference. Google Scholar
Digital Library
- Hong Ge, Kai Xu, and Zoubin Ghahramani. 2018. Turing: Composable inference for probabilistic programming. In International Conference on Artificial Intelligence and Statistics. 1682-1690.Google Scholar
- Andrew Gelman, John B Carlin, Hal S Stern, David B Dunson, Aki Vehtari, and Donald B Rubin. 2014. Bayesian data analysis. Vol. 2. CRC press Boca Raton, FL.Google Scholar
- Noah Goodman, Vikash Mansinghka, Daniel M Roy, Keith Bonawitz, and Joshua B Tenenbaum. 2008. Church: a language for generative models. In Proceedings of the 25th International Conference on Uncertainty in Artificial Intelligence. Google Scholar
Digital Library
- Noah D. Goodman and Andreas Stuhlmueller. 2014. The Design and Implementation of Probabilistic Programming Languages. http://dippl.org. (2014). Accessed: 2017-11-15.Google Scholar
- Andrew D. Gordon, Thore Graepel, Nicolas Rolland, Claudio Russo, Johannes Borgstrom, and John Guiver. 2014. Tabular: a schema-driven probabilistic programming language. In ACM SIGPLAN Notices, Vol. 49. ACM, 321-334. Google Scholar
Digital Library
- Andrew D. Gordon, Thomas A. Henzinger, Aditya V. Nori, and Sriram K. Rajamani. 2014. Probabilistic programming. In Proceedings of the on Future of Software Engineering. ACM, 167-181. Google Scholar
Digital Library
- Shivam Handa, Vikash Mansinghka, and Martin Rinard. 2018. Probabilistic Programming with Programmable Inference - Tech Report. https://people.csail.mit.edu/rinard/paper/pldi18.techreport.pdf. (2018). Accessed: 2018-05-03.Google Scholar
- Daniel Huang, Jean-Baptiste Tristan, and Greg Morrisett. 2017. Compiling Markov chain Monte Carlo algorithms for probabilistic modeling. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, 111-125. Google Scholar
Digital Library
- Frank R Kschischang, Brendan J Frey, and H-A Loeliger. 2001. Factor graphs and the sum-product algorithm. IEEE Transactions on information theory 47, 2 (2001), 498-519. Google Scholar
Digital Library
- Uber AI Labs. 2017. Pyro, a deep probabilistic programming Language. (2017). https://eng.uber.com/pyro/Google Scholar
- Jun S Liu. 2008. Monte Carlo strategies in scientific computing. Springer Science & Business Media. Google Scholar
Digital Library
- James Robert Lloyd, David K Duvenaud, Roger B Grosse, Joshua B Tenenbaum, and Zoubin Ghahramani. 2014. Automatic Construction and Natural-Language Description of Nonparametric Regression Models. In AAAI. 1242-1250. Google Scholar
Digital Library
- David JC MacKay. 2003. Information theory, inference and learning algorithms. Cambridge university press.Google Scholar
Digital Library
- Marco F. Cusumano-Towner Vikash K. Mansinghka. 2018. A design proposal for Gen: probabilistic programming with fast custom inference via code generation. In Workshop on Machine Learning and Programming Languages (MAPL, co-located with PLDI). Google Scholar
Digital Library
- Vikash Mansinghka, Daniel Selsam, and Yura Perov. 2014. Venture: a higher-order probabilistic programming platform with programmable inference. arXiv preprint arXiv:1404.0099 (2014).Google Scholar
- Vikash Mansinghka, Patrick Shafto, Eric Jonas, Cap Petschulat, Max Gasner, and Joshua B Tenenbaum. 2016. Crosscat: A fully bayesian nonparametric method for analyzing heterogeneous, high dimensional data. The Journal of Machine Learning Research 17, 1 (2016), 4760-4808. Google Scholar
Digital Library
- Vikash K Mansinghka, Tejas D Kulkarni, Yura N Perov, and Josh Tenenbaum. 2013. Approximate Bayesian image interpretation using generative probabilistic graphics programs. In Advances in Neural Information Processing Systems. 1520-1528. Google Scholar
Digital Library
- Brian Milch, Bhaskara Marthi, Stuart Russell, David Sontag, Daniel L. Ong, and Andrey Kolobov. 2007. BLOG: Probabilistic models with unknown objects. Statistical relational learning (2007), 373.Google Scholar
- Thomas P Minka. 2001. Expectation propagation for approximate Bayesian inference. In Proceedings of the Seventeenth conference on Uncertainty in artificial intelligence. Morgan Kaufmann Publishers Inc., 362-369. Google Scholar
Digital Library
- Kevin P Murphy. 2012. Machine learning: a probabilistic perspective. MIT press. Google Scholar
Digital Library
- Lawrence M Murray. 2013. Bayesian state-space modelling on high-performance hardware using LibBi. arXiv preprint arXiv:1306.3277 (2013).Google Scholar
- Avi Pfeffer. 2009. Figaro: An object-oriented probabilistic programming language. Vol. 137. 96.Google Scholar
- Alexey Radul, Anthony Lu, and Vikash. Mansinghka. 2015. Venture solution to DARPA PPAML Challenge Problem 1 on Simultaneous Localization and Mapping. http://probcomp.csail.mit.edu/pldi2018/venture-slam.tar. (2015).Google Scholar
- Rajesh Ranganath, Dustin Tran, Jaan Altosaar, and David Blei. 2016. Operator variational inference. In Advances in Neural Information Processing Systems. 496-504. Google Scholar
Digital Library
- Carl Edward Rasmussen and Christopher KI Williams. 2006. Gaussian processes for machine learning. The MIT Press, Cambridge, MA, USA 38 (2006), 715-719.Google Scholar
Digital Library
- Christian Robert and George Casella. 2010. Introducing Monte Carlo Methods with R. Springer Science & Business Media. Google Scholar
Digital Library
- Stuart J. Russell and Peter Norvig. 2003. Artificial Intelligence: A Modern Approach (2 ed.). Pearson Education. Google Scholar
Digital Library
- Ardavan Saeedi, Vlad Firoiu, and Vikash Mansinghka. 2015. Automatic Inference for Inverting Software Simulators via Probabilistic Programming. arXiv preprint arXiv:1506.00308 (2015).Google Scholar
- John Salvatier, Thomas V Wiecki, and Christopher Fonnesbeck. 2016. Probabilistic programming in Python using PyMC3. PeerJ Computer Science 2 (2016), e55.Google Scholar
Cross Ref
- Ulrich Schaechtle, Feras Saad, Alexey Radul, and Vikash Mansinghka. 2016. Time Series Structure Discovery via Probabilistic Program Synthesis. arXiv preprint arXiv:1611.07051 (2016).Google Scholar
- Ulrich Schaechtle, Feras Saad, Alexey Radul, and Vikash Mansinghka. 2016. Time Series Structure Discovery via Probabilistic Program Synthesis. arXiv preprint arXiv:1611.07051 (2016).Google Scholar
- Sam Staton, Hongseok Yang, Frank Wood, Chris Heunen, and Ohad Kammar. 2016. Semantics for probabilistic programming: higher-order functions, continuous distributions, and soft constraints. In Proceedings of the 31st Annual ACM/IEEE Symposium on Logic in Computer Science. ACM, 525-534. Google Scholar
Digital Library
- Sebastian Thrun, Wolfram Burgard, and Dieter Fox. 2005. Probabilistic robotics. MIT press.Google Scholar
Digital Library
- David Tolpin, Jan-Willem van de Meent, and Frank Wood. 2015. Probabilistic programming in Anglican. In Joint European Conference on Machine Learning and Knowledge Discovery in Databases. Springer, 308-311. Google Scholar
Digital Library
- Dustin Tran, Matthew D. Hoffman, Rif A. Saurous, Eugene Brevdo, Kevin Murphy, and David M. Blei. 2017. Deep Probabilistic Programming. In Proceedings of the 2017 nternational Conference on Learning Representations.Google Scholar
- Dustin Tran, Matthew D Hoffman, Rif A Saurous, Eugene Brevdo, Kevin Murphy, and David M Blei. 2017. Deep probabilistic programming. arXiv preprint arXiv:1701.03757 (2017).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. 2600-2608. Google Scholar
Digital Library
- Martin J Wainwright, Michael I Jordan, et al. 2008. Graphical models, exponential families, and variational inference. Foundations and Trends® in Machine Learning 1, 1-2 (2008), 1-305. Google Scholar
Digital Library
Index Terms
Probabilistic programming with programmable inference
Recommendations
Probabilistic programming with programmable inference
PLDI 2018: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and ImplementationWe introduce inference metaprogramming for probabilistic programming languages, including new language constructs, a formalism, and the rst demonstration of e ectiveness in practice. Instead of relying on rigid black-box inference algorithms hard-coded ...
Gen: a general-purpose probabilistic programming system with programmable inference
PLDI 2019: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and ImplementationAlthough probabilistic programming is widely used for some restricted classes of statistical models, existing systems lack the flexibility and efficiency needed for practical use with more challenging models arising in fields like computer vision and ...
Compiling Stan to generative probabilistic languages and extension to deep probabilistic programming
PLDI 2021: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and ImplementationStan is a probabilistic programming language that is popular in the statistics community, with a high-level syntax for expressing probabilistic models. Stan differs by nature from generative probabilistic programming languages like Church, Anglican, or ...







Comments