noisy-max question

The engine.
Post Reply
gund
Posts: 15
Joined: Wed Sep 09, 2009 9:02 am

noisy-max question

Post by gund »

I was reading the Genie documentation and it says
At the moment, GeNIe does not take any computational advantage of the Noisy-MAX nodes in its reasoning algorithms and uses them purely as a useful knowledge engineering tool.
Is that true for SMILE too?

If one could replace a typical chance node with a noisy max implementation would the calculations be inherently faster?

Or is it just less parameters needed to specify the CPT, which will be expanded for the computations anyway?

Basically just a spatial complexity improvement or a temporal complexity one too?
shooltz[BayesFusion]
Site Admin
Posts: 1417
Joined: Mon Nov 26, 2007 5:51 pm

Re: noisy-max question

Post by shooltz[BayesFusion] »

gund wrote:Is that true for SMILE too?
GeNIe uses SMILE, so it's basically true. We have some noisyMax-specific code in the EM (parameter learning) and in the relevance layer, which can simplify the network before Bayesian inference is invoked. The relevance layer handles noisyMax nodes with evidence set in a special way; I'm not familiar with this part of the algorithm, but can ask for more detailed info if you need it.
If one could replace a typical chance node with a noisy max implementation would the calculations be inherently faster?

Or is it just less parameters needed to specify the CPT, which will be expanded for the computations anyway?

Basically just a spatial complexity improvement or a temporal complexity one too?
The noisy tables are expanded to CPTs during inference. The major benefit of noisy nodes is the easier modelling.
gund
Posts: 15
Joined: Wed Sep 09, 2009 9:02 am

Post by gund »

Thanks for the info about noisy-max nodes.

I noticed the ability to create equation nodes in GeNIe. Without any documentation I'm not sure how to do the same in SMILE. Could you elaborate a little or paste some sample code?
shooltz[BayesFusion]
Site Admin
Posts: 1417
Joined: Mon Nov 26, 2007 5:51 pm

Post by shooltz[BayesFusion] »

gund wrote:Thanks for the info about noisy-max nodes.

I noticed the ability to create equation nodes in GeNIe. Without any documentation I'm not sure how to do the same in SMILE. Could you elaborate a little or paste some sample code?
You won't be able to do that with currently available builds. The relevant header is missing :)

New SMILE release is coming soon.
ulrikf
Posts: 1
Joined: Tue Nov 16, 2010 3:23 pm

Re: noisy-max question

Post by ulrikf »

shooltz wrote: We have some noisyMax-specific code in the EM (parameter learning) and in the relevance layer, which can simplify the network before Bayesian inference is invoked. The relevance layer handles noisyMax nodes with evidence set in a special way; I'm not familiar with this part of the algorithm, but can ask for more detailed info if you need it.
What kind of noisyMax-specific code are you using for parameter learning? When I did some learning on a noisyMax network (in GeNIe) I got the impression that no special code was used. The reason is that after learning, when I saved the network, the noisyMax parameters in the file where replaced by a standard CPT (and a large one at that, due to the structure of my network). However, the xml tag in the file specifying the type of node did not change from noisyMax to standard chance, thus making GeNIe unable to reopen the file until I manually edited the xml tags. So at the least, there is a bug here to be fixed.

Anyhow, one way to implement noisyMax-specific learning is to create and solve (in the least squares sense) the over-determined linear equation system that you get by taking the logarithm of the basic Noisy-OR equation for each specimen in the data. (Of course, ln(0) needs to be approximated with something sufficiently small, e.g. ln(0.01).) I did that in Matlab, and it seemed to work fine, though I guess that you need a pretty good (i.e. Matlab-like) engine for solving linear equation systems if you have a large model and a lot of data.

Regards
Ulrik
mark
Posts: 179
Joined: Tue Nov 27, 2007 4:02 pm

Re: noisy-max question

Post by mark »

ulrikf wrote:What kind of noisyMax-specific code are you using for parameter learning? When I did some learning on a noisyMax network (in GeNIe) I got the impression that no special code was used. The reason is that after learning, when I saved the network, the noisyMax parameters in the file where replaced by a standard CPT (and a large one at that, due to the structure of my network). However, the xml tag in the file specifying the type of node did not change from noisyMax to standard chance, thus making GeNIe unable to reopen the file until I manually edited the xml tags. So at the least, there is a bug here to be fixed.
Since EM works on CPTs there is a preprocessing step that decomposes noisy-MAX nodes into CPTs. After EM is done these CPTs are then converted back to noisy-MAX nodes. Unfortunately, the current release of GeNIe (and SMILE) contain a bug in this decomposition. Please try again once the new release is out.
Post Reply