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 ScholarDigital 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 ScholarDigital 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 ScholarCross 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- David JC MacKay. 2003. Information theory, inference and learning algorithms. Cambridge university press.Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- Kevin P Murphy. 2012. Machine learning: a probabilistic perspective. MIT press. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- Christian Robert and George Casella. 2010. Introducing Monte Carlo Methods with R. Springer Science & Business Media. Google ScholarDigital Library
- Stuart J. Russell and Peter Norvig. 2003. Artificial Intelligence: A Modern Approach (2 ed.). Pearson Education. Google ScholarDigital 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 ScholarCross 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 ScholarDigital Library
- Sebastian Thrun, Wolfram Burgard, and Dieter Fox. 2005. Probabilistic robotics. MIT press.Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
Index Terms
- Probabilistic programming with programmable inference
Recommendations
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 ...
Probabilistic programming with programmable inference
PLDI '18We 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 ...
Probabilistic abductive logic programming using Dirichlet priors
Probabilistic programming is an area of research that aims to develop general inference algorithms for probabilistic models expressed as probabilistic programs whose execution corresponds to inferring the parameters of those models. In this paper, we ...
Comments