NAME
llm_layer - create layer of LLM-units
PROTOTYPE
unitptr llm_layer( int din, int dout, int n, int mode, unitptr dest)
ARGUMENTS
- int din
- dimensionality of input vector
- int dout
- dimensionality of output vector
- int n
- number of internal nodes
- int mode
- mode parameter. Values can be zero or one. If mode=1, output activities (output at field Z_out) are normalized to sum to unity.
- unitptr dest
- host unit
RETURN VALUE:
- unitptr u:
- pointer to newly created unit
INTERFACE OF CREATED UNIT:
- X_in[din]:
- (input field 0) input vector
- Y_in[dout]:
- (input field 1) desired output vector
- Eps_in[5]:
- (input field 2) adaptation gains
eps_in, eps_out, eps_A, eps_r,
eps_inp_sens
- Ctl_in[3]:
- (input field 3) control inputs c, g,
beta
- X_out[dout]:
- (output field 0) actual output vector
- Y_out[1]:
- (output field 1) index of winner node
- Z_out[n]:
- (output field 2) node activities
- out_3[n*din+n]:
- (packed output field 3) input weights
and radii
- out_4[n*dout]:
- (packed output field 4) output weights
- out_5[n*din*dout]:
- (packed output field 5) local linear map matrices
DESCRIPTION:
Creates a layer of adaptive LLM-units mapping a din
dimensional input vector into an dout dimensional output
vector. The created unit becomes a subunit of unit host.
The mapping is adaptively created by specifying during a
training phase for each input vector a desired output vector
Y_in and calling adapt after each exec-call. Parameters
EPS_in[0..3] specify the adaptation gain for adjustment of the
input reference vectors, the output reference vectors, the
matrices of the LLM-unit and for the average receptive field
radii, respectively. If all adaptation gains are zero, the
adapt-routine returns immediately.
The node activities Z_out become a linear (precisely: a convex)
combination of the old and of the newly computed
activities. The 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 activities. This has the
effect, that the nodes behave 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 activities. This is the default
setting after creation of the unit. In the latter case, the
node activities retain their old values and the output does
not change (in fact, in this case, the internal computation
is suppressed; therefore, c=0 can be used to switch the
unit off).
If mode=1, an additional multiplicative normalization is
performed, which normalizes the sum of all node activities
Z_out[i] to unity.
If eps_in, eps_out, eps_A, eps_r are not all zero, each
adapt-call will perform a refinement step for the centers
win[i], wout[i], the matrices A[i] and for the radii sig[i]
as given by the formula in Section ADAPTATION.
The smoothing parameter beta can be used to control
the degree of overlap between the individual node responses.
Small values of beta result in large overlap, however, the
value beta=0 is special: for beta=0, the network operates in
winner-take-all-mode.
FILE
/homes/jontrup/nst5/man/../o.sol2//../foldersrc/nst_adaptive.c