From: arms@cs.UAlberta.CA (Bill Armstrong)
Subject: Re: Training Data to Aluminium Appl.
Organization: University of Alberta, Edmonton, Canada
Date: Mon, 27 Jul 1992 00:46:29 GMT

d8linha@dtek.chalmers.se (Haakan Lindh) writes:


>My friend and I are currently doing our thesis project for an Aluminium
>Smelter Factory in Sweden. The task is to control the owen temperature 
>better than they are doing at the moment. We've got complete access to
>their process database and they've explained some basics about the process.
>There is, for instance, a well-known connection between the amount of added
>Aluminum Flouride, AlF3 (a chemical they add once every day), and the 
>temperature in the owen some time period later. Then we have all the noice
>(as usual).
>Our only control parameter is the amount AlF3 added each day, so the task is
>to predict how much to add to receive some predefined temperature the following
>day.
>We're running Stuttgarts Neural Network Simulator (SNNS) under UNIX on a 
>SPARCstation.

>The net contains (right now) 10 inputs and then 4 binary coded output 
>units (0-16). We have approx. 400 connections in the net.

Right there, you could have a problem.  Do you want the 4 bits to give
you 16 levels of AlF3?  If that's the case, then you have a problem
with the least significant bit, which means little by itself. Perhaps
if you used just one continuous output expressing the amount of AlF3
to be added, you could end up with a more gracefully changing
function.  My personal feeling here is that looking at the
monotonicity of the functions is important, e.g is it true that the
more AlF3 you add, the hotter it gets?  Then you want to make sure
your decision is monotonic in that way.  Are there other variables on
which the temperature depends in a monotonic way?  (To make a BP net
monotonic, you should have all weights positive, say.  If there are
increasing and decreasing parts of the functions, then perhaps you
should try something other than a BP net so you have control.)

>We are currently trying to predict the temperature for tomorrow using super-
>vised learning. It is sufficient if the predicted temperature lies within some
>specified boundaries, i.e no demand of absolute correct prediction.

>Our first question is about the process data:

> The process data contains a lot of data close to the temperature average and
> less and less data the futher you get from the average (like a normal 
> distributed curve). Should we remove some of the data near the average in 
> order to get a more even `spread' in the training set or should we just train
> the net with the whole set as it is?

This is a problem of training.  There is a separate question about the
desirable function.  The way to approach this depends a lot on how
many variables influence the decision.  You say you have 10 inputs.
Is that all data from the latest day?  Suppose you decided to include
more measurements from the preceding days.  Then you would have 20.
The higher the dimension, the harder it is to define the function, and
the more data you need.  I'll just leave you with the thought: define
what you want first, and don't expect the network to come up with a
miracle.  In a small space you could divide the space up into
parallelepipedal regions and look at the samples in that region to
decide on a strategy for that region.  Then use that as a training
point in your set.  You could also just smooth the data so generated
and forget NNs altogether.

>The 2nd and 3rd quiz is regarding the training data:

> According to a prof. in Information Theory, we should uncorrelate all data
> by using the Gramm-Schmidt method. Is it common praxis to do that?

It sounds like a good idea.  Then you have a low dimensional space,
each variable of which is a linear combination of the original 10
variables.  You may take the three most important variables, and
divide each one into 10 levels and look at the data in each of the
1000 buckets of your input space.  The samples give you a good idea
now of your desired function.

Now you can express the decisions in terms of the original variables,
and use that to check your NN results.  I say, go with the prof's idea
no matter what other methods you are using.  It gives you a standard
for comparison.

> The database contains over 25,000 records. Should we try to train the net with
> as much data as possible or is a small subset sufficient?

Depends on your training algorithm.  If your data is good, then try to
distill the best actions to take from all the data.  In that way, you
don't lose any valuable information, and it keeps your training set
small.

>4th:

> We've reached quite satisfactory results by only using temperature and
> the amount of added AlF3 five days back as input parameters. We took process
> data for some months back which gave us approx. 1000 training data.
> The net reached a pretty satisfactory level after only 200 training cycles.
> The temperature depends on other parameters as well, but their influence is
> not as great as AlF3. Should we add them as well to get even better results
> and, in that case, should we add as many as we can or is it better to add 
> only a few to keep the net as small as possible?

This is either your call or a contractual requirement.  Why not
take into account as much as you can to optimize the decisions?
Do measurements cost something?  Would they be made anyway?

>We would really appreciate any response to the question above and especially
>if someone knows about any similar project (ongoing or completed).

Good luck, hope you don't have to spend your whole summer slaving over
a hot oven.

Bill
--
***************************************************
Prof. William W. Armstrong, Computing Science Dept.
University of Alberta; Edmonton, Alberta, Canada T6G 2H1
arms@cs.ualberta.ca Tel(403)492 2374 FAX 492 1071
Newsgroups: comp.ai.neural-nets