Bayesian network

A Bayesian network is a form of probabilistic graphical model, also known as Bayesian belief network or just belief network.

A Bayesian network can be represented by a graph (as in graph theory) with probabilities attached. Thus, a Bayesian network represents a set of variables together with a joint probability distribution with explicit independence assumptions.

Definition
A Bayesian network is a directed acyclic graph whose
 * nodes represent variables,
 * arcs represent statistical dependence relations among the variables and local probability distributions for each variable given values of its parents.

Nodes can represent any kind of variable, be it a measured parameter, a latent variable or a hypothesis. They are not restricted to representing random variables; this is what is "Bayesian" about a Bayesian network.

If there is an arc from node A to another node B, then variable B depends directly on variable A, and A is called a parent of B. If for each variable Xi, i= 1 to n, the set of parent variables is denoted by parents(Xi) then the joint distribution of the variables is product of the local distributions
 * $$Pr(X_1, \ldots, X_n) = \prod_{i=1}^n Pr(X_i \mid \operatorname{parents}(X_i))$$

If Xi has no parents, its local probability distribution is said to be unconditional, otherwise it is conditional. If the variable represented by a node is observed, then the node is said to be an evidence node.

Questions about incongruent dependence among variables can be answered by studying the graph alone. It can be shown that conditional independence is represented in the graph by the graphical property of d-separation: nodes X and Y are d-separated in the graph, given specified evidence nodes, if and only if variables X and Y are independent given the corresponding evidence variables. The set of all other nodes on which node X can directly depend is given by X's Markov blanket.

One advantage of Bayesian networks is that it is intuitively easier for a human to understand direct dependencies and local distributions than complete joint distribution.

Example


If there are two reasons which could cause grass to be wet, either the sprinkler is on or it's raining, then the situation can be modelled with adjacent Bayesian network. Here, all variables have two possible states T (for true) and F (for false).

The joint probability function is
 * Pr(GRASSWET, SPRINKLER, RAIN) = Pr(GRASSWET | SPRINKLER, RAIN) Pr(SPRINKLER | RAIN) Pr(RAIN)

The model can answer questions like "What is the likelihood that it is raining, given the grass is wet?" by using the conditional probability formula and summing over all nuisance variables:
 * $$Pr(\mathit{RAIN}=T \mid \mathit{GRASSWET}=T) = \frac{Pr(\mathit{GRASSWET}=T, \mathit{RAIN}=T)}{Pr(\mathit{GRASSWET}=T)}$$
 * $$= \frac{\sum_{\mathit{SPRINKLER} \in \{T, F\}} Pr(\mathit{GRASSWET}=T, \mathit{SPRINKLER}, \mathit{RAIN}=T)}{\sum_{\mathit{SPRINKLER}, \mathit{RAIN} \in \{T, F\}} Pr(\mathit{GRASSWET}=T, \mathit{SPRINKLER}, \mathit{RAIN})}$$

Substituting numerical values yields Pr(RAIN=T | GRASSWET=T) = 891/2491 ≈ 35.77%.

Causal Bayesian networks
A causal Bayesian network is a Bayesian network where the directed arcs of the graph are interpreted as representing causal relations in some real domain. The directed arcs do not have to be interpreted as representing causal relations; however in practice knowledge about causal relations is very often used as a guide in drawing Bayesian network graphs, thus resulting in causal Bayesian networks.

Structure learning
In the simplest case, a Bayesian network is specified by an expert and is then used to perform inference. In other applications the task of defining the network is too complex for humans. In this case the network structure and the parameters of the local distributions must be learned from data.

Learning the structure of a Bayesian network (i.e., the graph) is a very important part of machine learning. Assuming that the data is generated from a Bayesian network and that all the variables are visible in every iteration, optimization based search method can be used to find the structure of the network. It requires a scoring function and a search strategy. A common scoring function is posterior probability of the structure given the training data. The time requirement of an exhaustive search returning back a structure that maximizes the score is superexponential in the number of variables. A local search strategy makes incremental changes aimed at improving the score of the structure. A global search algorithm like Markov chain Monte Carlo can avoid getting trapped in local minima. Friedman et al. talk about using mutual information between variables and finding a structure that maximizes this. They do this by restricting the parent candidate set to k nodes and exhaustively searching therein.

