Abstract
Given an expression that denotes a probability distribution, often we want a corresponding density function, to use in probabilistic inference. Fortunately, the task of finding a density has been automated. It turns out that we can derive a compositional procedure for finding a density, by equational reasoning about integrals, starting with the mathematical specification of what a density is. Moreover, the density found can be run as an estimation algorithm, as well as simplified as an exact formula to improve the estimate.
- S. Bhat, A. Agarwal, R. Vuduc, and A. Gray. A type theory for probability density functions. In Proceedings of POPL 2012, pages 545–556. ACM Press, 2012. Google Scholar
Digital Library
- S. Bhat, J. Borgström, A. D. Gordon, and C. V. Russo. Deriving probability density functions from probabilistic functional programs. In N. Piterman and S. A. Smolka, editors, Proceedings of TACAS 2013, number 7795 in Lecture Notes in Computer Science, pages 508–522. Springer, 2013. Google Scholar
Digital Library
- R. S. Bird. Tabulation techniques for recursive programs. ACM Computing Surveys, 12(4):403–417, 1980. Google Scholar
Digital Library
- K. Claessen and J. Hughes. QuickCheck: A lightweight tool for random testing of Haskell programs. In Proceedings of ICFP 2000, pages 268– 279. ACM Press, 2000. Google Scholar
Digital Library
- M. J. Fischer. Lambda-calculus schemata. Lisp and Symbolic Computation, 6(3–4):259–288, 1993. Google Scholar
Digital Library
- D. Freedman, R. Pisani, and R. Purves. Statistics. W. W. Norton, fourth edition, 2007.Google Scholar
- J. Gibbons and N. Wu. Folding domain-specific languages: Deep and shallow embeddings (functional pearl). In J. Jeuring and M. M. T. Chakravarty, editors, Proceedings of ICFP 2014, pages 339–347. ACM Press, 2014. Google Scholar
Digital Library
- R. Hinze. Deriving backtracking monad transformers. In Proceedings of ICFP 2000, pages 186–197. ACM Press, 2000. Google Scholar
Digital Library
- J. Hughes. The design of a pretty-printing library. In J. Jeuring and E. Meijer, editors, Advanced Functional Programming: 1st International Spring School on Advanced Functional Programming Techniques, number 925 in Lecture Notes in Computer Science, pages 53–96. Springer, 1995. Google Scholar
Digital Library
- P. J. Landin. The mechanical evaluation of expressions. The Computer Journal, 6(4):308–320, 1964.Google Scholar
Cross Ref
- J. Launchbury. A natural semantics for lazy evaluation. In Proceedings of POPL 1993, pages 144–154. ACM Press, 1993. Google Scholar
Digital Library
- D. J. C. MacKay. Introduction to Monte Carlo methods. In M. I. Jordan, editor, Learning and Inference in Graphical Models. Kluwer, 1998. Google Scholar
Digital Library
- Paperback: Learning in Graphical Models, MIT Press.Google Scholar
- J. Pearl. Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference. Morgan Kaufmann, 1988. Revised 2nd printing, 1998. Google Scholar
Digital Library
- A. Pettorossi. A powerful strategy for deriving efficient programs by transformation. In Proceedings of the 1984 ACM Symposium on Lisp and Functional Programming, pages 273–281. ACM Press, 1984. Google Scholar
Digital Library
- S. Peyton Jones, editor. Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, 2003.Google Scholar
- A. Pfeffer. CTPPL: A continuous time probabilistic programming language. In C. Boutilier, editor, Proceedings of the 21st International Joint Conference on Artificial Intelligence, pages 1943–1950, 2009. Google Scholar
Digital Library
- D. Pollard. A User’s Guide to Measure Theoretic Probability. Cambridge University Press, 2001.Google Scholar
- J. C. Reynolds. Definitional interpreters for higher-order programming languages. In Proceedings of the ACM National Conference, volume 2, pages 717–740. ACM Press, 1972. Google Scholar
Digital Library
- C. Strachey and C. P. Wadsworth. Continuations: A mathematical semantics for handling full jumps. Technical Monograph PRG-11, Programming Research Group, Oxford University Computing Laboratory, 1974.Google Scholar
- L. Tierney. A note on Metropolis-Hastings kernels for general state spaces. The Annals of Applied Probability, 8(1):1–9, 1998.Google Scholar
Cross Ref
- P. L. Wadler. How to replace failure by a list of successes: A method for exception handling, backtracking, and pattern matching in lazy functional languages. In J.-P. Jouannaud, editor, Functional Programming Languages and Computer Architecture, number 201 in Lecture Notes in Computer Science, pages 113–128. Springer, 1985. Google Scholar
Digital Library
Index Terms
Deriving a probability density calculator (functional pearl)
Recommendations
Deriving a probability density calculator (functional pearl)
ICFP 2016: Proceedings of the 21st ACM SIGPLAN International Conference on Functional ProgrammingGiven an expression that denotes a probability distribution, often we want a corresponding density function, to use in probabilistic inference. Fortunately, the task of finding a density has been automated. It turns out that we can derive a ...
A type theory for probability density functions
POPL '12There has been great interest in creating probabilistic programming languages to simplify the coding of statistical tasks; however, there still does not exist a formal language that simultaneously provides (1) continuous probability distributions, (2) ...
A type theory for probability density functions
POPL '12: Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesThere has been great interest in creating probabilistic programming languages to simplify the coding of statistical tasks; however, there still does not exist a formal language that simultaneously provides (1) continuous probability distributions, (2) ...







Comments