NAME

delta_layer -- create layer of delta-units.

PROTOTYPE

unitptr delta_layer( int din, int nodes, int mode, unitptr dest)

ARGUMENTS

int din
dimensionality of input vector
int nodes
number n of nodes of layer created.
int mode
mode parameter (see below)
unitptr dest
host unit for newly created instance

RETURN VALUE:

unitptr u:
pointer to newly created unit

INTERFACE OF CREATED UNIT:

For mode=0 or 1
X_in[din]:
(input field 0) input vector
Y_in[n]:
(input field 1) error signal DY=target-X_out
Eps_in[1]:
(input field 2) adaptation gain eps
Ctl_in[1]:
(input field 3) control input c
X_out[n]:
(output field 0) output vector
For mode=2 or 3
in_0[din]:
(input field 0) input vector x_0 for node 0
in_1[din]:
(input field 1) input vector x_1 for node 1

DESCRIPTION:

Creates a layer of n linear delta-units. Upon each call of exec_unit this layer maps a din -dimensional input vector linearly into a n -dimensional activity pattern. This is very similar to the operation of a bp_layer with linear activation function. Difference are: (i) the absence of a built-in bias term, (ii) the optional normalization by the inverse square length of the input vector of each unit (modes 1,3), (iii) the option to have a separate input field for each unit (modes 2,3), and (iv) the missing back-propagation step for the error signal. If the latter is required, a bp_layer can be used. Otherwise, this routine is more efficient and provides better convergence if normalization is used. The node activities f_i become a linear (precisely: a convex combination of the old value and of the newly computed activities. A decay of the old activities is determined by a decay factor (1-c), where c is the value at the control pin CTL_in[0] (default is c=1). The newly computed activities are multiplicatively scaled by the factor c and superimposed over the decayed old values. This has the effect, that the nodes behaves like leaky integrators with a time constant of 1/c iteration steps. Special cases result for c=1 and c=0. In the former case, the new activities completely replace the old values. This is the default setting after creation of the unit. In the latter case, the output values retains their old values (in fact, in this case, the internal computation is suppressed; therefore, c=0 can be used to disable the unit). Adaptation follows the error-correction or Widrow-Hoff - rule and requires the availability of a scalar error vector at input Y_in. The value of this signal should be the difference between the desired output (for the current input X_in) and the actual output X_out computed during previ- ous execution of the unit.

FILE

/homes/jontrup/nst5/man/../o.sol2//../foldersrc/nst_adaptive.c