[comp.ai.neural-nets] optimization question

schultz@halley.est.3m.com (John C. Schultz) (02/17/91)

Thanks to everyone who responded on how to optimize input parameters
vs output values using a trained neural network.

Several suggestions were to invert the network as for example Tony
Robinson, who referred to the following paper

[1] A Linden and J Kindermann, "Inversion of Multilayer Nets", pp II425-II430,
    Proceedings of the INternational Joint Conference on Neural Networks,
    Washington DC, June 18-22, 1989.

I am trying to obtain this paper but currently have some doubts as to
how well you can "invert" a backprop neural network.

To my mind, there are four ways to use a trained neural network for
optimization problems.

1. exahustive search of likely input paramter combinations - brute
   force but it would work for small problems.  Large problems are
   computationaly difficult - my (un)original idea.

2. invert the trained network.  My problem with this idea is that for a
   back-prop network, each node is a non-linear (tanh() in my case)
   function and the concept of running this function backwards is not clearly
   defined in my mind - it would seem to be highly unstable.

3. Use the trained network as the input to another network which has
   one input and many outputs.  The problem with this scenario for
   back-prop is that back-prop learns by propogating the error from
   output to input.  Thus the error at the single input node would
   tend to move in very large jumps and convergence seems unlikely.

4. Use an algorithmic optimizing routine which could treat the neural
   network as a black box supplying inputs and searching (somehow) for
   the optimial output.

I am persuing option 4) above while trying to find the reference cited
   by Tony Robinson.

Thanks for the suggestions.
--
John C. Schultz                    EMAIL: schultz@halley.serc.3m.com
3M Company,  Building 518-01-1     WRK: +1 (612) 733-4047
1865 Woodlane Drive, Dock 4,       Woodbury, MN  55125
   How to include the taste of Glendronach in a multi-media system?

mgj@cup.portal.com (Mark Gregory Jurik) (02/19/91)

About training a network to perform the inverse of another net:

Regardless of how a network is trained, if the original network does a many-
to-one mapping, then the inverse will have a problem with ambiguous one-to-
many mappings.  If this is not the case, then in response to your statement:
"
3. Use the trained network as the input to another network which has
   one input and many outputs.  The problem with this scenario for
   back-prop is that back-prop learns by propogating the error from
   output to input.  Thus the error at the single input node would
   tend to move in very large jumps and convergence seems unlikely.
"
I suggest you consider using BackPercolation instead of BackPropagation. Perc
assigns each adaptive cell an output error that is not proportional to the 
cell's output error gradient.  Training is stable and fast with nets having
multiple layers.  For example, 6 input parity classification was trained
using Perc on a net with 6-6-6-1 configuration.  It attained a total 
squared error < 0.0001 in only 93 epochs.  Perc does not experience large
jumps with either a large number of rows or a large number of cells per row,
or both.

I am submitting an announcement about BackPercolation to the neural-net 
digest.  If accepted, it will be posted in a few days, I guess.

-Mark Jurik, Jurik Research & Consulting, Aptos CA, 95001