Units are the basic computational elements of networks. They typically integrate information from a number of sources (inputs), and perform some relatively simple type of processing on these inputs, and then output a single value which somehow summarizes its response to the inputs.
The basic Unit class in PDP++ contains real valued variables for representing a unit's activation and its net input from other units as well as its target pattern and/or external training input. In addition the unit class contains subgroups of sending and receiving connections between other units, and a 'bias' connection, which may or may not be present depending on the algorithm. A unit also has a position which represents its relative offset from its layer's position in the netview (see section 10.6 Network Viewer).
As with many objects in PDP++, the Unit relies on a corresponding UnitSpec to provide most of the functions and parameters that control the unit's behavior. The unit itself contains the state variables. Thus, different units can have different parameters and functions simply by changing which UnitSpec they point to.
The following variables are found on the Unit:
UnitSpec_SPtr spec
Geometry pos
ExtType ext_flag
NO_EXTERNAL
TARG
targ
field.
EXT
ext
field.
TARG_EXT
COMP
targ
field.
This is for computing an error statistic or other comparisons, but not
for training the network.
COMP_TARG
COMP_EXT
COMP_TARG_EXT
float targ
float ext
float act
float net
Con_Group recv
recv
just contains sub-groups which themselves contain the actual
connections.
Con_Group send
recv
).
Connection* bias
bias_con_type
member of the UnitSpec, and the
ConSpec for this connection is in the bias_spec
member of the
UnitSpec.
The basic UnitSpec class defines the set of computational functions on the unit, and has parameters which control the unit's behavior. Specific algorithms add more parameters to this object.
MinMaxRange act_range
TypeDef* bias_con_type
ConSpec_SPtr bias_spec
Note: the following information should be useful to those who wish to program in PDP++, but is not necessary for the average user to understand.