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 in SMILE, are powerful tools for knowledge engineering in practical applications. For a general CPT binary node with n binary parents, the user must specify 2^n parameters. This number grows exponentially with the number of parents: for n = 10, the number of parameters is 1,024; for n = 20, it is 1,048,576, with each additional parent doubling the total.

In contrast, a Noisy-OR node requires only n+1 parameters—one for each parent plus a single “leak” parameter. For example, with n = 10 parents, only 11 parameters are needed; with n = 20, only 21 parameters. This dramatic reduction in parameters makes canonical nodes easier to specify and maintain, while also implicitly capturing independence relationships that reduce computational complexity. Using canonical gates therefore simplifies both model construction and inference.

To create a canonical node, pass NOISY_MAX or NOISY_ADDER to Network.add_node. Each canonical node type has its own specific attributes accessible through Network class methods, but otherwise behaves like a standard CPT node: it has at least two outcomes, and it can be used as a parent or child wherever a CPT node is allowed.