- Get acquainted with the concepts of probabilistic programming: sampling, conditioning, and querying.
- Obtain a thorough understanding of the meaning of probabilistic programs.
- Obtain a good understanding about what probabilistic programming offers.
- Acquire a thorough understanding of using randomisation for treating uncertainties in big data.
- Obtain practical experience with a concrete probabilistic programming language (webPPL) and with querying probabilistic data bases.
|
|
This course is about probabilistic programming: a combination of probability theory, statistics, and programming languages. It is used to deal with uncertainties in big data, security, and machine learning. The course covers practical aspects such as programming with webPPL, a probabilistic version of JavaScript, querying probabilistic databases and the link to Bayesian networks. This is complemented by foundational aspects such as formal language semantics (using Markov chains), formal reasoning about probabilistic programs using Hoare-like logics, the halting problem for probabilistic programs, as well as the basics of probabilistic databases.
A detailed account of the planned lectures:
- Introduction (applications of PP, webPPL)
- Semantics (reminder probability theory, Markov chains, semantics pGCL)
- Formal reasoning (weakest pre-conditions, proof rules, connection to semantics)
- Conditioning (Bayes’ rule, semantics, formal reasoning, program transformations)
- Bayesian networks (what are BNs?, Bayesian inference, relation to PP)
- Termination (sorts of termination for PPs, halting problem)
- Probabilistic databases (probabilistic data models, expressiveness, query processing)
- Application: probabilistic data integration (data quality problems, probabilistic modeling of data quality problems, processing feedback)
|
 |
|