Parameter learning
In order to fully specify the Bayesian network and thus fully represent the joint probability distribution, it is necessary to further specify for each node X the probability distribution for X conditional upon X's parents. The distribution of X conditional upon its parents may have any form. It is common to work with discrete or Gaussian Distributions since that simplifies calculations. Sometimes only constraints on a distribution are known; one can then use the principle of maximum entropy to determine a single distribution, the one with the greatest entropy given the constraints. (Analogously, in the specific context of a dynamic Bayesian network, one commonly specifies the conditional distribution for the hidden state's temporal evolution to maximize the entropy rate of the implied stochastic process.)

Often these conditional distributions include parameters which are unknown and must be estimated from data, sometimes using the maximum likelihood approach. Direct maximization of the likelihood (or of the posterior probability) is often complex when there are unobserved variables. A classical approach to this problem is the expectation-maximization algorithm which alternates computing expected values of the unobserved variables conditional on observed data, with maximizing the complete likelihood (or posterior) assuming that previously computed expected values are correct. Under mild regularity conditions this process converges on maximum likelihood (or maximum posterior) values for parameters. A more fully Bayesian approach to parameters is to treat parameters as additional unobserved variables and to compute a full posterior distribution over all nodes conditional upon observed data, then to integrate out the parameters. This approach can be expensive and lead to large dimension models, so in practise classical parameter-setting approaches are more common.

Inference
Because a Bayesian network is a complete model for the variables and their relationships, it can be used to answer probabilistic queries about them. For example, the network can be used to find out updated knowledge of the state of a subset of variables when other variables (the evidence variables) are observed. This process of computing the posterior distribution of variables given evidence is called probabilistic inference. The posterior gives a universal sufficient statistic for detection applications, when one wants to choose values for the variable subset which minimize some expected loss function, for instance the probability of decision error. A Bayesian network can thus be considered a mechanism for automatically constructing extensions of Bayes' theorem to more complex problems.

The most common exact inference methods are variable elimination, which eliminates (by integration or summation) the non-observed non-query variables one by one by distributing the sum over the product; clique tree propagation, which caches the computation so that many variables can be queried at one time and new evidence can be propagated quickly; and recursive conditioning, which allows for a space-time tradeoff and matches the efficiency of variable elimination when enough space is used. All of these methods have complexity that is exponential in the network's treewidth. The most common approximate inference algorithms are stochastic MCMC simulation, mini-bucket elimination which generalizes loopy belief propagation, and variational methods.

Applications
Bayesian networks are used for modelling knowledge in gene regulatory networks, medicine, engineering, text analysis, image processing, data fusion, and decision support systems.

Links and software

 * Association for Uncertainty in Artificial Intelligence: http://www.auai.org/
 * Intro to Bayesian networks : http://www.niedermayer.ca/papers/bayesian/bayes.html
 * On-line Tutorial on Bayesian nets and probability: http://www.dcs.qmw.ac.uk/%7Enorman/BBNs/BBNs.htm
 * AgenaRisk Bayesian network tool: http://www.agenarisk.com
 * Bayesian network application library: http://www.norsys.com/netlibrary/index.htm
 * Bayesia: http://www.bayesia.com
 * GeNIe & SMILE: http://genie.sis.pitt.edu
 * Hugin: http://www.hugin.com
 * Netica: http://www.norsys.com
 * BNet: http://www.cra.com/bnet
 * Dezide: http://www.dezide.com
 * SamIam: http://reasoning.cs.ucla.edu/samiam
 * OpenBayes: http://www.openbayes.org
 * MSBNx: a component-centric toolkit for modeling and inference with Bayesian Network (from Microsoft Research): http://research.microsoft.com/adapt/MSBNx/