The inversion of a neural net tries to find an input pattern that generates a specific output pattern with the existing connections. To find this input, the deviation of each output from the desired output is computed as error . This error value is used to approach the target input in input space step by step. Direction and length of this movement is computed by the inversion algorithm.

The most commonly used error value is the * Least Mean Square
Error*. is defined as

The goal of the algorithm therefore has to be to minimize .

Since the error signal can be computed as

and for the adaption value of the unit activation follows

In this implementation, a uniform pattern is applied to the input
units in the first step, whose activation level depends upon the
variable ` input pattern`. This pattern is propagated through the
net and generates the initial output . The difference between
this output vector and the target output vector is propagated
backwards through the net as error signals . This is
analogous to the propagation of error signals in the backpropagation
training, with the difference that no weights are adjusted here. When
the error signals reach the input layer, they represent a gradient in
input space, which gives the direction for the gradient descent.
Thereby, the new input vector can be computed as

where is the step size in input space, which is set by the
variable ` eta`.

This procedure is now repeated with the new input vector until the
distance between the generated output vector and the desired output
vector falls below the predefined limit of ` delta_max`, when the
algorithm is halted.

For a more detailed description of the algorithm and its implementation see [Mam92].

Niels.Mache@informatik.uni-stuttgart.de

Tue Nov 28 10:30:44 MET 1995