Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Anders L Madsen

Pages: 1 ... 17 18 [19]
FAQ / Can I use the Hugin ActiveX API from VB.NET ?
« on: April 02, 2007, 11:46:25  »
Yes. Although the Hugin ActiveX API is written for VB 6.0, it is possible to use it in VB.NET. It does require the use of a special Collection, though, as the VB.NET Collection is not compatible with the VB 6.0 Collection. Please consult the Hugin ActiveX Help (Tutorials -> Hello Bayes .net) on the matter.

After learning the tables, I get "Inconsistent evidence" errors when inserting new data in the network. What is wrong ?

To solve this, you should start the EM learning with all probabilities larger than 0 (normally you just use an equal distribution), and with all experience tables initialized to 1. This ensures that no probability will be zero after the learning completes. Other than that, the tables will be almost identical to the ones you get when not doing this.

FAQ / What's the deal with fading tables ?
« on: April 02, 2007, 11:44:56  »
When updating the tables in the light of new observations, it is often relevant to let the old observations "fade out". This is the case, when the modeled domain is dynamic. The fading tables specify how fast the old observations are faded. A value of 1 in the fading table means that the old observations are not faded, and a value very close to zero means that they will fade almost immediately (a value of 0 will disable adaptation for that parent configuration).

I have added experience tables and inserted evidence, but adapt doesnt work. What is wrong ?

For adaptation to work on a given node with a given parent configuration, it is required that the experience count for that configuration is larger than zero. This usually means, that all experience counts should be initialised to something larger than zero before adaptation is used.

No. During the learning process, a number of situations may arise, which forces a given link to obtain a fixed direction (e.g., to avoid cycles in the network). This can, occasionally, produce the above mentioned result. Using the NPC-algorithm minimizes the occurences of this, as the user is consulted in most cases. It is also possible, that the data actually indicates that the link should have the mentioned direction. Typically, this can happen if the amount of data is low (see "How much data do I need to learn a network ?").

FAQ / Why not use fast retraction as default ?
« on: April 02, 2007, 11:05:21  »
Although it is tempting to use fast retraction as the default evidence incorporation mode, this is not generally advisable because:
   -    a fast-retraction propagation may fail due to logical relations in the model.
   -    fast-retraction propagations are not available for compressed domains, domains with   continuous variables, or influence diagrams.

FAQ / What is the difference between normal and fast retraction ?
« on: April 02, 2007, 11:02:37  »
When performing fast retraction inference, the evidence potentials are multiplied onto the clique potentials during propagation (as opposed to before propagation, in normal inference). If this is done correctly, the resulting potential on a set V of variables will be the marginal probability for V given evidence on all variables except the variables in V.
This can be useful to identify suspicius findings. If the observation made on a variable has a very small probability, then quite likely something is wrong with the observation.

FAQ / How do I compile/run a program written in C/C++/Java/VB ?
« on: April 02, 2007, 11:01:05  »
Instructions for using the Hugin C/C++/Java/VB APIs are given in Section 1.3 of the Hugin API Reference Manual.

FAQ / How complex can my networks be ?
« on: April 02, 2007, 10:49:44  »
Hugin has no limit on the complexity of the networks. This is limited only by the available memory on the machine
"Hugin ran out of memory. What can I do ?"   and
"I seem to be running into some limits with the HUGIN software. What is the maximum number of nodes and edges that HUGIN can handle?").

FAQ / Nodes in instantiated classes have wrong names (c1,c2,...)
« on: April 02, 2007, 10:47:33  »
When creating a domain from a class, the class is "flattened". That is, all the instance nodes (or sub nets) are expanded and placed in the main network. Because of this, it is not possible to guarantee that the names of the nodes are unique anymore (which is required). Thus the nodes in the domain are given generic names. To correctly identify a node in the domain, you have to look at the source nodes for the node.

As of Hugin 6.0, the default type for saving a model is "Class" (denoted by a class identifier in the net file, as opposed to the net identifier in the old net files). These Classes cannot be loaded into a Domain. Instead, they need to be loaded into a Class. This is done, indirectly, by loading a .net file through a ClassCollection. If you want to load the new model into your program, you have to save it as a 5.7 net file (by choosing "Save as" in the file menu).

HUGIN Training Course Discussion / Re: continuous distributions
« on: April 01, 2007, 21:26:55  »
There are two different approaches to modeling with continuous variables in the HUGIN tools.

One approach is to discretize the nodes representing continuous entities using Interval nodes. In your example the "mu", "sigma^2", and "A" would all be discretized into Interval nodes. The intervals of each Interval node would have to be determined by the user. The conditional probability distribution of each discrete node can subsequently be constructed using the Table Generator functionality.

The continuous nodes of a network in HUGIN are assumed to have a linear Gaussian distribution. This implies that a mean and a variance is specified for a continuous node without continuous parents for each configuration of the discrete parents, if any. For a continuous node with continuous parents a regression factor is specified for each continuous parent for each configuration of the discrete parents.

Thus, the alternative approach is the approximate the continuous distributions using mixtures of Gaussian distributions. Any continuous distribution can be approximated using a mixture of Gaussian distribution. Unfortunately, it may be difficult to identify the number of components and the weights of the mixture. Also, the use of mixtures of Gaussian distributions may lead to heavy computations.

I suggest to use the first approach.

Hope this is useful

FAQ / Re: How much data do I need to learn a network ?
« on: February 03, 2007, 20:31:16  »
Dear Nadjet,

It is more or less impossible to determine whether or not you have sufficient data before the learning takes place (unless you have very much data in which case learning may be ressource demanding).

Once you have a model you can based on the abovementioned rule of thumb determine if you had sufficient data to learn the resulting model.

Hope this is useful,

FAQ / How much data do I need to learn a network ?
« on: January 27, 2007, 10:48:52  »
It is difficult to give an exact measure, as this depends on the domain that the data represents. The more complex the model is, the more data is required to learn the model from the data.

A rule of thumb says that you should have at least 5 cases for each cell in the largest table in the network. That is, to learn the distribution for any given parent configuration, you should have (5 * number of states) cases.

FAQ / Hugin ran out of memory. What can I do ?
« on: January 26, 2007, 13:49:10  »
The size of Bayesian networks can grow exponentially in the number of nodes. In particular, the size of the CPTs grow exponentially in the number of parents. So if you have, e.g., a node C, with parents P1, P2, P3, P4, P5, P6, P7 and each node has 10 states, the size of Cs CPT will be 10^8 numbers = 100.000.000 number. So the CPTs can grow very big. Furthermore, each number takes up 8 bytes of memory, thus the CPT will need 800Mb of memory for a network with only 8 nodes. Another cause for memory usage is the creation of the junction trees (which occurs during compilation). Depending on the structure of the network, the cliques in the junction tree can grow very large as well, if either a lot of nodes, or the nodes with the largest CPTs, end up in the same clique.
  • Install more memory.
  • Examine the CPTs and reduce the largest ones, either by removing parents, or by removing states from either the parents or the node itself.
  • Change the structure of the network, if the error occurs during compilation, to change the constructed cliques. An alternative to this, is to change the triangulation method, as this will often result in a different junction tree (Network properties -> compilation -> triangulation method).

Pages: 1 ... 17 18 [19]