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