NAME

rbf_layer -- create layer of RBF-units.

PROTOTYPE

unitptr rbf_layer( int din, int nodes, float (*f)(float), int mode, unitptr dest)

ARGUMENTS

int din
dimensionality of input vector
int nodes
number of nodes of layer created.
float (*f)(float)
activation function common to all nodes
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[din]:
(input field 1) mask for input vector.
Eps_in[2]:
(input field 2) adaptation gains eps1 and eps2
Ctl_in[2]:
(input field 3) control inputs c,beta
X_out[n]:
(output field 0) output vector y, holding node activities
Y_out[1]:
(output field 1) index of winner node
Z_out[n*(din+1)]:
(packed output field 2) weights and radii. 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 RBF-units. Upon each call of exec_unit this layer maps a din -dimensional input vector into a n -dimensional activity pattern. An optional multiplicative mask g[.] (default values g[i]=1, i=0..din-1) may be specified (only one mask g[] that is common to all nodes can be specified). For each node, the actual input "seen" is the original input vector for that node, but componentwise multiplied with the corresponding components of the vector g[] (see the formulae given in Sec. EXECUTION).
The node activities f_i 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 com- pletely 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=0 or 2, the node activities f_i specify the output X_out directly. If mode=1 or 3, an additional multiplicative normalization is performed, which normalizes the sum of all outputs to unity. If eps1 and eps2 are not both zero, each adapt-call will perform a refinement step for the centers w[i] and for the radii sig[i] as given by the formula in Section ADAPTATION. The "regularization" 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. In this mode, X_out[i]=0, except for the node i=k, where X_out[k]=1 and k denotes the index of the unit with minimal distance d[k] ("maximal response").

FILE

/local/homes/rhaschke/nst7/man/../o.linx86//../foldersrc/nst_adaptive.c