Artificial cereb

[From Bill Powers (960904.0700 MDT)]

Hans Blom, 960904--

I ... set.. variables d1a and d2a to zero rather than a random
number, in the section of code where you compute the reference
trajectory. Maybe you can do the same and check what I found. I
started by switching control off and zeroing the tables. This forces
the controller to start with a blank slate. Then I switched control
on. Behavior was erratic, to say the least. If the program did not
terminate prematurely with a "division by zero" or an "invalid
floating point operation" error message, convergence (getting to the
reference and staying there) usually took a very long time with very
oscillatory behavior. Can you tell me why this should be so?

I think so, but not in detail. For one thing, I'm using fixed-point
arithmetic, so rounding errors and loss of precision (and even wrap-around
of overflowing integers) are significant. Each entry of the f(tau) function
has a built-in decay rate, but when the values get close to zero the integer
arithmetic is no longer able to subtract a small fraction of the value from
the previous value -- entries that should decay to zero retain nonzero
values. This may account for some of the anomalous behavior you saw. I
haven't tried that yet myself; I'll have a look. Another problem may be the
same sort of thing you run into with the Extended Kalman Filter -- how much
correction to apply to the function on each iteration. I have that cranked
up pretty high, just to get the thing to converge in a reasonable time. But
to lower the rate, I'd really have to go to floating-point arithmetic.

Another thing to keep in mind is that the physical model of the arm contains
no damping at all, and the elbow joint can swing both ways. If we added some
spinal reflexes to the arm, or even just some viscous damping, I'm sure the
picture would change considerably.

I have never tried to optimized this method or really figure out what the
critical factors are. I know that my cut-and-try methods are a very
inefficient way to approach things like this, and have always hoped that a
real mathematician would take over the project. Perhaps a real mathematician
would find some fatal flaw in the method. Or perhaps some of the problems
are just due to the method of computation.

Except for the arithmetic problems (which are mostly due to the limitations
of integer arithmetic), the behavior you saw may be realistic in terms of
modeling human behavior at the point where motor coordinations are just
being learned. Human beings learn slowly, too, and during the months it
takes for motor coordination to develop, there are lots of random-looking
actions. Actually, as a model of basic motor learning, the artificial
cerbellum adapts much too fast -- it does in ten minutes or so what takes a
baby months to learn.

By the way, only one of the disturbances, I think d1, is actually used; it
varies the reference signal. The other can be used to disturb the controlled
variable if you want to try that, too.

As to the "overall goal" of this system, it is simply to adjust the output
function's form until the error signal remains at zero. As you can see from
armftau.pas, one such system is simply a module in a larger system.

Backtracking in your post --

So the fact that PCT-type control systems are not ideal is, in fact,
an argument in favor of the PCT model and against models that assume
unlimited accuracy of computations.

This is not due to PCT, but to the fact that ANY closed loop
controller is robust in the face of certain types of inaccuracies.

It's due to the properties of control systems. PCT is derived mostly from
the properties of control systems, so naturally it says the same things.
Remember that I learned about artificial control systems before I thought of
applying their properties as a model of organisms.

The difference between "regulation" and "stabilization" is mostly in
the eye of the beholder.

Does this mean that you don't recognize a difference? Or that the
difference is only theoretical and has no practical implications?

I recognize the difference. In the HPCT model, "precompensation" of the
reference signal is part of the properties of the output functions of higher
systems, which supply the reference signals to lower systems. The lower
systems may also have dynamic compensation in their input functions, as you
describe. I think that both methods are used in the human hierarchy. Since
one higher system contributes to reference signals for many lower systems,
that sort of precompensation is global, the same compensation applying to
all lower reference signals. The perceptual dynamic compensation is local to
each lower control system.

In the spinal reflexes, we have both dynamic feedback compensation (the
phasic component of the stretch reflex) and a type you didn't mention,
compensation by a loop around the comparator (internuncial time-integrating
neurons that feed back from the output of the motor neurone to its input
dentrites). Both of these compensations, as I interpret them, introduce a
phase lead into the system, which compensates for the viscous lags in the
muscles.

It was interesting to me in developing the Little Man model how little
compensation is really required. I basically just copied what was known
about the components of the spinal reflexes, and didn't have to add anything
else.

As you point out, these compensators don't affect the steady-state
relationships; their main effect is dynamic stabilization that permits high
loop gains without causing spontaneous oscillations. I don't speak much
about dynamics; the organization of a control system is best seen in
steady-state or quasi-static relationships where dynamic effects are
negligible. This gets confusing enough when we get to systems in which the
controlled variable itself is a dynamic condition -- a velocity, for
example, or a rate of spin, or the repetition rate of a repeated action.
Then the "steady state" is a constant state of change, and the "dynamics"
are transient departures from the constant state of change. The same
principles of stabilization apply, of course, but the variable being
stabilized is itself a time variation.

[Hans Blom, 960910b]

(Bill Powers (960904.0700 MDT))

Except for the arithmetic problems (which are mostly due to the
limitations of integer arithmetic), the behavior you saw may be
realistic in terms of modeling human behavior at the point where
motor coordinations are just being learned.

This is overstretching things a bit. I don't typically see the
vigorous behavior in infants that I see in the artificial cerebellum.

I don't speak much about dynamics; the organization of a control
system is best seen in steady-state or quasi-static relationships
where dynamic effects are negligible.

Sometimes it is possible to get a quick-and-dirty impression of a
controller's performance by looking at the steady state behavior. And
sometimes not; if the controller is high-gain and operates near the
edge of instability, a more rigorous dynamic analysis is required.

Greetings,

Hans