wolffd@0
|
1
|
wolffd@0
|
2 <h2><a name="features">Major features</h2>
|
wolffd@0
|
3 <ul>
|
wolffd@0
|
4
|
wolffd@0
|
5 <li> BNT supports many types of
|
wolffd@0
|
6 <b>conditional probability distributions</b> (nodes),
|
wolffd@0
|
7 and it is easy to add more.
|
wolffd@0
|
8 <ul>
|
wolffd@0
|
9 <li>Tabular (multinomial)
|
wolffd@0
|
10 <li>Gaussian
|
wolffd@0
|
11 <li>Softmax (logistic/ sigmoid)
|
wolffd@0
|
12 <li>Multi-layer perceptron (neural network)
|
wolffd@0
|
13 <li>Noisy-or
|
wolffd@0
|
14 <li>Deterministic
|
wolffd@0
|
15 </ul>
|
wolffd@0
|
16 <p>
|
wolffd@0
|
17
|
wolffd@0
|
18 <li> BNT supports <b>decision and utility nodes</b>, as well as chance
|
wolffd@0
|
19 nodes,
|
wolffd@0
|
20 i.e., influence diagrams as well as Bayes nets.
|
wolffd@0
|
21 <p>
|
wolffd@0
|
22
|
wolffd@0
|
23 <li> BNT supports static and dynamic BNs (useful for modelling dynamical systems
|
wolffd@0
|
24 and sequence data).
|
wolffd@0
|
25 <p>
|
wolffd@0
|
26
|
wolffd@0
|
27 <li> BNT supports many different <b>inference algorithms</b>,
|
wolffd@0
|
28 and it is easy to add more.
|
wolffd@0
|
29
|
wolffd@0
|
30 <ul>
|
wolffd@0
|
31 <li> Exact inference for static BNs:
|
wolffd@0
|
32 <ul>
|
wolffd@0
|
33 <li>junction tree
|
wolffd@0
|
34 <li>variable elimination
|
wolffd@0
|
35 <li>brute force enumeration (for discrete nets)
|
wolffd@0
|
36 <li>linear algebra (for Gaussian nets)
|
wolffd@0
|
37 <li>Pearl's algorithm (for polytrees)
|
wolffd@0
|
38 <li>quickscore (for QMR)
|
wolffd@0
|
39 </ul>
|
wolffd@0
|
40
|
wolffd@0
|
41 <p>
|
wolffd@0
|
42 <li> Approximate inference for static BNs:
|
wolffd@0
|
43 <ul>
|
wolffd@0
|
44 <li>likelihood weighting
|
wolffd@0
|
45 <li> Gibbs sampling
|
wolffd@0
|
46 <li>loopy belief propagation
|
wolffd@0
|
47 </ul>
|
wolffd@0
|
48
|
wolffd@0
|
49 <p>
|
wolffd@0
|
50 <li> Exact inference for DBNs:
|
wolffd@0
|
51 <ul>
|
wolffd@0
|
52 <li>junction tree
|
wolffd@0
|
53 <li>frontier algorithm
|
wolffd@0
|
54 <li>forwards-backwards (for HMMs)
|
wolffd@0
|
55 <li>Kalman-RTS (for LDSs)
|
wolffd@0
|
56 </ul>
|
wolffd@0
|
57
|
wolffd@0
|
58 <p>
|
wolffd@0
|
59 <li> Approximate inference for DBNs:
|
wolffd@0
|
60 <ul>
|
wolffd@0
|
61 <li>Boyen-Koller
|
wolffd@0
|
62 <li>factored-frontier/loopy belief propagation
|
wolffd@0
|
63 </ul>
|
wolffd@0
|
64
|
wolffd@0
|
65 </ul>
|
wolffd@0
|
66 <p>
|
wolffd@0
|
67
|
wolffd@0
|
68 <li>
|
wolffd@0
|
69 BNT supports several methods for <b>parameter learning</b>,
|
wolffd@0
|
70 and it is easy to add more.
|
wolffd@0
|
71 <ul>
|
wolffd@0
|
72
|
wolffd@0
|
73 <li> Batch MLE/MAP parameter learning using EM.
|
wolffd@0
|
74 (Each node type has its own M method, e.g. softmax nodes use IRLS,<br>
|
wolffd@0
|
75 and each inference engine has its own E method, so the code is fully modular.)
|
wolffd@0
|
76
|
wolffd@0
|
77 <li> Sequential/batch Bayesian parameter learning (for fully observed tabular nodes only).
|
wolffd@0
|
78 </ul>
|
wolffd@0
|
79
|
wolffd@0
|
80
|
wolffd@0
|
81 <p>
|
wolffd@0
|
82 <li>
|
wolffd@0
|
83 BNT supports several methods for <b>regularization</b>,
|
wolffd@0
|
84 and it is easy to add more.
|
wolffd@0
|
85 <ul>
|
wolffd@0
|
86 <li> Any node can have its parameters clamped (made non-adjustable).
|
wolffd@0
|
87 <li> Any set of compatible nodes can have their parameters tied (c.f.,
|
wolffd@0
|
88 weight sharing in a neural net).
|
wolffd@0
|
89 <li> Some node types (e.g., tabular) supports priors for MAP estimation.
|
wolffd@0
|
90 <li> Gaussian covariance matrices can be declared full or diagonal, and can
|
wolffd@0
|
91 be tied across states of their discrete parents (if any).
|
wolffd@0
|
92 </ul>
|
wolffd@0
|
93
|
wolffd@0
|
94 <p>
|
wolffd@0
|
95 <li>
|
wolffd@0
|
96 BNT supports several methods for <b>structure learning</b>,
|
wolffd@0
|
97 and it is easy to add more.
|
wolffd@0
|
98 <ul>
|
wolffd@0
|
99
|
wolffd@0
|
100 <li> Bayesian structure learning,
|
wolffd@0
|
101 using MCMC or local search (for fully observed tabular nodes only).
|
wolffd@0
|
102
|
wolffd@0
|
103 <li> Constraint-based structure learning (IC/PC and IC*/FCI).
|
wolffd@0
|
104 </ul>
|
wolffd@0
|
105
|
wolffd@0
|
106
|
wolffd@0
|
107 <p>
|
wolffd@0
|
108 <li> The source code is extensively documented, object-oriented, and free, making it
|
wolffd@0
|
109 an excellent tool for teaching, research and rapid prototyping.
|
wolffd@0
|
110
|
wolffd@0
|
111 </ul>
|
wolffd@0
|
112
|
wolffd@0
|
113 |