#### Learning and Cognitive Systems

# Probabilistic (Bayesian) Programming

“The flexible and effcient representation of *uncertainty* is now considered a central problem of AI.

The emphasis on *deductive, rule-based reasoning* that characterized the so-called *good old fashioned AI* gave way after the realization that *inductive reasoning*, and in particular *probabilistic inference*, was far more useful for building *adaptive* systems with access to only *partial* information.

More recently, it has become clear that in order to *model complex phenomena* like vision, communication and planning, we need a *representation of uncertainty* that is powerful enough to capture very general stochastic processes.

In particular, the *graphical model formalism* that ushered in an era of rapid progress in AI has proven inadequate in the face of these new challenges. A promising new approach that aims to bridge this gap is *probabilistic programming*, which marries probability theory, statistics and programming languages” (Roy, 2011, p.16, Computability, inference and modeling in probabilistic programming).

"...**Users specify a probabilistic model in its entirety (e.g., by writing code that generates a sample from the joint distribution) and inference follows automatically given the specification.**

Probabilistic Programming Languages (PPL) provide the full power of modern programming languages for describing complex distributions, and can enable reuse of libraries of models, support interactive modeling and formal verification, and provide a much-needed abstraction barrier to foster generic, efficient inference in universal model classes." (http://probabilistic-programming.org/wiki/Home)

Here we present *generative Bayesian models* embedded in WebPPL, WebCHURCH, OpenBUGS, Figaro, PROBT, and R for cognitive and reactive aspects of agents' behavior and the development of assistance systems. Generative models are typically *causal models*. They abstractly represent causal processes in the real world and possess the ability to generate data or evaluate their likelihood.