Canonical nodes

<< Click to Display Table of Contents >>

Navigation:  Using SMILE Wrappers >

Canonical nodes

Canonical probabilistic nodes, such as Noisy-MAX/OR, Noisy-MIN/AND, and Noisy-Adder gates, implemented by SMILE, are convenient knowledge engineering tools widely used in practical applications. In case of a general CPT binary node with n binary parents, the user has to specify 2^n parameters, a number that is exponential in the number of parents. This number can quickly become prohibitive: when the number of parents n is equal to 10, we need 1,024 parameters, when it is equal to 20, the number of parameters is equal to 1,048,576, with each additional parent doubling it. A Noisy-OR model allow for specifying this interaction with only n+1 parameters, one for each parent plus one more number. This comes down to 11 and 21 for n equal to 10 and 20 respectively.

Canonical models are not only great tools for knowledge engineering - they also lead to significant reduction in computation through the independences that they model implicitly. Using canonical gates makes thus model construction easier but also leads to models that are easier to solve.

To create canonical nodes, pass Network.NodeType.NOISY_MAX or Network.NodeType.NOISY_ADDER to Network.addNode. Each node type has its own specific attributes accessible through Network class methods, but otherwise works in exactly the same way as a CPT node (has at least two outcomes, can be used as a parent or a child wherever the CPT node can, etc).