NAME

delta_unit - create delta-unit

PROTOTYPE

unitptr delta_unit( int n, int mode, unitptr dest)

ARGUMENTS

int n
dimensionality of input vector
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:

X_in[n]:
(input field 0) input vector
Y_in[1]:
(input field 1) error input DY=target-X_in
EPS_in[1]:
(input field 2) adaptation gain eps
CTL_in[1]:
(input field 3) control input c
X_out[1]:
(output field 0) scalar output value
for mode = 2 or 3,
Y_out[n]:
(packed output field 1) internal weight vector w[]

DESCRIPTION:

Creates an adaptive linear delta-unit, mapping an n - dimensional input vector into a scalar output value. The newly created unit becomes a subunit of unit host.
The new output value X_out[0] becomes a linear (precisely: a convex) combination of the old value and of the newly computed activity. A decay of the old value 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 activity value is multiplicatively scaled by the factor c and superimposed over the decayed old value. This has the effect, that the unit behaves like a leaky integrator with a time constant of 1/c iteration steps. Special cases result for c=1 and c=0. In the former case, the new activity completely replace the old value. This is the default setting after creation of the unit. In the latter case, the output value retains its old value (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 signal at input pin Y_in[0]. 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[0] computed during previ- ous execution of the unit. If mode=1 or 3, the learning step size is normalized to improve convergence behavior. If mode=2 or 3, the current weight vector is accessible via packed output field Y_out[n].

EXECUTION:


     X_out[0] = (1-c) * X_out[0] + c * sum_i w[i] * X_in[i].


FILE

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