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