For the most part, the objects that make up a network are fairly intuitive, consisting of Layers (see section 10.2 Layers and Unit Groups), Units (see section 10.4 Units), and Connections (see section 10.5 Connections). However, there is an additional type of object which describes the pattern of connectivity between all of the units in one layer to those in another layer, which is called a Projection (see section 10.3 Projections). The Projection is very useful because it allows one to specify connectivity at a broad level, instead of individually connecting each unit with other units. It also seems to be a conceptually real entity--one often thinks about the connectivity in terms like, "the hidden layer is fully connected to the input layer."
The use of Projection objects is illustrative of a general principle
regarding network structure, which is that the larger-scale objects
(Layers and Projections) contain parameters for how to construct
the smaller-scale objects (Units and Connections). This allows one to
create Layers and Projections, fill in some parameters regarding the
type of connectivity and number and type of units, and execute
general-purpose Build
and Connect
(see section 10.1 The Network Object)
functions which translate the parameters into an actual network with
interconnected units.
While it is possible to manually build a network unit-by-unit and
connection-by-connection, it is usually much easier to use the
parameters-and-build/connect method. However, some people find the
distinction between specifying and actually building difficult to work
with, in part because only after you execute Build
and
Connect
does your actual network reflect the parameters you have
entered. We have tried to lessen these difficulties by providing
graphical representations of the parameters, so that you can see what
you are specifying at the time you do it, not only after you have built
the network.