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
    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? – Neil Slater Oct 11 at 7:08
  • 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. – user3721127 Oct 12 at 6:42
  • 1
    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? – Neil Slater Oct 12 at 6:45
  • 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. – user3721127 Oct 14 at 3:32
  • 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. – Neil Slater Oct 14 at 7:19

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).

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.