[From Bill Powers (2003.11.30.1021 MST)]
To those following the multi-system modeling thread.
Attached is the latest Delphi version of the multi-system control system,
with the first attempts to introduce reorganization. When the output
matrix is set to the transpose of the randomly-set input matrix, control
always succeeds for any number of control systems up to 500. Having shown
this, I have started to see if the output matrix will naturally come to
be the transpose of the input matrix when E. coli type reorganization is
used.
So far the answer is clearly “no,” for a surprising reason.
The following applies when the number of systems is 50, so convergence is
fairly rapid. Note that this version doesn’t set the output matrix to the
transpose of the input matrix; it’s just zeroed out. I’ll include all the
options in a later version.
There are two forms of reorganization, one in which the total summed
error squared in all N systems is the criterion for reorganization of all
N sets of output weights, and the other uses the same criterion but
reorganizes the output weights only in those systems whose individual
squared error signals have been increasing (“local”
reorganization). Both seem to work about equally well. Starting with the
output matrix set to all zeros, the controlled perceptions in all the
control systems come closer and closer to their reference levels (on the
average) until finally they match within a pixel.
But here’s the catch. If reorganization is turned off, so the output
weights cease to change, the errors immnediately start increasing and the
controlled variables take off for infinity. What this arrangement is
achieving, apparently, is a kind of continual tradeoff of errors so the
overall error comes close to zero, but a good number of the control
systems actually have positive feedback and are balanced in an unstable
state close to zero error. The reorganizing process maintains this state
of balance until reorganizing is turned off. Then all those systems in
unstable equilibrium roll off their inverted minima of error and
the whole system blows up.
I have just recognized the nature of the problem and don’t have any
solutions yet. This is an outcome I hadn’t realized could occur. I
thought that others might want to think about it, too.
Note that Delphi 6, Personal edition, is available free from Borland (I
think it’s still available). Double-click on MultiControlPrj.dpr (the
project file) to launch Delphi with this program in the editor.
Best,
Bill P.
.
MultiControlPrj1.dpr (102 Bytes)
MultiControlUnit1.dfm (103 Bytes)
MultiControlUnit1.pas (9.11 KB)