Bayesian Program Synthesis
   HOME

TheInfoList



OR:

In programming languages and
machine learning Machine learning (ML) is a field of inquiry devoted to understanding and building methods that 'learn', that is, methods that leverage data to improve performance on some set of tasks. It is seen as a part of artificial intelligence. Machine ...
, Bayesian program synthesis (BPS) is a program synthesis technique where Bayesian probabilistic programs automatically construct new Bayesian probabilistic programs. This approach stands in contrast to routine practice in probabilistic programming where human developers manually write new probabilistic programs.


The framework

Bayesian program synthesis (BPS) has been described as a framework related to and utilizing probabilistic programming. In BPS, probabilistic programs are generated that are themselves priors over a space of probabilistic programs. This strategy allows automatic synthesis of new programs via probabilistic inference and is achieved by the composition of modular component programs. The modularity in BPS allows inference to work on and test smaller probabilistic programs before being integrated into a larger model. This framework can be contrasted with the family of automated program synthesis fields, which include
programming by example In computer science, programming by example (PbE), also termed programming by demonstration or more generally as demonstrational programming, is an end-user development technique for teaching a computer new behavior by demonstrating actions on conc ...
and programming by demonstration. The goal in such fields is to find the best program that satisfies some constraint. In traditional program synthesis, for instance, verification of logical constraints reduce the state space of possible programs, allowing more efficient search to find an optimal program. Bayesian program synthesis differs both in that the constraints are probabilistic and the output is itself a distribution over programs that can be further refined. Additionally, Bayesian program synthesis can be contrasted to the work on Bayesian program learning, where probabilistic program components are hand-written, pre-trained on data, and then hand assembled in order to recognize handwritten characters.


See also

* Probabilistic programming language


References


External links

* Commentary on BPS by
David Garrity David (; , "beloved one") (traditional spelling), , ''Dāwūd''; grc-koi, Δαυΐδ, Dauíd; la, Davidus, David; gez , ዳዊት, ''Dawit''; xcl, Դաւիթ, ''Dawitʿ''; cu, Давíдъ, ''Davidŭ''; possibly meaning "beloved one". w ...

Artificial Intelligence to see Significant Progress in 2017
Probability Probability is the branch of mathematics concerning numerical descriptions of how likely an Event (probability theory), event is to occur, or how likely it is that a proposition is true. The probability of an event is a number between 0 and ...
Computer programming Probability interpretations Philosophy of mathematics Philosophy of science User interfaces Programming paradigms {{science-philo-stub