skip to main content
10.1145/3192366.3192409acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Probabilistic programming with programmable inference

Published:11 June 2018Publication History

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.

Skip Supplemental Material Section

Supplemental Material

p603-mansinghka.webm

webm

127.1 MB

References

  1. 2016. Uber Engineering Pyro Announcement. https://eng.uber.com/pyro/. (2016).Google ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle Scholar
  4. P Robert Christian and George Casella. 1999. Monte Carlo statistical methods. (1999).Google ScholarGoogle Scholar
  5. Gregory F Cooper. 1990. The computational complexity of probabilistic inference using Bayesian belief networks. Artificial intelligence 42, 2-3 (1990), 393-405. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle Scholar
  10. DARPA. 2017. Probabilistic Programming for Advancing Machine Learning (PPAML). (2017).Google ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarCross RefCross Ref
  12. 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 ScholarGoogle Scholar
  13. David A Forsyth and Jean Ponce. 2002. Computer vision: a modern approach. Prentice Hall Professional Technical Reference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle Scholar
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. Noah D. Goodman and Andreas Stuhlmueller. 2014. The Design and Implementation of Probabilistic Programming Languages. http://dippl.org. (2014). Accessed: 2017-11-15.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. Uber AI Labs. 2017. Pyro, a deep probabilistic programming Language. (2017). https://eng.uber.com/pyro/Google ScholarGoogle Scholar
  24. Jun S Liu. 2008. Monte Carlo strategies in scientific computing. Springer Science & Business Media. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. David JC MacKay. 2003. Information theory, inference and learning algorithms. Cambridge university press.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle Scholar
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle Scholar
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. Kevin P Murphy. 2012. Machine learning: a probabilistic perspective. MIT press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Lawrence M Murray. 2013. Bayesian state-space modelling on high-performance hardware using LibBi. arXiv preprint arXiv:1306.3277 (2013).Google ScholarGoogle Scholar
  35. Avi Pfeffer. 2009. Figaro: An object-oriented probabilistic programming language. Vol. 137. 96.Google ScholarGoogle Scholar
  36. 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 ScholarGoogle Scholar
  37. Rajesh Ranganath, Dustin Tran, Jaan Altosaar, and David Blei. 2016. Operator variational inference. In Advances in Neural Information Processing Systems. 496-504. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Carl Edward Rasmussen and Christopher KI Williams. 2006. Gaussian processes for machine learning. The MIT Press, Cambridge, MA, USA 38 (2006), 715-719.Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Christian Robert and George Casella. 2010. Introducing Monte Carlo Methods with R. Springer Science & Business Media. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Stuart J. Russell and Peter Norvig. 2003. Artificial Intelligence: A Modern Approach (2 ed.). Pearson Education. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Ardavan Saeedi, Vlad Firoiu, and Vikash Mansinghka. 2015. Automatic Inference for Inverting Software Simulators via Probabilistic Programming. arXiv preprint arXiv:1506.00308 (2015).Google ScholarGoogle Scholar
  42. John Salvatier, Thomas V Wiecki, and Christopher Fonnesbeck. 2016. Probabilistic programming in Python using PyMC3. PeerJ Computer Science 2 (2016), e55.Google ScholarGoogle ScholarCross RefCross Ref
  43. 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 ScholarGoogle Scholar
  44. 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 ScholarGoogle Scholar
  45. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  46. Sebastian Thrun, Wolfram Burgard, and Dieter Fox. 2005. Probabilistic robotics. MIT press.Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  48. 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 ScholarGoogle Scholar
  49. 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 ScholarGoogle Scholar
  50. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  51. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Probabilistic programming with programmable inference

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        PLDI 2018: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
        June 2018
        825 pages
        ISBN:9781450356985
        DOI:10.1145/3192366

        Copyright © 2018 Owner/Author

        Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 11 June 2018

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate406of2,067submissions,20%

        Upcoming Conference

        PLDI '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader