Lably
Skip to content

ProbLog

  • 3 min read
  • 4 chapters

Related on Lably

Through Random variable and Probability

Semantics

A probabilistic fact is a pair (p,a) with a a ground atom and p∈[0,1] the probability of a being true. A rule is defined by an atom h, called the head, and a finite set of n literals {b1,b2,...,bn}, called the body. ProbLog programs consist of a set of probabilistic facts F and a set of rules R. Using the distribution semantics, a probability distribution is defined over the two-valued well-founded models of the atoms in the program. The probability of a model is defined as P(M)=∏l∈MP(l) where the product runs over all the literals in the model M. For a query atom q the distribution semantics defines a probability for the query P(q)=∑M⊨qP(M)=∑M⊨q∏l∈MP(l) in which the sum runs over all the models where q is true.

ProbLog supports multiple tasks:

  • Probabilistic inference: calculate P(q)
  • Most probable explanation: calculate the most probable model probability maxM⊨qP(M)
  • Sampling: generate samples of q
  • Learning from interpretations: learn the probabilities of ProbLog programs from data

Example

ProbLog can for example be used to calculate the probability of getting wet given the probabilities for rain and the probabilities that someone brings an umbrella as follows:

<span id="mwOA"></span><span class="mf" id="mwOQ">0.4</span> <span class="s s-Atom" id="mwOg">::</span> <span class="nf" id="mwOw">rain</span><span class="p" id="mwPA">(</span><span class="s s-Atom" id="mwPQ">weekday</span><span class="p" id="mwPg">).</span> <span class="mf" id="mwPw">0.9</span> <span class="s s-Atom" id="mwQA">::</span> <span class="nf" id="mwQQ">rain</span><span class="p" id="mwQg">(</span><span class="s s-Atom" id="mwQw">weekend</span><span class="p" id="mwRA">).</span> <span class="mf" id="mwRQ">0.8</span> <span class="s s-Atom" id="mwRg">::</span> <span class="nf" id="mwRw">umbrella_if_rainy</span><span class="p" id="mwSA">(</span><span class="nv" id="mwSQ">Day</span><span class="p" id="mwSg">).</span> <span class="mf" id="mwSw">0.2</span> <span class="s s-Atom" id="mwTA">::</span> <span class="nf" id="mwTQ">umbrella_if_dry</span><span class="p" id="mwTg">(</span><span class="nv" id="mwTw">Day</span><span class="p" id="mwUA">).</span> <span class="nf" id="mwUQ">umbrella</span><span class="p" id="mwUg">(</span><span class="nv" id="mwUw">Day</span><span class="p" id="mwVA">)</span> <span class="p" id="mwVQ">:-</span> <span class="nf" id="mwVg">rain</span><span class="p" id="mwVw">(</span><span class="nv" id="mwWA">Day</span><span class="p" id="mwWQ">),</span> <span class="nf" id="mwWg">umbrella_if_rainy</span><span class="p" id="mwWw">(</span><span class="nv" id="mwXA">Day</span><span class="p" id="mwXQ">).</span> <span class="nf" id="mwXg">umbrella</span><span class="p" id="mwXw">(</span><span class="nv" id="mwYA">Day</span><span class="p" id="mwYQ">)</span> <span class="p" id="mwYg">:-</span> <span class="s s-Atom" id="mwYw">\+</span><span class="nf" id="mwZA">rain</span><span class="p" id="mwZQ">(</span><span class="nv" id="mwZg">Day</span><span class="p" id="mwZw">),</span> <span class="nf" id="mwaA">umbrella_if_dry</span><span class="p" id="mwaQ">(</span><span class="nv" id="mwag">Day</span><span class="p" id="mwaw">).</span> <span class="nf" id="mwbA">wet</span><span class="p" id="mwbQ">(</span><span class="nv" id="mwbg">Day</span><span class="p" id="mwbw">)</span> <span class="p" id="mwcA">:-</span> <span class="nf" id="mwcQ">rain</span><span class="p" id="mwcg">(</span><span class="nv" id="mwcw">Day</span><span class="p" id="mwdA">),</span> <span class="s s-Atom" id="mwdQ">\+</span><span class="nf" id="mwdg">umbrella</span><span class="p" id="mwdw">(</span><span class="nv" id="mweA">Day</span><span class="p" id="mweQ">).</span> <span class="nf" id="mweg">query</span><span class="p" id="mwew">(</span><span class="s s-Atom" id="mwfA">\+</span><span class="nf" id="mwfQ">wet</span><span class="p" id="mwfg">(</span><span class="s s-Atom" id="mwfw">weekend</span><span class="p" id="mwgA">)).</span>

The last rule before the query states that someone gets wet if it rains and no umbrella was brought. When ProbLog is asked to solve the "probabilistic inference" task, the query asks for the probability to stay dry on a weekend day. When solving the "most probable explanation" task, ProbLog will return the most likely reason for staying dry, i.e. because it is not raining or because the person has an umbrella.

Sign in to keep reading

3 more chapters are free with a Lably account.

More in Computing and communication