Generalization ability of a BPTT-net

Walter Weber weber at forwiss.tu-muenchen.de
Wed Nov 11 04:51:41 EST 1992



Dear Connectionists,

let me first briefly introduce my work:
I'm just writing a masters' thesis at the Technical University of
Munich and i'm trying to deal with neural control. My goal is to let a
neural controller learn how to pull the gas- and brake-pedals of a car
in order to move in appropriate distance to a leading car.
Input signals are speed (v), dv/dt, distance (d) and dd/dt (all inputs
are coded in [0;1]) and there is only 1 output which varies from 0 to
1. (control signals for the brake are coded in [0;0.5], signals for
the gas-pedal are coded in [0.5;1] to get a continuous trajectory for
the control signals over time).
The training trajectories are from a PID-controller which was
implemented at BMW for the PROMETHEUS project.

I've done several aproaches to build up a net that could solve this
problem (Elman-net, Jordan-net, fully recurrent NN), but the most
promising approach seems to be the BPTT-algorithm applied to a
three-layer recurrent network with input connected to a fully
recurrent hidden layer and that hidden layer connected to the output.
The activation-function i use is a sigmoidal function with an offset,
the output produced varies in [0;1].
The learning ability of this BPTT-net is quite well (even very well if
i use teacher-forcing), but if i want the network to predict the
remaining part of a given trajectory after it used the first part
(mostly about 70 - 80%) as training data, the following problems
occur:
1. The net cannot perform peaks (short and strong pulls of the pedals)
   even if such data was learned well during training.
   (My idea about that was: the use of teacher forcing only makes
   training better but does not influence the generalization ability
   in a positive way, so the net can only perform what it was able to
   learn without teacher forcing. And only teacher forcing enabled the
   net to learn such peaks).
2. If a part of the test trajectory looks similar to a part of the
   training trajectory with the only difference is a offset between
   the two trajectory-parts (e.g. the part of the test trajectory
   varies between 0.6 and 0.8, the part of the training trajectory
   varies between 0.4 and 0.6) the network produces an output - in
   trying to approximate the test data - which would fit exactly the
   training data, but is wrong for the test data (with the error is
   the offset between the two trajectory-parts).
   How can i get rid of these offsets in the test data?


For my english is not very well, i hope one can understand the
problems i tried to describe above.
And if anybody has an answer to my questions, i would be very glad if
i got answers.
So thank you and bye,



--- Walter Weber


===================================================================
| weber at forwiss.tu-muenchen.de    Walter Weber                    |
|                                 FORWISS - TU Muenchen           |
| Tel.: 089/48095-229             Orleanstr. 34                   |
|                -231             D-8000 Muenchen 80              |
===================================================================


More information about the Connectionists mailing list