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