The Complete SPRLIB & ANNLIB

wiener_output_calc

- calculate the Wiener weights for an unit (LOCAL)

SYNOPSIS

int wiener_output_calc (dset, net, unit, verbose)

ARGUMENTS

DATASET *dset The dataset used to calculate the weights.
NET *net The network in which the weights should be calculated.
UNIT *unit The output unit of which the weights should be determined.
int verbose A boolean to show intermediate results.

RETURNS

The function returns TRUE if an error was detected. If no error was detected the function returns FALSE and the weights to the output unit pointed to by unit are updated.

FUNCTION

This function computes the weights of an output unit using the Wiener-Hopf equations. The optimal weights (the coeffients of a Wiener filter) are usually computed by the Least-Mean-Square algorithm (also known as the Delta rule), using a steepest descent approach.\\ However, in this implementation the solution to the equation Wx=b is not determined iteratively but in a single step. The W is the weight matrix for the output unit, the vector x are the input patterns to the output unit and b the desired outputs. Approximating the W is done in this function by calculating the correlation matrices, performing a Singular Value Decomposition (SVD) and rebuilding matrices.

NOTE

This method is only applicable to 1 output unit at the time. \\ The unit unit must be a OUTUNIT (see UNIT-flags) and the network must be a FFNET (see NET-flags), and the variable verbose should be either 1 (verbose on) or 0 (verbose off). The reader is referred to 'Neural Networks: a comprehensive foundation, Haykin, S., Maxwell Macmillan International, Toronto, 1994' or 'Adaptive Signal Processing, Widrow, B and Stearns, S.D., Prentice Hall, 1985'.

SEE ALSO

wien_out_init , wien_out_free , InvLinear , InvTanH , InvSigmoid , wiener_output_calc

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