by Martijn Meeter & Jaap Murre
There are several object types in
Walnut.
All have their own characteristics, and all can have an arbitrary
number of parameters specified by the author of the paradigm used.
For an exhaustive list of rules regarding name-giving in
Walnut/Nutshell paradigms, see
Name Conventions for
Paradigm Methods and Parameters.
Below, in this document:
Top of this document.
[Back to contents]
Node definition
Model neurons are called "Nodes" in Walnut (this is common terminology
in connectionism).
Standard parameters
Nodes have typically connectionist parameters such as an
activation state, and an output state.
These states are captured in parameters with names such as
"Act" and "Fires".
There are a few conventions governing the namegiving of these
parameters in Walnut; these are discussed in the
"Parameter Conventions" document, see
Name Conventions for
Paradigm Methods and Parameters.
Clamp
"Clamp" refers to freezing the state of the node.
The state of the node will, however, continue to influence weights
and other nodes.
Deactivate
"Deactivate" refers to freezing the node in that state.
A "deactivated" node, unlike a clamped one, cannot influence
weights or other nodes.
[Back to contents]
Layer definition
"Nodes"
are always organized in a "Layer", a group of nodes that belong
together. Layers are visualized in
Nutshell
as two-dimensional sheets of nodes with adjustable width and height.
In Walnut,
however, layers are implemented as a one-dimensional array of nodes.
Standard parameters
Layers may implement a whole range of parameters.
Standard parameters are the "Width" and the "Height" parameter
that embody the size of the layer: they both code for the number
of nodes in the layer (Width * Height) and for the physical
appearance of the layer in Nutshell.
Other parameters
Other parameters are at the discretion of the paradigm builder.
There is a convention governing
hard-k-Winner-Take-All dynamics,
however.
[Back to contents]
Connection definition
Every two nodes can be connected or not.
If they are, there is a connection between the two. In many
paradigms, a node cannot be connected with itself.
Connection parameters
Connections typically implement a Weight that codes for the
"strength" of the connection. Another parameter that exists
in most paradigms is "Conn Exists".
This is the parameter that shows whether the two nodes are in
fact connected or not.
[Back to contents]
Tract definition
Connections are organized in "Tracts".
These group together the connections sent from nodes in one
layer to nodes in another layer (it is also possible that the
sending and receiving layers are the same; in that case, one
speaks of an autoconnection).
A tract only groups connections that go one way - if between
two layers there are connections going back and forth, then
there will be two tracts between those layers - one for the
forward connections, one for the backward connections.
Tract parameters
Like
layers, tracts may implement
a whole range of parameters.
These are at the discretion of the paradigm builder, except for the
weight maximum and
normalization parameters.
[Back to contents]
In addition to an arbitrary number of parameters, a module contains
either one or more layers or one or more modules. It may be empty,
but it may not contain both layers and modules.
[Back to contents]
A model is a module, but a model may not be contained in a module.
It can, thus, serve as the top-level module. It is not a workspace.
[Back to contents]
For any object, subtypes may be defined. For example, we can have
in one paradigm, a CALM module, an output module and an input
module. Each of these may have different sets of parameters and
internal architectures. Connecting two containers may result in
different tracts being inserted, depending on the subtypes.
Subtypes are currently not implemented.
[Back to contents]
A workspace can contain zero or more models, modules, layers or
other objects. It is equivalent to a window in the Nutshell browser.
A new workspace is always created when a paradigm is opened.
[Back to contents]
These are methods that can be specified by the user.
An example would learning rules for a connection or tract.
These are currently not implemented.
|