Continual Learning for regression problem with continual data stream

Hello AI-Friends,

for my studies I am currently searching a suitable CL-algorithm dealing with a supervised regression problem with a continual data stream.

Task: The goal is to estimate the power of a production machine based on round about 100 input values. These input values are numerical and few are binary (one hot encoded). There already exists a big set of training data and models that estimate the regression problem really good. The input values are measured every second and occur in a continuous data stream.

Now it happens, that the task of the underlying machine changes (e.g. it is producing a part with a different shape), so the future incoming input data is not represented by the previous training data anymore. Therefore I am looking for a suitable algorithm to online learn the system with the incoming data stream(supervised). Genereally you can assume that it is known when the machine has to do a new task.

Most of the papers I found were dealing with classification problems for image processing. Is there any algorithm you can recommend for dealing with this problem?

How do you think about applying Elastic Weight Control for this problem? Do you think this could deliver good results?

Can anybody recommend an approach for this problem or can recommend an algorithm?

With best regards

MLStudent from Germany

1 Like

Hi @MLStudent94, welcome to the forum! :slight_smile:

It is true that continual learning algorithms specifically designed for regression are not common. However, I believe many of them should be portable in this setting.

If the probelm that you are describing is a practical one, meaning that the only goal is maximizing efficiency and robustness of the solution, I believe a better solution should also involve some replay!

Thanks a lot for your answer,

yes indeed I try to deal with a practical problem. Since I get a stream of data with new input values every second, It would be adorable to be able to predict the output every second. Can you recommend any replay algorithms? Since I want to use the algorithm online, the update needs to be done within once second ideally. Therefore an incremental training would be prefered.

Do you know if incrementwise training can be done with Elastic weight Control? Did anybody hear of a combination of EwC with replay processes?

1 Like

Hi @MLStudent94, yes you can combine a replay and regularization approach, but if the external memory is wide enough we have noticed the impact of the regularization quickly disappears (see here).

I suggest you test it for your specific application :slight_smile:

You can also take a look at this challenge remarks to get an idea of what works in practice or not: https://arxiv.org/abs/2009.09929

Hi @MLStudent94, you can find another example of combining replay and parameter regularization here: https://www.nature.com/articles/s41467-020-17866-2

This paper uses generative replay, so the replayed examples are not perfect. In this case, combining replay with parameter regularization does help quite a bit.

Hi @MLStudent94,

Sorry for the late reply, I’ve just found out about this discourse group.
I happen to have worked on CL for regression in my spare time:

It’s not peer-reviewed but it might be worth a shot. Don’t hesitate to tell me if it doesn’t perform well on your data :wink:

1 Like