# How can I adapt a trained neural network model to learn from newer data containing additional features?

We shall assume that we have a trained neural network model for some task $$A$$. The dataset used to train the model contained some $$n$$ features per sample. Using this dataset, we were able to train a classifier.

After some time, I get some more data for the same task $$A$$, but with additional features (all relevant). I want to use this new data to improve my existing classifier by utilizing the weights. (whatever it learned from the initial dataset).

This seems very similar to the problem of transfer learning, but my aim is to use an existing model architecture without modifying it too much and make it a better classifier for the same task A without having to do any retraining. (We can assume that data is lost after training, and all we have are the parameters/weights of our model)

After doing some reading, this could be a use case of continual learning but most of the work is for training an existing model for different tasks. I am not able to fully wrap my head around how I could use the same model for the same task, but instead, the structure of the data is changing over time. Can you also refer me to any literature in this space, if any?

To make the dynamic amount of features easier to work with, you can model it as a sequence modeling problem, where for the new task your sequence length increases. (where each "timestep" is a single feature)

Continual learning literature might still be the right place to look, as they try to solve the same problem of catastrophic forgetting that your problem runs into.

Solutions might work are generative replay (catastrophic forgetting literature). Basically a generator that generates samples as if you're sampling from your dataset. Just combine the samples from the generator with the new samples for A and train on that. So you will have short sequences from the training dataset generated by the generator and your longer sequences (longer because of the additional features) in your current training set.

Arxiv:1705.08690 (Continual Learning with Deep Generative Replay)

Or meta learning how to incrementally learn. (might be able to make this work for your problem but generative replay is definitively the easiest)

Arxiv:2002.09571 (Learning to Continually Learn)
Arxiv:1909.00025 (Meta-Learning with Warped Gradient Descent)

Where the whole idea generally is to meta learn another network (that controls the main network) or have meta learned "fixed" layers that make sure that when you update the main network with new information the old information isn't lost. So you can learn incrementally without (or at-least less) catastrophic forgetting.