The Complete SPRLIB & ANNLIB

bp_adapt_unit

- adapt a unit according to the generalized delta rule

SYNOPSIS

int bp_adapt_unit (unit, eta, alpha, target, options, netflag)

ARGUMENTS

UNIT *unit A pointer to a UNIT structure.
double eta The coefficient eta (the learning rate) of the backpropagation rule.
double alpha The coefficient alpha (the momentum term) of the backpropagation rule.
double target The target output for a unit (only required for output units).
long options See note below.
long netflag Specify whether a unit from a standard or shared weights feedforward network is to be adapted.

RETURNS

TRUE if an error was detected, FALSE if no error was detected.

FUNCTION

Performs the generalized delta rule on unit, i.e. it computes the error gradient w.r.t. its feeding units, and changes their weights accordingly (depending on the options flag). When netflag is SHAREDNET, a shared weights network modification of the rule is performed. Depending on the activation function of the unit, different computations are being performed. The usual case with the generalized delta rule is an inner product activation function. Alternative activation functions are: Euclidean and squared Euclidean distance (e.g. to be used when training a radial basis function (RBFFNET, see NET-flags) neural network) - see ActInprod, ActSqEucDist, ActEucDist.

NOTE

In options the following flags can to be specified:
HISTU (Don't) store history of unit values at each update.
HISTT (Don't) store history of unit thetas at each update.
HISTW (Don't) store history of weights at each update.
BPACCUM (Don't) accumulate the delta's.
BPUPDATE (Don't) update the weights.
BPOLDPRP (Don't) backpropagate with old = original weights.

Note that the individual HIST-flags and BP-flags may be OR'ed together. The backpropagation process is divided into two phases: first, the weight-change is computed (optionally, only if BPACCUM is set), then the actual weight-change is done (optionally, only if BPUPDATE is set). Also, note that by default (when BPOLDPRP is not set) the newly calculated weight-change is performed immediately (assuming BPACCUM and BPUPDATE are set), while the standard backpropagation rule, in which weight-changes are made effective only in the next cycle, requires BPOLDPRP to be set. In effect, not specifying BPOLDPRP causes a random disturbance of the minimization process which might result in a speed up, but may cause problems in difficult learning processes. Furthermore, note the following for (BPACCUM, BPUPDATE) - pairs:
0 0 Combination does not make sense (nothing is done).
0 1 Yields no backpropagation, only updates.
1 0 Yields only backpropagation, no updates.
1 1 Specifies normal mode, i.e. backpropagation and update.

This function is used by bp_adapt_net.

SEE ALSO

bp_adapt_weights, bp_adapt_net, bp_learn

This document was generated using api2html on Thu Mar 5 09:00:00 MET DST 1998