Mercurial > hg > camir-aes2014
comparison toolboxes/FullBNT-1.0.7/bnt/potentials/README @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e9a9cd732c1e |
---|---|
1 The following kinds of potentials are supported | |
2 - dpot: discrete | |
3 - upot: utility | |
4 - mpot: Gaussian in moment form | |
5 - cpot: Gaussian in canonical form | |
6 - cgpot: conditional (mixture) Gaussian, a list of mpots/cpot | |
7 - scgpot: stable conditional Gaussian, a list of scgcpots | |
8 - scgcpot: just used by scgpot | |
9 | |
10 Many of these are described in the following book | |
11 | |
12 @book{Cowell99, | |
13 author = "R. G. Cowell and A. P. Dawid and S. L. Lauritzen and D. J. Spiegelhalter", | |
14 title = "Probabilistic Networks and Expert Systems", | |
15 year = 1999, | |
16 publisher = "Springer" | |
17 } | |
18 | |
19 CPD_to_pot converts P(Z|A,B,...) to phi(A,B,...,Z). | |
20 | |
21 A table is like a dpot, except it is a structure, not an object. | |
22 Code that uses tables is faster but less flexible. | |
23 | |
24 ----------- | |
25 | |
26 A potential is a joint probability distribution on a set of nodes, | |
27 which we call the potential's domain (which is always sorted). | |
28 A potential supports the operations of multiplication and | |
29 marginalization. | |
30 | |
31 If the nodes are discrete, the potential can be represented as a table | |
32 (multi-dimensional array). If the nodes are Gaussian, the potential | |
33 can be represented as a quadratic form. If there are both discrete and | |
34 Gaussian nodes, we use a table of quadratic forms. For details on the | |
35 Gaussian case, see below. | |
36 | |
37 For discrete potentials, the 'sizes' field specifies the number of | |
38 values each node in the domain can take on. For continuous potentials, | |
39 the 'sizes' field specifies the block-size of each node. | |
40 | |
41 If some of the nodes are observed, extra complications arise. We | |
42 handle the discrete and continuous cases differently. Suppose the | |
43 domain is [X Y], with sizes [6 2], where X is observed to have value x. | |
44 In the discrete case, the potential will have many zeros in it | |
45 (T(X,:) will be 0 for all X ~= x), which can be inefficient. Instead, | |
46 we set sizes to [1 2], to indicate that X has only one possible value | |
47 (namely x). For continuous nodes, we set sizes = [0 2], to indicate that X no | |
48 longer appears in the mean vector or covariance matrix (we must avoid | |
49 0s in Sigma, lest it be uninvertible). When a potential is created, we | |
50 assume the sizes of the nodes have been adjusted to include the | |
51 evidence. This is so that the evidence can be incorporated at the | |
52 outset, and thereafter the inference algorithms can ignore it. | |
53 | |
54 ------------ | |
55 | |
56 A Gaussian potential can be represented in terms of its | |
57 moment characteristics (mu, Sigma, logp), or in terms of its canonical | |
58 characteristics (g, h, K). Although the moment characteristics are | |
59 more familiar, it turns out that canonical characteristics are | |
60 more convenient for the junction tree algorithm, for the same kinds of | |
61 reasons why backwards inference in an LDS uses the information form of | |
62 the Kalman filter (see Murphy (1998a) for a discussion). | |
63 | |
64 When working with *conditional* Gaussian potentials, the method proposed | |
65 by Lauritzen (1992), and implemented here, requires converting from | |
66 canonical to moment form before marginalizing the discrete variables, | |
67 and converting back from moment to canonical form before | |
68 multiplying/dividing. A new algorithm, due to Lauritzen and Jensen | |
69 (1999), works exclusively in moment form, and | |
70 hence is more numerically stable. It can also handle 0s in the | |
71 covariance matrix, i.e., deterministic relationships between cts | |
72 variables. However, it has not yet been implemented, | |
73 since it requires major changes to the jtree algorithm. | |
74 | |
75 In Murphy (1998b) we extend Lauritzen (1992) to handle | |
76 vector-valued nodes. This means the vectors and matrices become block | |
77 vectors and matrices. This manifests itself in the code as in the | |
78 following example. | |
79 Suppose we have a potential on nodes dom=[3,4,7] with block sizes=[2,1,3]. | |
80 Then nodes 3 and 7 correspond to blocks 1,3 which correspond to indices 1,2,4,5,6. | |
81 >> find_equiv_posns([3 7], dom)=[1,3] | |
82 >> block([1,3],blocks)=[1,2,4,5,6]. | |
83 | |
84 For more details, see | |
85 | |
86 - "Filtering and Smoothing in Linear Dynamical Systems using the Junction Tree Algorithm", | |
87 K. Murphy, 1998a. UCB Tech Report. | |
88 | |
89 - "Inference and learning in hybrid Bayesian networks", | |
90 K. Murphy. UCB Technical Report CSD-98-990, 1998b. | |
91 | |
92 - "Propagation of probabilities, means and variances in mixed | |
93 graphical association models", S. L. Lauritzen, 1992, JASA 87(420):1098--1108. | |
94 | |
95 - "Causal probabilistic networks with both discrete and continuous variables", | |
96 K. G. Olesen, 1993. PAMI 3(15). This discusses implementation details. | |
97 | |
98 - "Stable local computation with Conditional Gaussian distributions", | |
99 S. Lauritzen and F. Jensen, 1999. Univ. Aalborg Tech Report R-99-2014. | |
100 www.math.auc.dk/research/Reports.html. |