3,694 research outputs found
The Magic of Logical Inference in Probabilistic Programming
Today, many different probabilistic programming languages exist and even more
inference mechanisms for these languages. Still, most logic programming based
languages use backward reasoning based on SLD resolution for inference. While
these methods are typically computationally efficient, they often can neither
handle infinite and/or continuous distributions, nor evidence. To overcome
these limitations, we introduce distributional clauses, a variation and
extension of Sato's distribution semantics. We also contribute a novel
approximate inference method that integrates forward reasoning with importance
sampling, a well-known technique for probabilistic inference. To achieve
efficiency, we integrate two logic programming techniques to direct forward
sampling. Magic sets are used to focus on relevant parts of the program, while
the integration of backward reasoning allows one to identify and avoid regions
of the sample space that are inconsistent with the evidence.Comment: 17 pages, 2 figures, International Conference on Logic Programming
(ICLP 2011
Probabilistic Programming Concepts
A multitude of different probabilistic programming languages exists today,
all extending a traditional programming language with primitives to support
modeling of complex, structured probability distributions. Each of these
languages employs its own probabilistic primitives, and comes with a particular
syntax, semantics and inference procedure. This makes it hard to understand the
underlying programming concepts and appreciate the differences between the
different languages. To obtain a better understanding of probabilistic
programming, we identify a number of core programming concepts underlying the
primitives used by various probabilistic languages, discuss the execution
mechanisms that they require and use these to position state-of-the-art
probabilistic languages and their implementation. While doing so, we focus on
probabilistic extensions of logic programming languages such as Prolog, which
have been developed since more than 20 years
Beyond the grounding bottleneck: Datalog techniques for inference in probabilistic logic programs
State-of-the-art inference approaches in probabilistic logic programming
typically start by computing the relevant ground program with respect to the
queries of interest, and then use this program for probabilistic inference
using knowledge compilation and weighted model counting. We propose an
alternative approach that uses efficient Datalog techniques to integrate
knowledge compilation with forward reasoning with a non-ground program. This
effectively eliminates the grounding bottleneck that so far has prohibited the
application of probabilistic logic programming in query answering scenarios
over knowledge graphs, while also providing fast approximations on classical
benchmarks in the field
Probabilistic (logic) programming concepts
A multitude of different probabilistic programming languages exists today, all extending a traditional programming language with primitives to support modeling of complex, structured probability distributions. Each of these languages employs its own probabilistic primitives, and comes with a particular syntax, semantics and inference procedure. This makes it hard to understand the underlying programming concepts and appreciate the differences between the different languages. To obtain a better understanding of probabilistic programming, we identify a number of core programming concepts underlying the primitives used by various probabilistic languages, discuss the execution mechanisms that they require and use these to position and survey state-of-the-art probabilistic languages and their implementation. While doing so, we focus on probabilistic extensions of logic programming languages such as Prolog, which have been considered for over 20 years
- …