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