Would this work at all?

Idea is to start training a neural net with some number of nodes. Then, add some new nodes and more layers and start training only the new nodes (or only modifying the old nodes very slightly). Ideally, we would connect all old nodes to the new layer added since we might have learned many useful things in the hidden layers. Then repeat this many times.

Intuition is that if the old nodes give bad information the new layer of nodes will weight the activations of old nodes close to zero and learn new/better concepts in the new nodes. The benefit is that we will keep old knowledge forever.

Caveat is that the network can still temporarily "forget" concepts if a new layer weights old information close to zero, but it can potentially remember it again too.

If this completely fails, I'm curious if there's some known way to prevent a neural network from forgetting concepts it learned.

  • 1
    $\begingroup$ Could you clarify what kind of forgetting scenario you hope this will address? The problem usually occurs in online learning due to temporal sampling bias or population drift. At what point would you add new nodes/layers? $\endgroup$ Oct 11, 2018 at 7:08
  • $\begingroup$ The scenario is that when training a network, you might end up with catastrophic forgetting. That is, if you haven't seen an input in a while, the changes in node weights might make it forget how to recognize the input. $\endgroup$ Oct 12, 2018 at 6:42
  • 1
    $\begingroup$ There's a big difference between addressing this issue in offline and online training, or in Reinforcement Learning. I most often see the term "catastrophic forgetting" in RL, is that what you are asking about? $\endgroup$ Oct 12, 2018 at 6:45
  • $\begingroup$ I'm referring to forgetting in the following sense: If you train a neural network to recognize digits from 0-9, and if you show it no examples of the number 5 for a very long time (but all the other digits), it will forget how to recognize it as the neural network weights change. $\endgroup$ Oct 14, 2018 at 3:32
  • $\begingroup$ This is getting a little circular: I am asking about the higher-level scenario, not the data flow. I.e. "How does it occur that you have a training scenario where relevant data is not available?". For an offline supervised learning on MNIST using the data set, this is not going to happen, and is also trivial to fix if it is made to occur artificially, as there are no real consequences to a dip in performance. To analyse the consequences of your idea requires understanding the context in which it will be used. $\endgroup$ Oct 14, 2018 at 7:19

1 Answer 1


Per Neil's line of questioning:

  • If you're doing offline, supervised or reinforcement learning, where you have the dataset and decide what to show to the network next, there's no reason to do this. It's better to just adjust your training to show rare examples to the network more often.

  • If you're doing online reinforcement learning, then the agent typically controls which examples it sees next through its choice of actions. Increasing the agent's exploration rate will cause it to see a more diverse set of examples, but these examples are also less likely to be useful for solving the task the agent is working on.

  • If you're doing supervised, online, learning, and you don't control the order in which examples appear, it might be useful to freeze some of the weights, but it might be better, and would certainly be simpler, to increase the learning rate for rare classes instead (in effect, showing the network a given rare example repeatedly when it does show up, so that it takes longer to forget it).


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .